<SEC-DOCUMENT>0001200375-24-000009.txt : 20240228
<SEC-HEADER>0001200375-24-000009.hdr.sgml : 20240228
<ACCEPTANCE-DATETIME>20240228163717
ACCESSION NUMBER:		0001200375-24-000009
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		126
CONFORMED PERIOD OF REPORT:	20231231
FILED AS OF DATE:		20240228
DATE AS OF CHANGE:		20240228

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			CODEXIS, INC.
		CENTRAL INDEX KEY:			0001200375
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL ORGANIC CHEMICALS [2860]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		IRS NUMBER:				710872999
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-34705
		FILM NUMBER:		24696143

	BUSINESS ADDRESS:	
		STREET 1:		200 PENOBSCOT DRIVE
		CITY:			REDWOOD CITY
		STATE:			CA
		ZIP:			94063
		BUSINESS PHONE:		650-421-8100

	MAIL ADDRESS:	
		STREET 1:		200 PENOBSCOT DRIVE
		CITY:			REDWOOD CITY
		STATE:			CA
		ZIP:			94063

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	CODEXIS INC
		DATE OF NAME CHANGE:	20021022
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>cdxs-20231231.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cdxs="http://www.codexis.com/20231231" xmlns:srt="http://fasb.org/srt/2023" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns="http://www.w3.org/1999/xhtml" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cdxs-20231231</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-32">0001200375</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" format="ixt:fixed-false" id="f-33">false</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalYearFocus" id="f-34">2023</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalPeriodFocus" id="f-35">FY</ix:nonNumeric><ix:nonNumeric contextRef="c-86" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-480">1</ix:nonNumeric><ix:nonNumeric contextRef="c-87" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-481">1</ix:nonNumeric><ix:nonNumeric contextRef="c-88" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-482">1</ix:nonNumeric><ix:nonNumeric contextRef="c-89" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-483">1</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cdxs-20231231.xsd"/></ix:references><ix:resources><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:context id="c-3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-02-23</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:context id="c-4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="usdPerShare"><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:context id="c-8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-10"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</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="c-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-12"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-13"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</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="c-14"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-15"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-16"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</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="c-17"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-18"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</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="c-20"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></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="c-22"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-23"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-24"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</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="c-25"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-26"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-32"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</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="c-33"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-34"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</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="c-35"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-36"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-37"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-38"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-39"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-40"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-41"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-42"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-43"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-45"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-46"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-47"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-48"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-53"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-54"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-55"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-56"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-57"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-59"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="segment"><xbrli:measure>cdxs:segment</xbrli:measure></xbrli:unit><xbrli:context id="c-60"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-61"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-62"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:FourCustomersMember</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>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:context id="c-63"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:TwoCustomersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-65"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-68"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-69"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</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="c-70"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-71"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-72"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-73"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-74"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</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="c-76"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-78"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</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="c-79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-80"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-82"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:LongTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-83"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-84"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-10-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-86"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-87"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-88"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-90"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-91"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-92"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-93"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</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="c-94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-95"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2014-07-01</xbrli:startDate><xbrli:endDate>2014-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-96"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2014-07-01</xbrli:startDate><xbrli:endDate>2014-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-97"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-98"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</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:unit id="payment"><xbrli:measure>cdxs:payment</xbrli:measure></xbrli:unit><xbrli:context id="c-99"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-100"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-101"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</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="c-102"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-103"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-104"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</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="c-105"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2015-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-106"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-107"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-108"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</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="c-109"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2012-02-01</xbrli:startDate><xbrli:endDate>2012-02-29</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-110"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2015-12-01</xbrli:startDate><xbrli:endDate>2015-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-111"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-112"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-113"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</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="c-114"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-115"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-116"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</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="c-117"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-118"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:EnzymeSupplyAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-119"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-120"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-121"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TateLyleMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:CommercialAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-122"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TateLyleMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:CommercialAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-123"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-124"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-125"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</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="c-126"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-12-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-127"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-128"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-129"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-130"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-04-01</xbrli:startDate><xbrli:endDate>2018-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-131"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-04-01</xbrli:startDate><xbrli:endDate>2018-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-132"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-133"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</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="c-135"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-136"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-137"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-138"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-05-01</xbrli:startDate><xbrli:endDate>2019-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-139"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-140"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-141"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-142"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-143"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-144"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</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="c-145"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-146"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-12-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-147"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-10-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-148"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-149"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-150"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</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="c-151"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:UpFrontPaymentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-152"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestonePaymentPerTargetGeneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-153"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-154"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-155"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</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="c-156"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-157"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-158"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-159"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-01</xbrli:startDate><xbrli:endDate>2020-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-160"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:RoyaltyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-161"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-01</xbrli:startDate><xbrli:endDate>2020-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-162"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-163"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-164"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-165"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-166"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-167"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</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="c-168"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-169"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-170"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-171"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-172"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-173"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-08-01</xbrli:startDate><xbrli:endDate>2022-08-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-174"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-175"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-176"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-177"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-03-31</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-178"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-179"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-180"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</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="c-181"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-182"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-183"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</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="c-184"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-185"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-186"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-187"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-188"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesB2PreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-07-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-189"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-190"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-191"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-192"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-03-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-193"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-194"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-195"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesC1PreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-196"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-197"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-198"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-199"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesCAndC1PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-200"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-201"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-202"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-203"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-204"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-205"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-206"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-208"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-209"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-210"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-211"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-212"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-213"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-214"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-215"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-216"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-217"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-218"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-219"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-220"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-221"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-222"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-223"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-224"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-225"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-226"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-227"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-229"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-230"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-232"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-233"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-234"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-235"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-236"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-237"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022InducementPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-238"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-239"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-240"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-241"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-242"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-243"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-06-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-244"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-245"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-246"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:IncentiveStockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-247"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:NonStatutoryStockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-248"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-249"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-250"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-251"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-252"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-253"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="installment"><xbrli:measure>cdxs:installment</xbrli:measure></xbrli:unit><xbrli:context id="c-254"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-255"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-256"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceShareUnitsPSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-257"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-258"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-259"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-260"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PBOMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-261"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-262"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-263"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-264"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PBOMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-265"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PSUAnd2021PBOMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</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="c-266"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PSUAnd2021PBOMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</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="c-267"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-268"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-269"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</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="c-270"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-271"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-272"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</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="c-273"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-274"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-275"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</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="c-276"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-277"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-278"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-279"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-280"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</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="c-281"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-282"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-283"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</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="c-284"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-285"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</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="c-286"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-287"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</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="c-288"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-289"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-290"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</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="c-291"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-292"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-293"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-294"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-295"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-296"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-297"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-298"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-299"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-300"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-301"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-302"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-303"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-304"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-305"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-306"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-307"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-308"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-309"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-310"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</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="c-311"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-312"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-313"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-314"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-02-27</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-315"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-316"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-317"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-318"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-319"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-320"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-321"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-322"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-323"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit><xbrli:context id="c-324"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-325"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A400PenoscotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-326"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="renewal_option"><xbrli:measure>cdxs:renewal_option</xbrli:measure></xbrli:unit><xbrli:context id="c-327"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-328"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-329"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="option"><xbrli:measure>cdxs:option</xbrli:measure></xbrli:unit><xbrli:context id="c-330"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-10-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-332"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OtherCommitmentsAxis">cdxs:FacilityMaintenanceAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-333"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-334"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-335"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-06-30</xbrli:startDate><xbrli:endDate>2017-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-336"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-337"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-338"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-339"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-340"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-04-01</xbrli:startDate><xbrli:endDate>2021-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-341"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-342"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-09-01</xbrli:startDate><xbrli:endDate>2021-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-343"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-09-30</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-344"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-345"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-346"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</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="c-347"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-348"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerCMember</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="c-349"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-350"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-351"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-352"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-353"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerEMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-354"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerFMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-355"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-356"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-357"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c-358"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-359"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-360"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</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="c-361"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-362"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-363"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</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="c-364"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-365"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-366"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</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="c-367"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-368"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-369"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancialAssetNotPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-370"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables30To59DaysPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-371"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables60To89DaysPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-372"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-373"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">cdxs:FinancialReceivablesPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-374"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancialAssetNotPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-375"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables30To59DaysPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-376"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables60To89DaysPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-377"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-378"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">cdxs:FinancialReceivablesPastDueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-379"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-380"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-381"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-11-01</xbrli:startDate><xbrli:endDate>2022-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-382"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-383"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-384"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-13</xbrli:startDate><xbrli:endDate>2024-02-13</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-385"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-386"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="tranche"><xbrli:measure>cdxs:tranche</xbrli:measure></xbrli:unit><xbrli:context id="c-387"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansFirstTrancheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-388"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansSecondTrancheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-389"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-390"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-391"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-13</xbrli:startDate><xbrli:endDate>2024-02-13</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-392"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context></ix:resources></ix:header></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_1"></div><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">UNITED STATES</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">Washington, D.C. 20549</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">FORM&#160;<ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">10-K</ix:nonNumeric></span></div><div style="margin-top:2pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(Mark One)</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:0.1%"/><td style="width:2.577%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:96.123%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><ix:nonNumeric contextRef="c-1" name="dei:DocumentAnnualReport" format="ixt:fixed-true" id="f-2">&#9746;</ix:nonNumeric></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ANNUAL REPORT PURSUANT TO SECTION&#160;13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></td></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">For the fiscal year ended:</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-4"><ix:nonNumeric contextRef="c-1" name="dei:CurrentFiscalYearEndDate" format="ixt:date-monthname-day-en" id="f-3">December&#160;31</ix:nonNumeric>, 2023</ix:nonNumeric></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">or</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:0.1%"/><td style="width:2.577%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:96.123%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentTransitionReport" format="ixt:fixed-false" id="f-5">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></td></tr></table></div><div style="text-align:center;text-indent:24.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">For the transition period from &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; to &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.</span></div><div style="text-align:center;text-indent:24.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">Commission File No.: <ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-6">001-34705</ix:nonNumeric></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-7">Codexis,&#160;Inc.</ix:nonNumeric></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">(Exact name of registrant as specified in its charter)</span></div><div style="margin-top:2pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:46.923%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.610%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.167%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-8">Delaware</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-9">71-0872999</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(State or other jurisdiction of incorporation or organization)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(I.R.S. Employer Identification No.)</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div style="margin-bottom:4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-10">200 Penobscot Drive</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-11">Redwood City</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-12">California</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-13">94063</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(Address of principal executive offices)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(Zip Code)</span></td></tr></table></div><div style="margin-top:2pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:80%">Registrant&#8217;s telephone number, including area code:</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:80%;text-decoration:underline"> (<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-14">650</ix:nonNumeric>)&#160;<ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-15">421-8100</ix:nonNumeric></span></div><div style="margin-top:2pt;text-align:center"><span><br/></span></div><div style="margin-top:3pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Securities Registered Pursuant to Section&#160;12(b)&#160;of the Act:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:38.812%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.075%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:38.813%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Title of Each Class:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Trading Symbols(s):</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Name of Each Exchange on which Registered:</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:Security12bTitle" id="f-16">Common Stock, par value $0.0001 per share</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:TradingSymbol" id="f-17">CDXS</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-18">The Nasdaq Global Select Market</ix:nonNumeric></span></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%;text-decoration:underline">Securities Registered Pursuant to Section&#160;12(g)&#160;of the Act: None</span></td></tr></table><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:18.487%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.745%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:49.710%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.876%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.745%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.876%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.749%"/><td style="width:0.1%"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityWellKnownSeasonedIssuer" id="f-19">No</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityVoluntaryFilers" id="f-20">No</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant (1) has 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 the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityCurrentReportingStatus" id="f-21">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (&#167; 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityInteractiveDataCurrent" id="f-22">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="21" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or emerging growth company. See the definitions of "large accelerated filer, "accelerated filer" and "smaller reporting company," and "emerging growth company" in Rule 12b-2 of the Exchange Act:</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Large accelerated filer</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="f-23">Accelerated filer</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:2pt;text-align:right"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9746;</span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-accelerated filer</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntitySmallBusiness" format="ixt:fixed-true" id="f-24">Smaller reporting company</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:2pt;text-align:right"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9746;</span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt:fixed-false" id="f-25">Emerging growth company</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="21" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">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></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C.7262(b)) by the registered public accounting firm that prepared or issued its audit report. &#9746;</span></td><td colspan="12" style="padding:0 1pt"><ix:nonNumeric contextRef="c-1" name="dei:IcfrAuditorAttestationFlag" format="ixt:fixed-true" id="f-26"></ix:nonNumeric></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. &#9744;</span></td><td colspan="12" style="padding:0 1pt"><ix:nonNumeric contextRef="c-1" name="dei:DocumentFinStmtErrorCorrectionFlag" format="ixt:fixed-false" id="f-27"></ix:nonNumeric></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of <br/>incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167;240.10D-1(b).  &#9744;</span></td><td colspan="12" style="padding:0 1pt"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant is a shell company (as defined in Rule&#160;12b-2 of the Act).</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityShellCompany" format="ixt:fixed-false" id="f-28">&#9746;</ix:nonNumeric></span></td></tr></table></div><div style="margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">The aggregate market value of voting and non-voting common stock held by non-affiliates of Codexis as of June 30, 2023 was approximately $<ix:nonFraction unitRef="usd" contextRef="c-2" decimals="-5" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="6" id="f-29">122.4</ix:nonFraction> million&#160;based upon the closing price reported for such date on the Nasdaq Global Select Market.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of February&#160;23, 2024, there were <ix:nonFraction unitRef="shares" contextRef="c-3" decimals="INF" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-30">70,303,639</ix:nonFraction> shares of the registrant&#8217;s Common Stock, par value $0.0001 per share, outstanding.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-top:3pt"><span><br/></span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="padding-left:108pt;text-indent:36pt"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">______________________________________&#160;</span></div><div style="margin-top:2pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">DOCUMENTS INCORPORATED BY REFERENCE</span></div><div style="margin-bottom:6pt;margin-top:2pt;text-indent:18pt"><ix:nonNumeric contextRef="c-1" name="dei:DocumentsIncorporatedByReferenceTextBlock" id="f-31" escape="true"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Portions of the registrant&#8217;s Definitive Proxy Statement to be filed with the Commission pursuant to Regulation 14A in connection with the registrant&#8217;s 2024 Annual Meeting of Stockholders (the "2024 Proxy Statement"), to be filed subsequent to the date hereof, are incorporated by reference into Part III of this Report. Such Definitive Proxy Statement will be filed with the Securities and Exchange Commission not later than 120 days after the conclusion of the registrant&#8217;s fiscal year ended December&#160;31, 2023. Except with respect to information specifically incorporated by reference in this Form 10-K, the 2024 Proxy Statement is not deemed to be filed as part of this Form 10-K.<br/></span></ix:nonNumeric><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:98.900%"/><td style="width:0.1%"/></tr><tr style="height:3pt"><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-top:3pt"><span><br/></span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Annual Report on Form 10-K</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">For The Year Ended December&#160;31, 2023 </span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:8.430%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.292%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:79.838%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.940%"/><td style="width:0.1%"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">TABLE OF CONTENTS</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART I</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_16">Business</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_16">4</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;1A</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_19">Risk Factors</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_19">16</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;1B</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_22">Unresolved Staff Comments</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_22">44</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 1C</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_1648">Cybersecurity</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_1648">44</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_25">Properties</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_25">45</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;3</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_28">Legal Proceedings</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_28">45</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;4</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_31">Mine Safety Disclosures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_31">45</a></span></div></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART II</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;5</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_37">Market for Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_37">46</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 6</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_40">[Reserved]</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_40">47</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;7</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_43">Management's Discussion and Analysis of Financial Condition and Results of Operation</a>s</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_43">48</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;7A</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_61">Quantitative and Qualitative Disclosures About Market Risk</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_61">60</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;8</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_64">Financial Statements and Supplementary Data</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_64">61</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;9</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_145">Changes in and Disagreements with Accountants on Accounting and Financial Disclosures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_145">104</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;9A</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_148">Controls and Procedures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_148">104</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;9B</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_151">Other Information</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_151">104</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 9C</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_154">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_154">105</a></span></div></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART III</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;10</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_160">Directors, Executive Officers and Corporate Governance</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_160">105</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;11</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_163">Executive Compensation</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_163">105</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;12</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_166">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_166">105</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;13</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_169">Certain Relationships and Related Transactions, and Director Independence</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_169">105</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;14</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_172">Principal Accounting Fees and Services</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_172">105</a></span></div></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART IV</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;15</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_178">Exhibits and Financial Statement Schedules</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_178">106</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;16</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_184">Form 10-K Summary</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_184">111</a></span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_187">Signatures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_187">112</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SPECIAL NOTE REGARDING FORWARD-LOOKING STATEMENTS</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following discussion and analysis should be read in conjunction with our audited consolidated financial statements and the related Notes that appear elsewhere in this Annual Report on Form 10-K. This Annual Report on Form&#160;10-K contains "forward-looking statements" within the meaning of Section&#160;21E of the Securities Exchange Act of 1934, as amended ("the Exchange Act"), particularly in Part I, Item&#160;1: "Business," Part I, Item&#160;1A: "Risk Factors" and Part 2, Item&#160;7: "Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations." These statements are often identified by the use of words such as "may," "will," "expect," "believe," "anticipate," "intend," "could," "should," "estimate" or "continue," and similar expressions or variations. All statements other than statements of historical fact could be deemed forward-looking, including, but not limited to: any projections of financial information or performance; any statements about historical results that may suggest trends for our business; any statements of the plans, strategies, and objectives of management for future operations; any statements of expectation or belief regarding future events, technology developments, our products and product candidates, product sales, revenues, expenses, liquidity, cash flow, commercial reach, market growth rates or enforceability of our intellectual property rights and related litigation expenses; and any statements of assumptions underlying any of the foregoing. Such forward-looking statements are subject to risks, uncertainties and other factors that could cause actual results and the timing of certain events to differ materially from future results expressed or implied by such forward-looking statements. Accordingly, we caution you not to place undue reliance on these statements. For a discussion of some of the factors that could cause actual results to differ materially from our forward-looking statements, see the discussion on risk factors that appear in Part I, Item&#160;1A: "Risk Factors" of this Annual Report on Form 10-K and other risks and uncertainties detailed in this and our other reports and filings with the U.S. Securities and Exchange Commission ("SEC"). The forward-looking statements in this Annual Report on Form&#160;10-K represent our views as of the date of this Annual Report on Form&#160;10-K. We anticipate that subsequent events and developments will cause our views to change. However, while we may elect to update these forward-looking statements at some point in the future, we have no current intention of doing so except to the extent required by applicable law. You should, therefore, not rely on these forward-looking statements as representing our views as of any date subsequent to the date of this Annual Report on Form&#160;10-K. </span></div><div style="margin-top:9pt"><span><br/></span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:1pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:9pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_13"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART I</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_16"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1. BUSINESS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COMPANY OVERVIEW</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a leading enzyme engineering company leveraging our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> directed evolution technology platform to discover, develop, enhance, and commercialize novel, high-performance enzymes and other classes of proteins. Enzymes are naturally occurring biological molecules critical to almost all biochemical reactions that sustain life. They can be precisely engineered and optimized for specific functions, and to have particular characteristics, such as an ability to survive environments in which natural enzymes cannot, or to perform (bio)chemical transformations different than those for which they naturally evolved. We focus on leveraging our capacity to enhance the properties and performance of enzymes to drive pivotal improvements across two key focus areas: our foundational, revenue-generating biocatalysis pharmaceutical manufacturing business and our Enzyme-Catalyzed Oligonucleotide Synthesis&#8482; (&#8220;ECO Synthesis&#8482;&#8221;) manufacturing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">platform, which is currently in development to enable the commercial scale manufacture of RNA interference (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RNAi</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) therapeutics.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> In July 2023, we announced that we discontinued investment in certain development programs, primarily in our novel biotherapeutics business segment and that we are actively exploring options to drive value by potentially monetizing non-core life science assets, including in genomics and next generation sequencing (&#8220;NGS&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ur revenue-generating</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> pharmaceutical manufacturing business, we utilize our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop optimized enzymes that are used by some of the world&#8217;s largest pharmaceutical companies to reduce their costs and improve the efficiency and productivity of their manufacturing processes for small molecule therapeutics. Our unique enzymes drive improvements such as higher yields, increased purity, reduced energy usage and waste generation, and improved efficiency in manufacturing. We also use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> platform technology to develop enzymes for the synthesis of nucleic acids such as DNA/RNA, including</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> enzymes utilized in our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis&#8482; manufacturing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">platform, where our enzymes are poised to deliver many of the same benefits we offer in pharmaceutical manufacturing across purity, yield, and improved efficiency. We demonstrated gram-scale synthesis under process-like conditions with the ECO Synthesis&#8482; manufacturing platform in December 2023 and expect to begin pre-commercial customer testing in 2024. We anticipate that this will be followed by early commercial licenses to the ECO Synthesis&#8482; manufacturing platform in 2025 and a full commercial launch in 2026.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">History and Core Technology</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a pioneer in harnessing computational technologies to drive biology advancements. Since 2002, we have made substantial investments in the development of our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform, the primary source of our competitive advantage for our business. The CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform has the power to transform the performance of an enzyme, tailoring it for a specific application and/or process. Using powerful machine learning tools and sophisticated molecular, cellular, and bioanalytical workflows, we design and screen libraries of thousands of variants in high throughput every two to four weeks on each project, sequencing every variant and correlating its sequence with its performance in a highly application-relevant screen. Content-rich libraries screened under real-world conditions can yield dense and valuable datasets, when data-mined effectively, and multiple parameters can be optimized in parallel. The resulting evolved variants often have a combination of enhanced properties, such as increased activity, specificity, and stability under desired conditions, or improved expression in the production host. These enhanced properties provide differentiated technical performance in the target application and can provide our customers increased value in the commercial deployment of their products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Recent Changes to Business Strategy </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced the restructuring of our business to focus resources on programs that we believe have the strongest probability of creating significant value in the near-term and beyond, including the advancement and commercialization of our ECO Synthesis&#8482; manufacturing platform and growing our complementary pharmaceutical manufacturing business. As part of this enhanced strategic focus, we also </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">streamlined operations, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, consolidated operations to our Redwood City, California headquarters, and reduced headcount by approximately 25%. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our biotherapeutic product candidates, which were in clinical and preclinical development, were discovered using our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform and ranged from orally delivered enzymes to engineered transgenes for delivery as gene therapies. The most advanced of our biotherapeutics programs was CDX-7108,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> a potent lipase intended for use as a potential treatment for exocrine pancreatic insufficiency (&#8220;EPI&#8221;), which was</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> being developed under a </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Strategic Collaboration Agreement with </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Nestl&#233;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Health Science (&#8220;Nestl&#233;&#8221;) (the &#8220;Nestl&#233; SCA&#8221;). As part of the Nestl&#233; SCA, we and Nestl&#233;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> completed a Phase 1 clinical trial of CDX-7108. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, we entered into an acquisition agreement with Nestl&#233; (the &#8220;Acquisition Agreement&#8221;), pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#233; and terminate the Nestl&#233; SCA. Under the terms of the Acquisition Agreement, Nestl&#233; will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, with Codexis retaining an economic interest in the program through an upfront payment, future potential milestone payments and net-sales based royalties.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, we used our CodeEvolver&#174; technology platform to engineer a series of transgenes that code for enzymes that may be used as gene therapies to treat rare lysosomal storage disorders, such as Fabry Disease and Pompe Disease, as well as a blood factor disorder, with Takeda Pharmaceutical Co. Ltd. (&#8220;Takeda&#8221;). Takeda announced in April 2023 the discontinuation of these development programs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Performance Enzymes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our performance enzymes business consists primarily of two complementary focus areas: pharmaceutical manufacturing and our ECO Synthesis&#8482; manufacturing platform, which is currently in development to enable the commercial-scale manufacture of RNAi therapeutics. In addition to the overlap in technical enzyme engineering expertise required for operating our pharmaceutical manufacturing business and developing the ECO Synthesis&#8482; manufacturing platform, we believe both areas include a similar set of potential customers. Many of our longstanding pharmaceutical manufacturing customers are currently investing in the development of RNAi therapeutics, providing us with an advantage in terms of commercial reach. Further, our pharmaceutical manufacturing business establishes credibility for the ECO Synthesis&#8482; manufacturing platform by demonstrating our proven history of engineering technically complex enzymes for large pharmaceutical companies and effectively scaling up to multiple metric tons of manufactured product using our existing platforms.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pharmaceutical Manufacturing</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe the pharmaceutical industry represents a significant market opportunity for our performance enzymes as pharmaceutical companies are in constant search of new small molecule drugs and are under significant competitive pressure both to reduce costs and to increase the speed to market for their products. To address these pressures, pharmaceutical companies are driven to identify reliable, cost-effective, and sustainable manufacturing processes to produce both their new drug candidates and their existing products, while not impacting drug safety and efficacy. Cost reduction is increasingly important to drug developers (known as innovators) closer to their product launch and during the commercial stage of the product, which can last a decade or more. In addition, cost pressures further intensify as innovators lose their patent exclusivities and begin to experience competition from manufacturers of generic versions of their products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our pharmaceutical manufacturing customers, which include many large global pharmaceutical companies, partner with us to develop engineered enzymes for use as biocatalysts, meeting precisely defined criteria, with the goal of lowering costs and improving the efficiency, productivity and sustainability of their manufacturing processes by: improving productivity, yield and purity; using water as a primary solvent; eliminating hazardous inputs; enabling the use of simple equipment and reducing the need for capital expenditure; reducing energy requirements; reducing the generation of chemical byproducts or waste; and reducing the need for late-stage purifications. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, we are selling biocatalysts to pharmaceutical manufacturers fo</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">r 16 therapeutic drugs </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">that are currently approved for commercial sales.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2022, we announced that we and Pfizer Inc. (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Pfizer&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) had entered into an agreement to supply Pfizer with CDX-616, a proprietary high-performance enzyme used to manufacture a critical intermediate for nirmatrelvir, an active pharmaceutical ingredient in PAXLOVID&#8482;, Pfizer&#8217;s antiviral therapeutic, which is now approved in the United States for the treatment of mild-to-moderate COVID-19 in people at high risk of progression to severe illness, and also authorized or approved by other regulatory authorities across the globe. While we have generated significant revenue from supplying CDX-616 to Pfizer, particularly in 2021 and 2022, there is no future binding commitment for Pfizer to purchase any particular quantity or quantities of CDX-616 from us.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We regularly sell biocatalysts, at multi-kilograms to metric tons per annum scale, that have already been engineered, scaled up, and installed in a customer&#8217;s commercial process. For example, in addition to Pfizer, we sell biocatalysts to Merck, Sharp &amp; Dohme (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Merck&#8221;) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">for their manufacture of sitagliptin, the active ingredient in JANUVIA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, to Urovant Sciences GmbH (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Urovant</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) and KYORIN Pharmaceutical Co., Ltd. (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Kyorin</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) for the manufacture of vibregon, the active ingredient in Urovant&#8217;s GEMTESA&#8482; and Kyorin&#8217;s BEOVA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> products for the treatment of overactive bladder, as well as supporting other products and customers for which public disclosures have not been made.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to these larger volumes of biocatalysts that are sold for our customers&#8217; ongoing commercial requirements, we also sell lesser quantities of engineered enzymes for use in a customer&#8217;s developmental, qualification or regulatory approval operations. As of December&#160;31, 2023, Codexis is selling biocatalysts to pharmaceutical manufacturers for 12 drug candidates currently in Phase 2 and Phase 3 clinical trials, or to customers working to convert to an enzymatic manufacturing process for drugs that have been commercially approved. This pipeline reinforces our confidence in our ability to continue to grow this business over time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finally, we also sell even smaller quantities of enzymes (typically grams to multi-kilogram scale) to customers for experimental, testing, and qualification purposes, or as part of an enzyme engineering project.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to the sale of biocatalysts, we also offer research and development partnerships to our customers. These research and development activities are typically governed by collaboration agreements, which often contain research fee payments and intellectual property provisions, under which we screen and/or engineer biocatalysts for customers in connection with their process development efforts. In these collaborations, we typically receive consideration in the form of one or more of the following: upfront payments, milestone payments, payments for screening and engineering, with other exclusive supply of enzyme or licensing fees and royalties as the customer&#8217;s product commercializes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have licensed our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to pharmaceutical companies to help them develop custom-designed enzymes that are highly optimized for efficient manufacturing processes. To date, we have entered into platform technology licensing agreements with each of GlaxoSmithKline Intellectual Property Development Limited, a subsidiary of GlaxoSmithKline plc (&#8220;GSK&#8221;), Merck and Novartis Pharma AG (&#8220;Novartis&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">ECO Synthesis&#8482; Manufacturing Platform</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">ECO Synthesis&#8482; Manufacturing Platform Overview</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A key strategic priority for Codexis is the advancement and commercialization of our ECO Synthesis&#8482; manufacturing platform, which is currently in development to enable the commercial scale manufacture of RNAi therapeutics. As of December 31, 2023, there are six approved small interfering ribonucleic acid (&#8220;siRNA&#8221;) therapeutics on the market in the United Sates, primarily targeting rare orphan disease indications. However, there are more than 450 RNAi therapeutic assets in development, including over forty that are in Phase 2 and Phase 3 clinical trials, with more th</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">an 40</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of these targeting large disease indications such as Alzheimer&#8217;s, hyperlipidemia and hypertension. We expect worldwide demand for RNAi therapeutics to grow significantly as RNAi therapeutics progress through clinical development and are commercially approved. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The current industry standard for manufacturing RNAi therapeutics is a well-established, chemical-based method called phosphoramidite chemistry. This approach has existed for more than forty years and works effectively for small-scale manufacturing required during the discovery stage of clinical development. However, phosphoramidite chemistry faces multiple limitations in the context of commercial-scale manufacture of RNAi therapeutics. This approach requires significant infrastructure and capital investment in order to meet the anticipated future growth in demand for RNAi therapeutics. Phosphoramidite chemistry is also currently limited to single-digit kilogram batch sizes, which presents challenges around quality control and scalability. Further, chemical synthesis requires large volumes of acetonitrile to facilitate the reaction environment necessary to produce RNAi therapeutics. Acetonitrile is a toxic solvent with high waste disposal costs and future supply may face constraints and price volatility as demand for RNAi therapeutics grows. As additional RNAi therapeutic candidates are approved for large disease indications, we believe using traditional chemical synthesis for commercial scale production will become prohibitively expensive, time-intensive, and challenging for many drug developers and contract development and manufacturing organizations (&#8220;CDMOs&#8221;). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the ECO Synthesis&#8482; manufacturing platform presents several advantages to potentially address these limitations. First, this technology is being developed to integrate within existing manufacturing facilities, potentially eliminating much of the infrastructure investment required for commercial scale manufacturing of RNAi therapeutics with phosphoramidite chemistry. The ECO Synthesis&#8482; manufacturing platform is also being designed to manufacture tens to hundreds of kilograms of high-purity RNA per batch, with a closed-loop system intended to increase volumetric reagent efficiency. Finally, our process is aqueous based, potentially mitigating the need for high volumes of acetonitrile, significantly decreasing chemical waste streams, and reducing heavy disposal and purification costs.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">ECO Synthesis&#8482; Manufacturing Platform Potential Commercial Opportunity</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe we have significant competitive advantages to successfully execute on the ECO Synthesis&#8482; manufacturing platform opportunity, largely stemming from synergies with our pharmaceutical manufacturing business in terms of technical expertise and commercial reach. Many of our pharmaceutical manufacturing customers are developing RNAi therapeutics, and we believe that their familiarity with our ability to engineer and scale complex enzymes is a significant commercial advantage for our ECO Synthesis&#8482; manufacturing platform. However, there are also key differences that make this platform a compelling opportunity as compared to our existing pharmaceutical manufacturing business. Pharmaceutical manufacturing generally requires one-to-one custom enzyme engineering projects, which involve significant time and resource investment from Codexis. Our top five selling pharmaceutical manufacturing enzymes in 2023, excluding sales of CDX-616 related to PAXLOVID&#8482;, generated on average between $2.0 million to $9.0 million annually per enzyme between 2021 and 2023. By contrast, the ECO Synthesis&#8482; manufacturing platform could be applicable to many customers and has the potential to manufacture a range of siRNA. Further, the potential scalability of our solution is differentiated from phosphoramidite chemistry, which is limited in batch size and requires high volumes of toxic solvent. We believe that the ECO Synthesis&#8482; manufacturing platform could enable CDMOs and drug developers to scale production of RNA therapeutics and as a result could potentially command significantly better economic terms than the current annual revenues for pharmaceutical manufacturing enzymes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A critical component that is complimentary to the ECO Synthesis&#8482; manufacturing platform is our engineered double stranded RNA (&#8220;dsRNA&#8221;) ligase, which can stitch together fragments of chemically and/or, in the future, enzymatically synthesized RNA. We believe the dsRNA ligase has the potential to reduce the cost because the cost and impurity profile of phosphoramidite chemistry-built molecules has been shown to increase with the length of the oligonucleotide. Our capabilities in RNA ligase engineering have been in development throughout 2023 via customized evolution programs with medium and large pharmaceutical customers developing RNAi therapeutics. The dsRNA ligase is our early market entry into the RNAi therapeutics manufacturing market. In addition to potentially improving upon the wildtype ligation-based approaches currently available, our dsRNA ligase will serve as a way to introduce our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">TM</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform to customers who want to begin utilizing an enzymatic approach to the manufacture of RNAi therapeutics.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Differentiated Enzymes </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to DNA/RNA synthesis applications, we have also applied our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop customized enzymes for customers using NGS and PCR/qPCR for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">in vitro</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> molecular diagnostic and molecular biology research applications. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2019, we entered into a license agreement to provide Roche Sequencing Solutions, Inc. ("Roche</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) with an evolved DNA ligase for NGS library prep. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior agreement in December 2019 for our evolved T4 DNA ligase. We are eligible to receive an aggregate of mid-single digit millions in upfront and technical milestones payments. This is consistent with our business strategy to focus our resources on high-value opportunities in pharmaceutical manufacturing and the ECO Synthesis&#8482; manufacturing platform while monetizing non-core assets within our Life Sciences portfolio.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a co-marketing and enzyme supply collaboration agreement with Alphazyme LLC (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Alphazyme</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) for the production and co-marketing of enzymes for life science applications. Since then, this collaboration has enabled the commercialization of Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> HiFi DNA Polymerase, Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> HiFi Hot Start DNA Polymerase, Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> HiFi Hot Start 2X NGS Mix, Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> HiCap RNA Polymerase, Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> HiFi UL DNA Polymerase, and Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> HiTemp Reverse Transcriptase.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Master Collaboration and Research Agreement with Molecular Assemblies, Inc. (&#8220;MAI</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) (the &#8220;MAI Agreement&#8221;), and between June 2020 and April 2022, we leveraged our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to improve the DNA polymerase enzymes that are critical for enzymatic DNA synthesis. At the time we entered into the MAI Agreement, we purchased $1.0 million in MAI&#8217;s Series A financing. In April 2021, Codexis invested an additional $0.6 million in MAI&#8217;s Series A financing and, in September 2021, Codexis invested an additional $7.0 million in MAI&#8217;s Series B financing. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we and MAI announced that, using our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform, we had developed a novel, engineered terminal deoxynucleotidyl transferase (&#8220;TdT&#8221;) enzyme which would enable MAI&#8217;s Fully Enzymatic Synthesis&#8482; (&#8220;FES&#8482;&#8221;) technology that produces highly pure, sequence-specific DNA on demand. In August 2022, we and MAI announced that we had entered into a Commercial License and Enzyme Supply Agreement with MAI </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(the &#8220;MAI Supply Agreement&#8221;) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">under which Codexis shall manufacture and sell the TdT enzyme to MAI for use in native DNA synthesis. In connection with the execution of the MAI Supply Agreement, we received a milestone payment of $1.0 million in the form of an additional 1,587,049</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shares of MAI Series B preferred stock pursuant to the MAI Agreement. In March 2023, we purchased an additional 985,545 shares of MAI Series B preferred stock for $0.8&#160;million. As of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we held </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5,443,734 shares of MAI Series A preferred stock and 13,834,180 shares of MAI Series B preferred stock, for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">an aggregate of 19,277,914 shares of MAI's Series A and B preferred stock earned or purchased from MAI.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell, Inc. (&#8220;seqWell&#8221;), a privately held life sciences company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#8220;seqWell Agreement&#8221;), pursuant to which we are providing research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e received 205,279 shares of seqWell's common stock from research and development services with seqWell i</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">n the year ended December&#160;31, 2023. In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">88,256</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of seqWell's Series C-1 preferred stock and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44,128</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> common stock warrants for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.4 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, we announced that we have entered into an exclusive licensing agreement with Aldevron LLC (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aldevron</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), a global leader in the custom development and manufacture of plasmid DNA, RNA and proteins for the biotech industry, whereby Aldevron licensed our Codex&#174; HiCap RNA Polymerase. Under the terms of the deal, Aldevron received global manufacturing and commercialization rights to the Codex&#174; HiCap RNA Polymerase in exchange for payments for near-term technical milestones, along with commercial milestones and sales-based royalties for research use only material as well as good manufacturing practices (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">GMP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) material.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OUR STRATEGY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our strategy is to grow our revenues, profits, and stockholder value by leveraging our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> directed evolution technology platform in the following ways:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Growing our foundational revenue-generating pharmaceutical manufacturing business.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> We intend to continue to pursue opportunities in the pharmaceutical market to use our enzymes to reduce the costs for manufacturing small molecule drugs. We intend to increase the number of pharmaceutical customers and processes that utilize and benefit from our novel, cost-saving enzyme biocatalyst solutions. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Developing and commercializing high-performance enzymes for use in nucleic acid synthesis, including our dsRNA Ligase and our proprietary ECO Synthesis&#8482; manufacturing platform</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We intend to enable fully enzymatic nucleic acid synthesis, which includes the development of o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ur proprietary ECO Synthesis&#8482; manufacturing platform to manufacture RNAi therapeutics at commercial scale through an enzymatic route, including enabling enzymes to manufacture the building blocks, starter materials, and targeting moieties. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Monetizing non-core assets and leveraging </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">channel partners with strong commercial reach to drive penetration of other developed, non-core enzymes. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consistent with our strategy to focus on programs that we believe have the strongest </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">probability of creating significant value in the near-term and beyond, we continue to look for opportunities to monetize non-core assets and to leverage channel partners with stronger commercial reach to drive penetration of other developed, non-core life sciences enzymes. Recent examples of this strategy include monetizing CDX-7108 through the purchase agreement with Nestl</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#233;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and the exclusive licensing agreement with Aldevron for our </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Codex&#174; HiCap RNA Polymerase, both of which were announced in December 2023, as well as the exclusive licensing agreement with Roche in February 2024 for the newly engineered DNA ligase.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Strategic Collaborations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Licensing Our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-style:italic;font-weight:700;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"> Directed Evolution Technology Platform</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">GlaxoSmithKline</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into our first CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Platform Technology Transfer, Collaboration and License Agreement (&#8220;GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement&#8221;) in July 2014 with GlaxoSmithKline Intellectual Property Development Limited, a subsidiary of GSK, pursuant to which we granted GSK a non-exclusive, worldwide license to use our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform in the field of human healthcare for GSK's internal development purposes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement, we licensed and transferred our certain patents, patent applications and know-how from our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to GSK, completing the transfer in April 2016. Under this agreement, we have the potential to receive contingent payments that range from $5.75 million to $38.5 million per project, dependent on GSK's successful application of the licensed technology. We are also eligible to receive royalties based on net sales, if any, of a limited set of products developed by GSK using our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The term of the GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement continues, unless earlier terminated, until the expiration of all payment obligations under the GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement. GSK can terminate the GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement by providing 90 days written notice to us. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, we received a $2.0&#160;million milestone payment on the advancement of an enzyme developed by GSK using our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform. In 2021, we received two additional milestone payments from GSK under the GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Merck</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2015, we entered into a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Platform Technology Transfer and License Agreement (the &#8220;Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement&#8221;) with Merck. The Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement allows Merck to use our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform in the field of human and animal healthcare. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the terms of the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement, we granted to Merck an exclusive license under certain patents, patent applications and know-how from our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform for the research, development and manufacture of novel enzymes for use by Merck in the chemical synthesis of therapeutic products owned or controlled by Merck ("Merck Exclusive Field") and a non-exclusive worldwide license to use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to research, develop and manufacture novel enzymes for use by Merck in its internal research programs (&#8220;Merck Non-Exclusive Field&#8221;). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the terms of the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement, Merck paid us upfront technology transfer and license fees and milestone payments over the technology transfer period of 15 months from August 2015. We also have the potential to receive product-related payments of up to $15.0 million for each active pharmaceutical ingredient (&#8220;API&#8221;) that is manufactured by Merck using one or more enzymes that have been developed or are in development using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform during the 10-year period that begins on the conclusion of the 15-month technology transfer period. These product-related payments, if any, will be paid by Merck to us for each quarter that Merck manufactures API using a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">-developed enzyme. The payments will be based on the total volume of API produced using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">-developed enzyme.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In September 2016, we completed the full transfer of the engineering platform technology. In October 2018, we entered into an amendment to the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement whereby we amended certain licensing provisions and one exhibit. In January 2019, we entered in</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">to a second amendment to the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement whereby we installed certain CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform upgrades into Merck&#8217;s platform license installation. We maintained those upgrades for a multi-year term that expired in January 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Novartis</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2019, we entered into a Platform Technology Transfer and License Agreement (the &#8220;Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement&#8221;) with Novartis. The Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement allows Novartis to use our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> platform technology in the field of human healthcare. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the terms of the Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement, we granted to Novartis a worldwide license to use certain patents, patent applications and know-how from our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to research, develop and manufacture novel enzymes for use by or on behalf of Novartis as biocatalysts in the chemical synthesis of small molecule and bioconjugate APIs. The license is exclusive for the research, development and manufacture of novel enzymes for use by Novartis as biocatalysts in the chemical synthesis of API owned or controlled by Novartis (&#8220;Novartis Exclusive Field&#8221;) and non-exclusive for the research, development and manufacture of novel enzymes for use by Novartis in the chemical synthesis of API not owned or controlled by Novartis or any third party (&#8220;Novartis Non-Exclusive Field&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to Novartis (the &#8220;Technology Transfer Period&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we received an upfront payment of $5.0&#160;million shortly after the effective date. We completed the second technology milestone transfer under the agreement and received a milestone payment of $4.0&#160;million in 2020. We have also received an aggregate of $5.0&#160;million for the completion of the third technology transfer milestone in 2021. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#8220;Improvements Term&#8221;), Novartis will pay us annual payments over four years which amount to an additional $8.0&#160;million in aggregate. We also have the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. These product-related usage payments, if any, will be paid by Novartis to Codexis for each quarter that Novartis manufactures API using a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">-developed enzyme. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The licenses to Novartis are granted under patents, patent applications and know-how that Codexis owns or controls as of the effective date of the Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement and that cover the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform. Any improvements to the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform during the Technology Transfer Period will also be included in the license grants from Codexis to Novartis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INTELLECTUAL PROPERTY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our success depends in large part on our ability to protect our proprietary technology, products and services under patent, copyright, trademark and trade secret laws. We also rely heavily on confidentiality and non-disclosure and other contractual agreements for further protection of our proprietary technology, products and services. Protection of our proprietary rights, titles and interests is important for us to offer our customers and partners proprietary technology, products and services that are not available from our competitors, and to exclude our competitors from practicing technology that we have developed or exclusively licensed from other parties. For example, our ability to successfully supply innovator pharmaceutical manufacturers as customers depends on our ability to supply proprietary enzymes or methods for making pharmaceutical intermediates or APIs that are not available from our competitors. Likewise, in the generic pharmaceutical area, protection of our proprietary technology, products and services directed to our enzymes and methods of producing pharmaceutical products, through patent or trade secret laws or other legal protections is important for us and our customers to maintain a lower cost production advantage over competitors. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, we owned or controlled approximate</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ly 1,990 active issued patents </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">and pending patent applications in the United States and in various foreign jurisdictions, many of which are directed to our enabling technologies and specific methods and products that support our business in the pharmaceutical and oligonucleotide synthesis markets. This portfolio also includes patents and pending patent applications in the biotherapeutics, mo</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">lecular diagnostics, and other markets. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">our patents and pending patent applications, if issued, have terms that expire between 2024 and approximately 2044. Our United States (&#8220;U.S.&#8221;) patents and pending patent applications directed to the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform developed internally by us have terms that expire between 2029 and approximately 2034. It </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">is possible that some U.S. patents and patent applications (if issued) may be entitled to patent term extensions and/or patent term adjustments, which would extend the protection beyond these expiration dates. It is also possible that some patents and patent applications (if issued) in other jurisdictions will be entitled to additional patent terms. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our current intellectual property rights also include patents, trademarks, copyrights, software and certain assumed contracts that we acquired from Maxygen, Inc. (&#8220;Maxygen&#8221;) in October 2010, which are associated with directed evolution technology, known as the MolecularBreeding&#8482; technology platform developed by Maxygen. The intellectual property rights and other related assets that we acquired from Maxygen continue to be subject to existing exclusive and non-exclusive license rights granted by Maxygen to third parties. We continue to file new patent applications in our business areas of interest, for which terms generally extend 20 years from the non-provisional filing date in the United States. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, we owned approximately 100 trademark registrations in the United States and foreign jurisdictions, as well as various common law trademarks. These include, but are not limited to: Codexis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Mosaic</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Sage</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Microcyp</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, MCYP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, ProSAR</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Unlock the Power of Proteins</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, the Codexis Protein Engineering Experts</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> logo, Strategist</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Continuity</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Ameli</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Forager</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Analogene</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Harvester</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Atoms</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Riptide</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, APS</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and a Codexis design mark (i.e., the stylized Codexis logo), as well as pending registration applications for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis&#8482; and ecoRNA&#8482;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COMPETITION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face differing forms of competition in pharmaceutical manufacturing and RNAi therapeutics manufacturing, as set forth below.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Performance Enzyme</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pharmaceutical Manufacturing</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We market our biocatalyst products and services to manufacturers of small molecule pharmaceutical intermediates and APIs. Our primary competitors in that market are companies marketing either conventional, non-enzymatic catalysts or alternative biocatalyst products and services, or from full-service CDMOs offering conventional chemistry approaches to the production of APIs. We also face competition from existing in-house technologies (both biocatalysis and conventional chemistries) within our client and potential client companies. The principal methods of competition and competitive differentiation in this market are price, product quality and performance, including manufacturing yield, safety and environmental benefits and speed of product delivery. Pharmaceutical manufacturers that use biocatalytic processes can face competition from manufacturers that use more conventional processes and/or manufacturers that are based in regions (such as India and China) with lower operating, regulatory, safety and environmental costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also compete with companies developing and marketing conventional catalysts including, for example, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Solvias AG, BASF, Johnson-Matthey and Takasago International Corporation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for supplying enzymes for use in pharmaceutical manufacturing is quite fragmented. There is competition from large industrial enzyme companies, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as well as subsidiaries of larger contract research/contract manufacturing organizations, such as DSM Firmenich, Cambrex Corporation, Lonza, WuXi STA and Almac Group Ltd. Some fermentation pathway design companies, such as Ginkgo Bioworks,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> whose traditional focus has been to design microorganisms that express small molecule chemicals, could extend into designing organisms that express enzymes. There is also competition in the enzyme customization and optimization area from several smaller companies, such </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as BRAIN AG, evoxx technologies GmbH, c-LEcta GmbH, Enzymicals AG, and Enzymaster.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for the manufacture and supply of APIs and intermediates is large, with many established companies. These companies include many of our large innovator and generic pharmaceutical customers, such as </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Merck, GSK, Novartis, Pfizer, Bristol-Myers Squibb Company ("Bristol-Myers"), Kyorin, Urovant, and Teva Pharmaceutical Industries Limited ("Teva")</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which have significant internal research and development efforts directed at developing processes to manufacture APIs and intermediates for use in their drug product manufacturing. There is also a large network of CDMOs servicing the innovator companies with supply of APIs and/or intermediates. These C(D)MOs include </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cambrex Corporation, Asymchem, WuXi STA and Almac Group Ltd, among many others.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> The processes used by these companies (both C(D)MOs and innovators) include classical organic chemistry reactions, chemo-catalytic reactions, biocatalytic reactions or combinations thereof. Our biocatalyst-based manufacturing processes must compete effectively on cost and efficiency with these internally developed routes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that our principal advantage is our ability to rapidly deliver customized biocatalysts for existing and new intermediates and APIs in the pharmaceutical manufacturing market. This capability has allowed us to create a breadth of biocatalysts with improved performance characteristics including, for example, better activity, stability, and activity on a range of substrates, compared to traditional chemistry-based manufacturing processes and naturally occurring (and thus not optimized) biocatalysts. We believe that our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform can provide substantially superior results, in shorter time frames, than companies offering competing biocatalyst development services. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-style:italic;font-weight:700;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">TM</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"> Manufacturing Platform for RNAi Therapeutics</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Following the restructuring of our business announced in July 2023, our Life Sciences business is now primarily focused on RNAi therapeutics manufacturing as we develop and commercialize the ECO Synthesis&#8482; manufacturing platform. Phosphoramidite chemistry is the current and long-established industry standard for the manufacture of RNAi therapeutics, examples including antisense oligonucleotides (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASO</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), small-interfering RNA (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">siRNA</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), RNA aptamers, and guide RNA (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">gRNA</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). Primary competitors in this space include CDMOs, such as Agilent Technologies, which has made significant capital investment to expand their RNA manufacturing capabilities using phosphoramidite chemistry. In addition, CDMOs and large pharmaceutical companies are seeking to make incremental improvements to phosphoramidite chemistry, including the development of ligation-based approaches, liquid-phase synthesis, and solvent recycling. There are also multiple early-stage competitors who are pursuing fully enzymatic approaches to the manufacture of RNA, including EnPlusOne, a private startup company, and a UK-based consortium led by the Centre for Process Innovation (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CPI</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and consisting of multiple academic and research organizations, including The University of Manchester and large pharmaceutical companies, including AstraZeneca plc and Novartis. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Other</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Core Technology</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a leader in the field of enzyme engineering to create novel enzymes, and our work across Pharmaceutical Manufacturing and the Eco Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">TM</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform relies on our core technology. We are aware that other companies, organizations and persons have developed technologies that appear to have some similarities to our patented proprietary technologies. For example, we are aware that other companies, includin</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">g Ginkgo Bioworks, BRAIN, Enzymaster, and Enzymicals AG </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">have alternative methods for obtaining and generating genetic diversity or use mutagenesis techniques to produce genetic diversity. In addition, academic institutions such as the California Institute of Technology, University of Manchester, and the Austrian Centre of Industrial Biotechnology are also working in this field. This field is highly competitive with companies and academic and research institutions actively seeking to develop technologies that could be competitive with our technologies.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Technological developments by others may result in our products and technologies, as well as products manufactured by our customers using our biocatalysts, becoming obsolete. We monitor publications and patents that relate to directed molecular evolution to be aware of developments in the field and evaluate appropriate courses of action in relation to these developments. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Many of our competitors have substantially greater manufacturing, financial, research and development, personnel and marketing resources than we do. As a result, our competitors may be able to develop competing and/or superior technologies and processes, and compete more aggressively and sustain that competition over a longer period of time than we could. Our technologies and products may be rendered obsolete or uneconomical by technological advances or entirely different approaches developed by one or more of our competitors.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We initially commercialized our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform and products in the manufacture of small molecule pharmaceuticals, which remains a primary business focus. Our customers, which include many large, global pharmaceutical companies, use our technology, products and services in their process development and in manufacturing. Additionally, we have licensed our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to global pharmaceutical companies enabling them to use this technology, in-house, to engineer enzymes for their own businesses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CUSTOMERS </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on certain key customers for a significant portion of our total revenues and our accounts receivable balances. For the year ended December&#160;31, 2023, two customers accounted for approximately 22% and 13% of our total revenues. As of December&#160;31, 2023, four customers accounted for approximately 21%, 13%, 12% and 12% of our accounts receivable balances. For more information, see Note 15, &#8220;Segment, Geographical and Other Revenue Information&#8221; in the Notes to the Consolidated Financial Statements set forth in Item 8 of this Annual Report on Form 10-K.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OPERATIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our corporate headquarters are located in Redwood City, California and provide general administrative support to our business and are the center of our research, development and business operations. We have limited internal manufacturing capacity at our headquarters in Redwood City. We expect to rely on third-party manufacturers for commercial production of our biocatalysts for the foreseeable future. Our in-house manufacturing is dedicated to producing both Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> biocatalyst panels and kits and enzymes for use by our customers in pilot scale and clinical production. We also supply initial commercial quantities of biocatalysts for use by our collaborators to produce pharmaceutical intermediates and manufacture biocatalysts that we sell.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In September 2023, we announced that we had entered into an agreement for the assignment and assumption of lease for our San Carlos, California facility. In the first quarter of 2021, we entered into an arrangement to lease this facility to serve as an additional office and research and development laboratory space which we occupied beginning December 20</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21. As part of the restructuring of our business announced in July 2023, we consolidated operations to our Redwood City headquarters and discontinued investment in biotherapeutics. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For additional information on the San Carlos facility, s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 13, &#8220;Commitments and Contingencies&#8221; in the Notes to the Consolidated Financial Statements set forth in Item 8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our research and development operations include efforts directed towards engineering biocatalysts, bioprocess development, cellular engineering, biocatalyst screening, metabolites, strain improvement, fermentation development and process engineering. We conduct enzyme evolution, enzyme production development, microbial bioprocess development, cellular engineering, microbial evolution and process engineering evaluations and design primarily at our headquarters in Redwood City, California. Manufacturing of our enzymes is conducted primarily in four locations: at our in-house facility in Redwood City, California and at third-party contract manufacturing organizations</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, Lactosan GmbH &amp; Co. KG (&#8220;Lactosan&#8221;) in Kapfenberg, Austria, ACS Dobfar S.p.A. (&#8220;ACSD&#8221;) (formerly known as DPhar S.p.A.) in Anagni, Italy, and Alphazyme in Jupiter, Florida, United States. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Generally, we perform smaller scale manufacturing in-house and outsource larger scale manufacturing, representing a large percentage of our production of novel enzymes, to contract manufacturing organizations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">GOVERNMENT REGULATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our enzymes are used by pharmaceutical and biopharmaceutical companies in the manufacture of their drug or biologic product candidates and finished products. In the United States, the manufacture, distribution, marketing, and sale of drug products and the provision of certain services for development-stage pharmaceutical and biotechnology products are subject to extensive ongoing regulation by the United States Food and Drug Administration (&#8220;FDA&#8221;), the United States Department of Health and Human Services (&#8220;HHS&#8221;), state boards of pharmacy, state health departments, various accrediting bodies, and similar regulatory authorities in other countries, including laws and regulations governing bribery, fraud, kickbacks, and false claims. The costs associated with complying with the various applicable federal, state, local, national, and international laws and regulations could be significant, and the failure to comply with such legal requirements could have an adverse effect on our results of operations and financial condition. The FDA extensively regulates, among other things, the research, development, testing, manufacture, quality control, import, export, safety, effectiveness, labeling, packaging, storage, distribution, record keeping, approval, advertising, promotion, marketing, post-approval monitoring, and post-approval reporting of drug and biologic products under the Federal Food, Drug and Cosmetic Act, its implementing regulations and other laws, including, in the case of biologics, the Public Health Service Act. Our third-party contractors, collaborators, and customers will be required to navigate the various preclinical, clinical and commercial approval requirements of the governing regulatory agencies of the countries in which they wish to conduct studies or seek approval or licensure of their product candidates, which may include regulatory inspections for compliance with current good manufacturing practices (&#8220;cGMP&#8221;). The process of obtaining regulatory approvals and the subsequent compliance with applicable federal, state, local and foreign statutes and regulations require the expenditure of substantial time and financial resources. This regulatory scrutiny results in our customers imposing rigorous quality and other requirements on us as their supplier through supplier qualification processes and customer contracts and specifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The process required by the FDA before a drug or biologic may be marketed in the United States generally involves the following:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">completion of preclinical laboratory tests and animal studies performed in accordance with the FDA&#8217;s good laboratory practice regulations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">submission to the FDA of an IND, which must become effective before clinical trials in the United States may begin;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">performance of adequate and well-controlled human clinical trials to establish the safety and potency of the product candidate for each proposed indication, conducted in accordance with the FDA&#8217;s good clinical practice (&#8220;GCP&#8221;) regulations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">preparation and submission to the FDA of a new drug application ("NDA") or biologics license application ("BLA") after completion of all pivotal clinical trials;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">satisfactory completion of an FDA inspection of the manufacturing facility or facilities at which the product is produced to assess compliance with cGMP regulations and to assure that the facilities, methods and controls are adequate to preserve the drug's continued safety, purity and potency, and of selected clinical investigation sites to assess compliance with Good Clinical Practices, or GCPs; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">FDA review and approval of the NDA or BLA prior to any commercial marketing, sale or distribution of the product. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Environmental, Health and Safety Regulations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are responsible for ensuring an environmentally responsible, safe, and healthy workplace. We are required to abide by all relevant county, state and federal agency regulations for environmental, health and safety requirements and have the necessary procedure, permits, and licenses in place to operate accordingly. Our contracts with outside suppliers and vendors require compliance with applicable laws and regulations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">HUMAN CAPITAL RESOURCES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, we had 174 full-time employees and part-time employees worldwide. Of these employees, 61 were engaged in research and development, 41 were engaged in operations and quality control and 72 were engaged in selling, general and administrative activities. None of our employees are represented by a labor union. Supported by our annual employee survey, we believe our relationship with our employees to be generally good. Our scientists, bioinformatics experts and other professionals work collaboratively as interdisciplinary teams to unlock and advance technological innovation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Compensation, benefits and development</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our goal is to attract, motivate and retain talent with a focus on encouraging performance, promoting accountability and adhering to our company values. We offer competitive compensation and benefit programs including a company-matched 401(k) Plan, an Employee Stock Purchase Plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), stock options for eligible employees, health savings and flexible spending accounts, paid time off, education and training programs, and employee assistance programs. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Diversity, equity and inclusion</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are committed to our continued efforts to increase diversity and foster an inclusive work environment that supports our global workforce and the communities we serve. We recruit the best people for the job regardless of gender, ethnicity or other protected traits and it is our policy to fully comply with all laws applicable to discrimination in the workplace. Our diversity, equity and inclusion principles are also reflected in our employee training and policies. We continue to enhance our diversity, equity and inclusion policies which are guided by our executive leadership team, including our commitment to green chemistry, demonstrated, among other things, by our </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;My </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Green Lab Certification.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Health and safety</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are committed to maintain a safe and healthy workplace for our employees. Our policies and practices are intended to protect our employees and the surrounding communities in which we operate.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We continue to monitor COVID-19 local, state, and federal guidance, policies and regulations for changes and we implement modifications to internal guidelines as needed. In response to the COVID-19 pandemic, we implemented safety protocols and new procedures to protect our employees.  These protocols include health and safety standards as required by state and local government agencies, taking into consideration guidelines of the Centers for Disease Control and Prevention and other public health authorities.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CORPORATE &amp; AVAILABLE INFORMATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We were incorporated in Delaware in January 2002 as a wholly-owned subsidiary of Maxygen, Inc. We commenced independent operations in March 2002, after licensing core enabling technology from Maxygen, Inc. Our principal corporate offices are located at 200 Penobscot Drive, Redwood City, California 94063 and our telephone number is (650) 421-8100. Our internet address is www.codexis.com. The information on, or that can be accessed through, our website is not incorporated by reference into this Annual Report on Form 10-K or any other filings we make with the U.S. Securities and Exchange Commission (the &#8220;SEC&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make available on or through our website certain reports and amendments to those reports that we file with, or furnish to, the SEC in accordance with the Exchange Act. These include our Annual Reports on Form 10-K, our Quarterly Reports on Form 10-Q and our Current Reports on Form 8-K, and amendments to those reports filed or furnished pursuant to Section 13(a) or 15(d) of the Exchange Act. We make this information available on or through our website free of charge as soon as reasonably practicable after we electronically file the information with, or furnish it to, the SEC. Copies of this information may be obtained at the SEC website at www.sec.gov. The contents of these websites are not incorporated into this filing. Further, the references to website URLs are intended to be inactive textual references only.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_19"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1A. RISK FACTORS </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">You should carefully consider the risks described below together with the other information set forth in this Annual Report on Form 10-K, which could materially affect our business, financial condition or future results. The risks described below are not the only risks facing our company. Risks and uncertainties not currently known to us or that we currently deem to be immaterial also may materially adversely affect our business, financial condition and/or operating results. Additional discussion of the material risks and uncertainties summarized in this risk factor summary, as well as certain other risks and uncertainties that we face, can be found in this section.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">RISK FACTORS SUMMARY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a summary of the principal factors that cause an investment in the Company to be speculative or risky:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We have a history of net losses and we may not achieve or maintain profitability. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Biotherapeutic programs are highly regulated and expensive.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are dependent on a limited number of customers.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Our product supply agreements with customers have finite duration and may not be extended or renewed.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The demand for our product depends in part on our customers' research and development and the clinical and market success of their products.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">With respect to customers purchasing our products for the manufacture of API, the termination or expiration of such patent protection may materially and adversely affect our revenues, financial condition or results of operations.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are dependent on a limited number of contract manufacturers for large scale production of substantially all of our enzymes.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are dependent on our collaborators, and our failure to successfully manage these relationships could prevent us from developing and commercializing many of our products.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If we are unable to develop and commercialize new products for the target markets, our business and prospects will be harmed. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We have invested significant resources to enable fully enzymatic nucleic acid synthesis, which is based on novel ideas and technologies that are largely unproven.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Future revenues from our sales of CDX-616 to Pfizer are subject to a number of factors which are outside of our control and may not materialize.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Ethical, legal and social concerns about genetically engineered products and processes could limit or prevent the use of our products, processes, and technologies and limit our revenues.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We have recently enhanced our strategic focus to concentrate on certain programs and business lines. As a result of this refined focus on returning the foundational, revenue-generating pharmaceutical manufacturing business and the ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">TM</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, we may fail to capitalize on other opportunities that may be more profitable or for which there is a greater likelihood of success.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Given our recent change in strategic direction, we may receive limited revenue or no future value from certain of our existing license agreements.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We use hazardous materials in our business, and we must comply with environmental laws and regulations.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">As a public reporting company, we are subject to rules and regulations established from time to time by the SEC and Nasdaq regarding our internal controls over financial reporting. We may not complete needed improvements to our internal controls over financial reporting in a timely manner, or these internal controls may not be determined to be effective, which may adversely affect investor confidence in our company and, as a result, the value of our common stock and your investment.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may need additional capital in the future in order to expand our business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may not be able to comply with the terms of our five-year loan and security agreement (our </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loan Agreement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) with Innovatus Life Sciences Lending Fund, I, LP, an affiliate of Innovatus Capital Partners </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(&#8220;Innovatus&#8221;).</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Our ongoing efforts to deploy our technology in the life science tools market may fail.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Even if our customers or collaborators obtain regulatory approval for any products utilizing our enzymes, such products will remain subject to ongoing regulatory requirements, which may result in significant additional expense.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If we or our customers fail to comply with certain healthcare laws, including fraud and abuse laws, we could face substantial penalties and our business, results of operations, financial condition and prospects could be adversely affected.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Our efforts to prosecute, maintain, protect and/or defend our intellectual property rights may not be successful.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Our ability to compete may decline if we do not adequately prosecute, maintain, protect and/or defend our proprietary technology, products or services or our intellectual property rights.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Third parties may claim that we are infringing, violating or misappropriating their intellectual property rights, which may subject us to costly and time-consuming litigation and prevent us from developing or commercializing our technology, products or services.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may be involved in lawsuits to protect or enforce our intellectual property rights, which could be expensive, time-consuming and unsuccessful.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may not be able to enforce our intellectual property rights throughout the world.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If our biocatalysts are stolen, misappropriated or reverse engineered, others could use these biocatalysts to produce competing products.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are subject to anti-takeover provisions in our certificate of incorporation and bylaws and under Delaware law that could delay or prevent an acquisition of our company.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Market and economic conditions may negatively impact our business, financial condition, and share price.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Business interruptions resulting from disasters or other disturbances could delay us in the process of developing our products and could disrupt our sales.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Evolving expectations around environmental, social and governance matters may expose us to reputational and other risks.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Our Business and Strategy </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have a history of net losses and we may not achieve or maintain profitability.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have incurred net losses since our inception, including losses of $76.2 million, $33.6 million, and $21.3 million for the years ended December 31, 2023, 2022, and 2021, respectively. As of December&#160;31, 2023, we had an accumulated deficit of $497.5 million. If we are unable to continue to successfully develop and commercialize products in our pharmaceutical manufacturing business, increase sales of existing products and services, develop and commercialize our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, and or develop new products or services, or otherwise expand our business, whether through new or expanded collaborations or other products and services, our net losses may increase and we may never achieve profitability. In addition, some of our agreements, including the agreements with GSK, Merck, Novartis, Nestl&#233; Health Science, Aldevro</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">n and Roche </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">provide for milestone payments, usage payments, and/or future royalty or other payments, which we will only receive if we and/or our collaborators develop and commercialize products or achieve technical milestones. We also intend to continue to fund the development of additional proprietary performance enzyme products and advance new technologies like our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform. There can be no assurance that any of these products or services will become commercially viable or that we will ever achieve profitability on a quarterly or annual basis. If we fail to achieve profitability, or if the time required to achieve profitability is longer than we anticipate, we may not be able to continue our business. Even if we do achieve profitability, we may not be able to sustain or increase profitability on a quarterly or annual basis. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Biotherapeutic programs are highly regulated and expensive, and our enzyme products are complex and subject to quality control requirements. The ability of our customers, future customers or collaborators, including any company developing RNAi therapeutics, to advance product candidates utilizing our products to clinical trials and to ultimately receive regulatory approvals is highly uncertain.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we are no longer developing our own portfolio of biotherapeutics product candidates, we continue to develop enzyme products, including our ECO Synthesis</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, that may be used by our customers, future customers or collaborators in connection with their biotherapeutic product candidates. The successful development of biotherapeutic candidates involves many risks and uncertainties, requires long timelines and may lead to uncertain results. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our customers are subject to extensive regulations by the FDA and similar regulatory authorities in other countries for conducting clinical trials and commercializing products for therapeutic, vaccine or diagnostic use. These regulations result in our customers imposing quality requirements on us for the manufacture of our enzyme products through supplier qualification processes and customer contracts and specifications</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In order to market a biologic or drug product in the United States, our customers, future customers or collaborators must undergo the following process required by the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">FDA: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">completion of extensive preclinical laboratory tests and preclinical animal studies, all performed in accordance with the FDA's Good Laboratory Practice requirements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">submission to the FDA of an Investigational New Drug Application (&#8220;IND&#8221;), which must become effective before human clinical studies may begin in the United States;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">approval by an independent institutional review board (&#8220;IRB&#8221;) representing each clinical site before the clinical study may be initiated at the site;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">performance of adequate and well-controlled human clinical studies in accordance with Good Clinical Practice (&#8220;GCP&#8221;) requirements to establish the safety, purity and potency (or efficacy) of the product candidate for each proposed indication;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">preparation of and submission to the FDA of a Biologics License Application (&#8220;BLA&#8221;) or New Drug Application (&#8220;NDA&#8221;)after completion of all clinical studies;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential review of the product candidate by an FDA advisory committee;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">satisfactory completion of an FDA pre-approval inspection of the manufacturing facilities where the product candidate is produced to assess compliance with current Good Manufacturing Practice (&#8220;cGMP&#8221;) requirements; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">FDA review and approval of a BLA or NDA prior to any commercial marketing or sale of the product in the United States; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">any post-approval requirements, if applicable.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The regulatory approval processes of the FDA and comparable foreign authorities are lengthy, time consuming and the results are inherently unpredictable. If our customers, future customers or collaborators are ultimately unable to obtain regulatory approval for their biotherapeutic product candidates utilizing our enzyme products, our business may be harmed. In addition, if our customers, future customers or collaborators fail to comply with applicable FDA or other regulatory requirements at any time during the drug development process, clinical testing, the approval process or after approval, they may become subject to administrative or judicial penalties, including the FDA&#8217;s refusal to approve a pending application, withdrawal of an approval, warning letters, product recalls and additional enforcement actions, any of which may have an adverse effect on our financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe our enzyme products are exempt from compliance with the Food, Drug, and Cosmetic Act (&#8220;FDCA&#8221;) and the current GMP (&#8220;cGMP&#8221;) regulations of the FDA, as our products are further processed and incorporated into final drug or biologic products by our customers and we do not make claims related to their safety or effectiveness. Our products are manufactured following the voluntary quality standards of ISO 9001:2015. In the event we, or our suppliers, produce products that fail to comply with required quality standards, we may incur delays in fulfilling orders, write-downs, damages resulting from product liability claims and harm to our reputation.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the future, our products could become subject to more onerous regulation, or the FDA could disagree with our assessment that our enzyme products are exempt from current GMP regulations. In addition, the FDA could conclude that the products we provide to our customers are actually subject to the pharmaceutical, drug or biologic quality-related regulations for manufacturing, processing, packing or holding of drugs, biologics, or finished pharmaceuticals, and could take enforcement action against us, including requiring us to stop distribution of our products until we are in compliance with applicable regulations, which would reduce our revenue, increase our costs and adversely affect our business, prospects, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on a limited number of customers. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we continue to expand our customer base, our current revenues are derived from a limited number of key customers. For the years ended December 31, 2023 and 2022, customers that each individually contributed 10% or more of our total revenue accounted for 35% and 56% of our total revenues, respectively. We expect a limited number of customers to continue to account for a significant portion of our revenues for the foreseeable future. This customer concentration increases the risk of quarterly fluctuations in our revenues and operating results. The loss or reduction of business from one or a combination of our significant customers could, materially adversely affect our revenues, financial condition and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our product supply agreements with customers have finite duration, may not be extended or renewed and generally do not require the customer to purchase any particular quantity or quantities of our products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our product supply agreements with customers generally have a finite duration, may not be extended or renewed and generally do not require the customer to purchase any particular quantity or quantities of our products. While our products are not considered commodities and may not be easily substituted for by our customers, particularly when our products are used in the manufacture of active pharmaceutical ingredients, our customers may nevertheless terminate or fail to renew their product supply agreements with us or significantly curtail their purchases thereunder under certain circumstances. We are working to develop new relationships with existing or new customers, but despite these efforts we may not, at the time that any of our existing product supply agreements expire or are terminated, or purchases thereunder curtailed, have other contracts in place generating similar or material revenue. Any such expiration, termination or reduction could materially adversely affect our revenues, financial condition and results of operations. For the year ended December 31, 2023, we derived a majority of our product revenue from these product supply agreements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The demand for our products depends in part on our customers&#8217; research and development and the clinical and market success of their products. Our business, financial condition, and results of operations may be harmed if our customers spend less on, or are less successful in, these activities. In addition, customer spending may be affected by, among other things, general market and economic conditions beyond our control.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our customers are engaged in research, development, production, and marketing of pharmaceutical products and intermediates. The amount our customers spend on research, development, production, and marketing, as well as the outcomes of such research, development, and marketing activities, have a large impact on our sales and profitability, particularly the amount our customers choose to spend on our offerings. Available resources, the need to develop new products, and consolidation in the industries in which our customers operate may have an impact on such spending. Our customers and potential customers finance their research and development spending from private and public sources. A reduction in available financing for and spending by our customers, for these reasons or because of continued unstable or unpredictable economic and marketplace conditions, could have a material adverse effect on our business, financial condition, and results of operations. If our customers are not successful in attaining or retaining product sales due to market conditions, reimbursement issues, or other factors, our results of operations may be materially adversely affected.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">With respect to customers purchasing our products for the manufacture of APIs for which they have exclusivity due to patent protection, the termination or expiration of such patent protection and any resulting generic competition may materially and adversely affect our revenues, financial condition or results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With respect to customers purchasing our products for the manufacture of API, or lead to the manufacture of API, for which exclusivity due to patent protection has or is about to expire, we can expect that the quantity of our products sold to such customers for such products may decline as generic competition for the API increases. While we anticipate that we may, in some cases, also be able to sell products to these generic competitors for the manufacture of these APIs, or lead to the manufacture of these APIs, the overall effect on our revenues, financial condition and results of operations could be materially adverse.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on a limited number of contract manufacturers for large scale production of substantially all of our enzymes. We are working to qualify new contract manufacturers to produce certain of our enzymes, however those efforts may not be successful and therefore we may experience limitations on our ability to supply our enzymes to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Manufacturing of our enzymes is conducted primarily in four locations: our in-house facility in Redwood City, California, and at three third-party contract manufacturing organizations, Lactosan in Kapfenberg, Austria, ACSD ( in Anagni, Italy, and Alphazyme in Jupiter, Florida, United States. Generally, we perform smaller scale manufacturing in-house and outsource the larger scale manufacturing to these contract manufacturers. We have limited internal capacity to manufacture enzymes. As a result, we are dependent upon the performance and capacity of third-party manufacturers for the larger scale manufacturing of the enzymes used in our pharmaceutical and life sciences businesses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, we face risks of difficulties with, and interruptions in, performance by third party manufacturers, the occurrence of which could adversely impact the availability, launch and/or sales of our enzymes in the future. Enzyme manufacturing capacity limitations at our third-party manufacturers and manufacturing delays could negatively affect our business, reputation, results of operations and financial condition. The failure of any contract manufacturer to supply us our required volumes of enzyme on a timely basis, or to manufacture our enzymes in compliance with our specifications or applicable quality requirements or in volumes sufficient to meet demand, would adversely affect our ability to sell pharmaceutical and complex chemicals products, could harm our relationships with our customers or collaborators and could negatively affect our revenues and operating results. We may be forced to secure alternative sources of supply, which may be unavailable on commercially acceptable terms, and could cause delays in our ability to deliver products to our customers, increase our costs and decrease our profit margins.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We currently have supply agreements in place with Lactosan, ACSD and Alphazyme. In the absence of a supply agreement, a contract manufacturer will be under no obligation to manufacture our enzymes and could elect to discontinue their manufacture at any time. If we require additional manufacturing capacity and are unable to obtain it in sufficient quantity, we may not be able to increase our product sales, or we may be required to make substantial capital investments to build that capacity or to contract with other manufacturers on terms that may be less favorable than the terms we currently have with our suppliers. If we choose to build our own additional manufacturing facility, it could take several years or longer before our facility is able to produce commercial volumes of our enzymes. Any resources we expend on acquiring or building internal manufacturing capabilities could be at the expense of other potentially more profitable opportunities. In addition, if we contract with other manufacturers, we may experience delays of several months in qualifying them, which could harm our relationships with our customers or collaborators and could negatively affect our revenues or operating results.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on our collaborators, and our failure to successfully manage these relationships could prevent us from developing and commercializing many of our products and achieving or sustaining profitability, and could lead to disagreements with our current or former collaborators.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ability to maintain and manage collaborations in our markets is fundamental to the success of our business. We currently have license agreements, research and development agreements, supply agreements and/or distribution agreements with various collaborators. For example, we have ongoing collaborations and agreements with GSK, Merck, Novartis, Roche and Aldevron that are important to our business and financial results. We may have limited or no control over the amount or timing of resources that any collaborator is able or willing to devote to our partnered products or collaborative efforts. Any of our collaborators may fail to perform its obligations. These collaborators may breach or terminate their agreements with us or otherwise fail to conduct their collaborative activities successfully and in a timely manner. Further, our collaborators may not develop products arising out of our collaborative arrangements or devote sufficient resources to the development, manufacture, marketing or sale of these products. Moreover, disagreements with a collaborator could develop, and any conflict with a collaborator could lead to litigation, reduce our ability to enter into future collaboration agreements and negatively impact our relationships with one or more existing collaborators. If any of these events occur, especially if they occur in our collaborations with GSK, Merck or Novartis, or if we fail to maintain our agreements with our collaborators, we may not be able to commercialize our existing and potential products or grow our business or generate sufficient revenues to support our operations, we may not receive contemplated milestone payments and royalties under the collaboration, and we may be involved in litigation. Our collaboration opportunities could be harmed and our financial condition and results of operations could be negatively affected if:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we do not achieve our research and development objectives under our collaboration agreements in a timely manner or at all;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">20</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we develop products and processes or enter into additional collaborations that conflict with the business objectives of our other collaborators;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators and/or our contract manufacturers do not receive the required regulatory and other approvals necessary for the commercialization of the applicable product;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we disagree with our collaborators as to rights to intellectual property that are developed during the collaboration, or their research programs or commercialization activities;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we are unable to manage multiple simultaneous collaborations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators or licensees are unable or unwilling to implement or use the technology or products that we provide or license to them;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators become competitors of ours or enter into agreements with our competitors;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators become unable or less willing to expend their resources on research and development or commercialization efforts due to general market conditions, their financial condition or other circumstances beyond our control; or </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators experience business difficulties, which could eliminate or impair their ability to effectively perform under our agreements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Takeda recently confirmed that it will end research, discovery and preclinical work in certain rare disease areas that may overlap with the programs on which we collaborate under the Strategic Collaboration and License Agreement (the &#8220;Takeda Agreement&#8221;) we entered into with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda, in March 2020. Takeda announced in April 2023 the discontinuance of these development programs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Even after collaboration relationships expire or terminate, some elements of the collaboration may survive. For instance, certain rights, licenses and obligations of each party with respect to intellectual property and program materials may survive the expiration or termination of the collaboration. Disagreements or conflicts between and among the parties could develop even though the collaboration has ended. These disagreements or conflicts could result in expensive arbitration or litigation, which may not be resolved in our favor.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finally, our business could be negatively affected if any of our collaborators or suppliers undergoes a change of control or were to otherwise assign the rights or obligations under any of our agreements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we are unable to develop and commercialize new products for the pharmaceutical, biotherapeutics, diagnostics and life science tools markets, our business and prospects will be harmed.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We plan to launch new products for the pharmaceutical, biotherapeutics, diagnostics and other life science tools markets such as our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform. These efforts are subject to numerous risks, including the following: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">customers in these markets may be reluctant to adopt new manufacturing processes that use our enzymes; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may be unable to successfully develop the enzymes or manufacturing processes for our products in a timely and cost-effective manner, if at all; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face difficulties in transferring the developed technologies to our customers and the contract manufacturers that we may use for commercial scale production of intermediates and enzymes in these markets; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the biotherapeutics products that use our tools may not receive regulatory approval or be commercially viable;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the contract manufacturers that we may use may be unable to scale their manufacturing operations to meet the demand for these products and we may be unable to secure additional manufacturing capacity; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">customers may not be willing to purchase these products for these markets from us on favorable terms, if at all; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face product liability litigation, unexpected safety or efficacy concerns and product recalls or withdrawals; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers&#8217; products may experience adverse events or face competition from new products, which would reduce demand for our products; </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face pressure from existing or new competitive products; and </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face pricing pressures from existing or new competitors, some of which may benefit from government subsidies or other incentives.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have invested significant resources to enable fully enzymatic nucleic acid synthesis, which is based on novel ideas and technologies that are largely unproven.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Our ECO Synthesis&#8482; manufacturing platform is currently in development to enable the commercial-scale manufacture of RNAi therapeutics through an enzymatic route. While we believe fully enzymatic nucleic acid synthesis will offer certain improvements over phosphoramidite chemistry, including with respect to required infrastructure investments, batch size limitations and waste disposal challenges, the enzymatic route is novel and has not yet been commercialized. As such, we may be faced with unforeseen results, delays and setbacks, in addition to the other foreseeable risks and uncertainties associated with the ongoing development of the ECO Synthesis&#8482; manufacturing platform and other products. </span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Other challenges with a new technology such as our ECO Synthesis&#8482; manufacturing platform include having an unknown and unproven regulatory path, uncertainly around the value that we can realize from the technology, uncertainty around the timeline for adoption of the technology by customers, and uncertainly around our ability to manufacture and partner with customers on manufacturing and utilizing the technology.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">There can be no assurance that these events we may experience in the future related to enzymatic synthesis will not cause significant delays or unanticipated costs, or that such development problems can be solved. Any delay or difficulties in developing and commercializing our ECO Synthesis&#8482; manufacturing platform or any of our other current or future products could adversely affect our business and operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Competitors and potential competitors who have greater resources and experience than we do may develop products and technologies that make ours obsolete or may use their greater resources to gain market share at our expense.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The biocatalysis and performance enzyme industries and each of our target markets are characterized by rapid technological change. Our future success will depend on our ability to maintain a competitive position with respect to technological advances. In addition, as we enter new markets, we will face new competition and will need to adapt to competitive factors that may be different from those we face today. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are aware that other companies, including DSM, BASF, Bayer and Novozymes have alternative methods for obtaining and generating genetic diversity or use mutagenesis techniques to produce genetic diversity. Academic institutions such as the California Institute of Technology, the Max Planck Institute and the Austrian Centre of Industrial Biotechnology are also working in this field. Technological development by others may result in our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, as well as products developed by our customers using our biocatalysts, becoming obsolete. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our primary competitors in the performance enzymes for the pharmaceutical products</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">markets include (i) </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">companies marketing either conventional, non-enzymatic processes or biocatalytic enzymes; (ii) manufacturers of pharmaceutical intermediates and APIs; and (iii) existing in-house technologies (both biocatalysts and conventional catalysts) within our client and potential client companies. The principal methods of competition and competitive differentiation in this market are price, product quality and performance, including manufacturing yield, safety and environmental benefits, and speed of delivery of product. Pharmaceutical manufacturers that use biocatalytic processes can face increased competition from manufacturers that use more conventional processes and/or manufacturers that are based in regions (such as India and China) with lower regulatory, safety and environmental costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for the manufacture and supply of APIs and intermediates is large with many established companies. These companies include many of our large innovator and generic pharmaceutical customers, such as Merck, GSK, Novartis, Pfizer, Bristol-Myers, Kyorin, Urovant, and Teva which have significant internal research and development efforts directed at developing processes to manufacture APIs and intermediates. The processes used by these companies include classical conventional organic chemistry reactions, chemo catalytic reactions, biocatalytic reactions or combinations thereof. Our biocatalytic based manufacturing processes must compete with these internally developed routes. Additionally, we also face competition from companies developing and marketing conventional catalysts such as Solvias Inc., BASF and Takasago International Corporation.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">22</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for supplying enzymes for use in pharmaceutical manufacturing is quite fragmented. There is competition from large industrial enzyme companies, such as Novozymes and DuPont, as well as subsidiaries of larger contract research/contract manufacturing organizations, such as DSM, Cambrex Corporation, Lonza, WuXi STA and Almac Group Ltd. Some fermentation pathway design companies, like Ginkgo Bioworks (who recently acquired Zymergen), whose traditional focus has been to design microorganisms that express small molecule chemicals, could extend into designing organisms that express enzymes. There is also competition in the enzyme customization and optimization area from several smaller companies, such as BRAIN AG, Arzeda, c-LEcta GmbH and Evocatal GmbH.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face competitive challenges related to our ECO Synthesis&#8482; manufacturing platform. Phosphoramidite chemistry is the current and long-established industry standard for the manufacture of RNA therapeutics. Primary competitors in this space include CDMOs, such as Agilent Technologies, which has made significant capital investment to expand their RNA manufacturing capabilities using phosphoramidite chemistry. In addition, CDMOs and large pharmaceutical companies are seeking to make incremental improvements to phosphoramidite chemistry, including the development of ligation-based approaches, liquid-phase synthesis, and solvent recycling. There are also multiple early-stage competitors who are pursuing fully enzymatic approaches to the manufacture of RNA, including EnPlusOne, a private startup company, and a UK-based consortium led by CPI and consisting of multiple academic and research organizations, including The University of Manchester and large pharmaceutical companies, including AstraZeneca plc and Novartis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ability to compete successfully in any of these markets will depend on our ability to develop proprietary products that reach the market in a timely manner and are technologically superior to and/or are less expensive than other products on the market. Many of our competitors have substantially greater production, financial, research and development, personnel and marketing resources than we do. They also started developing products earlier than we did, which may allow them to establish blocking intellectual property positions or bring products to market before we can. In addition, certain of our competitors may also benefit from local government subsidies and other incentives that are not available to us. As a result, our competitors may be able to develop competing and/or superior technologies and processes and compete more aggressively and sustain that competition over a longer period of time than we could. Our technologies and products may be rendered obsolete or uneconomical by technological advances or entirely different approaches developed by one or more of our competitors. We cannot be certain that any products we develop in the future will compare favorably to products offered by our competitors or that our existing or future products will compare favorably to any new products that are developed by our competitors. As more companies develop new intellectual property in our markets, the possibility of a competitor acquiring patent or other rights that may limit our products or potential products increases, and could additionally lead to litigation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our limited resources relative to many of our competitors may cause us to fail to anticipate or respond adequately to new developments and other competitive pressures. This failure could reduce our competitiveness and market share, adversely affect our results of operations and financial position, and prevent us from obtaining or maintaining profitability. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenues in future years from our sales of CDX-616 to Pfizer are subject to a number of factors which are outside of our control and may not materialize.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Starting the first and second quarters of 2021, we began to receive purchase orders from Pfizer for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir. Pfizer markets, sells and distributes nirmatrelvir, in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID&#8482; (nirmatrelvir tablets; ritonavir tablets) product, which received FDA approval in May 2023 for the treatment of mild-to-moderate COVID-19 in adults who are at high risk for progression to severe COVID-19, including hospitalization or death.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Potential revenues in future years from our sales of CDX-616 to Pfizer and other potential customers (including sublicensees of Pfizer technology from The Medicines Patent Pool (the &#8220;MPP&#8221;)) are subject to a number of factors which are outside of our control, including, without limitation, the following, all of which could reduce or eliminate our sales of CDX-616, and therefore materially and adversely affect our business, results of operations and financial condition:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Pfizer has no future binding commitment to purchase any particular quantity or quantities of CDX-616 from us, and we are dependent upon Pfizer continuing to place orders with us (whether on a spot basis or under a long-term agreement, when and if executed) for their requirements, if any, for CDX-616;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">to our knowledge, sublicensees of Pfizer technology from the MPP have no obligation to purchase CDX-616 from us under their sublicenses with the MPP;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">future vaccine development and usage and the development and usage of other new therapies for the treatment or elimination of COVID-19 may eliminate or reduce demand for PAXLOVID&#8482;;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">new variants of COVID-19 may emerge which PAXLOVID&#8482; is not effective in treating;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Pfizer could reformulate or make changes in the manufacturing process for nirmatrelvir which would eliminate or reduce demand for the use of CDX-616 in its manufacture;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">sublicensees of Pfizer technology for the manufacture, sale and distribution of PAXLOVID&#8482; from the MPP may not utilize CDX-616 in the manufacture of nirmatrelvir;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">national and regional governmental authorities (including those of the United States government) may mandate that raw materials and intermediates used in the manufacture of PAXLOVID&#8482; to be marketed, sold and distributed within the borders of that country be domestically produced, which could eliminate or reduce demand for the use of CDX-616 in such country; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may be unable (because of lack of available manufacturing capacity at our contract manufacturers, supply chain disruptions or an inability to obtain applicable regulatory approvals) to manufacture the quantities of CDX-616 that Pfizer may desire to purchase from us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have investments in non-marketable securities, which may subject us to significant impairment charges.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have investments in illiquid or non-marketable equity securities acquired in private transactions. As of December&#160;31, 2023, 7.1% of our consolidated assets consisted of investment securities, which are illiquid investments. Investments in non-marketable, securities are inherently risky and difficult to value. We account for our non-marketable equity securities under the measurement alternative. Under the measurement alternative, the carrying value of our non-marketable equity investments is adjusted to fair value for observable transactions for identical or similar investments of the same issuer or impairment. We evaluate our investment in non-marketable securities when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in estimated fair value of the equity security compared to its carrying value. The impairment analysis requires significant judgment to identify events or circumstances that would likely have a material adverse effect on the fair value of the investment. Because over 5% of our total assets consisted of non-marketable investment securities, any future impairment charges from the write down in value of these securities could have a material adverse effect on our financial condition or results of operations.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Ethical, legal and social concerns about genetically engineered products and processes could limit or prevent the use of our technology, products and processes and limit our revenues.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Some of our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services, such as our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">are genetically engineered or involve the use of genetically engineered products or genetic engineering technologies. If we and/or our collaborators are not able to overcome the ethical, legal, and social concerns relating to genetic engineering, our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">may not be accepted. Any of the risks discussed below could result in increased expenses, delays, or other impediments to our programs or the public acceptance and commercialization of products and processes dependent on our technologies or inventions. Our ability to develop and commercialize one or more of our technologies, products, or processes could be limited by the following factors: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">public attitudes about the safety and environmental hazards of, and ethical concerns over, genetic research and genetically engineered products and processes, which could influence public acceptance of our technologies, products and processes; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">public attitudes regarding, and potential changes to laws governing ownership of, genetic material, which could harm our intellectual property rights with respect to our genetic material and/or discourage collaborators from supporting, developing, or commercializing our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">; and </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">governmental reaction to negative publicity concerning genetically modified organisms, which could result in greater government regulation of genetic research and derivative products. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The subject of genetically modified organisms has received negative publicity, which has aroused public debate. This adverse publicity could lead to greater regulation and trade restrictions on imports of genetically altered products. The biocatalysts that we develop have significantly enhanced characteristics compared to those found in naturally occurring enzymes or microbes. While we produce our biocatalysts only for use in a controlled industrial environment, the release of such biocatalysts into uncontrolled environments could have unintended consequences. Any adverse effect resulting from such a release could have a material adverse effect on our business and financial condition, damage our reputation, and/or expose us to liability for any resulting harm. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">24</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have recently enhanced our strategic focus to concentrate on certain programs and business lines. As a result of this refined focus, we may fail to capitalize on other opportunities that may be more profitable or for which there is a greater likelihood of success.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Because we have limited financial and managerial resources, we have recently focused our efforts on developing certain programs and business lines. As a result, we may forego or delay pursuit of business opportunities that later prove to have greater commercial potential. Further our resource allocation decisions may cause us to fail to capitalize on viable commercial products or profitable market opportunities. In addition, our spending on current and future research and development programs, such as ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform that is in development, may not yield any commercially viable products. If we do not accurately evaluate the commercial potential or target market for a particular program or business line, our business and results of operations could be harmed.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Given our recent change in strategic direction, we may receive limited revenue or no future value from certain of our existing license agreements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we have historically invested significant time and financial resources in the development of biotherapeutics assets, including candidates for the treatment of Fabry disease and Pompe disease, which are included in the Takeda Agreement, in July 2023, we announced we are terminating investment in our biotherapeutics business and in other programs. As a result, we are renegotiating some of these, along with other license agreements for product candidates in our biotherapeutics, food and feed, and non-core life science assets. For example, we entered into the Acquisition Agreement with Nestl&#233; under which they acquired rights to our co-developed lipase enzyme CDX-7108 and we received an upfront payment and the right to downstream milestones and royalties, terminating our prior SCA and development agreement with Nestl&#233;. While we are working to amend or terminate some of our agreements and enter into new agreements in such a way that we may be able to receive future revenue or other benefits, we may be unsuccessful in doing so. As a result, it remains uncertain as to whether we will receive any value or benefit from these license agreements going forward. Further, renegotiating these agreements may be costly and could divert management attention, which could have an adverse impact on our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We use hazardous materials in our business and we must comply with environmental laws and regulations. Any claims relating to improper handling, storage or disposal of these materials or noncompliance of applicable laws and regulations could be time consuming and costly and could adversely affect our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our research and development and commercial processes involve the use of hazardous materials, including chemical, radioactive and biological materials. Our operations also produce hazardous waste. We cannot eliminate entirely the risk of accidental contamination or discharge and any resultant injury from these materials. Federal, state, local and foreign laws and regulations govern the use, manufacture, storage, handling and disposal of, and human exposure to, these materials. We may face liability for any injury or contamination that results from our use or the use by third parties of these materials, and our liability may exceed our total assets. Although we believe that our activities comply in all material respects with environmental laws, there can be no assurance that violations of environmental, health and safety laws will not occur in the future as a result of human error, accident, equipment failure or other causes. Compliance with applicable environmental laws and regulations may be expensive, and the failure to comply with past, present or future laws could result in the imposition of fines, third party property damage, product liability and personal injury claims, investigation and remediation costs, the suspension of production or a cessation of operations, and our liability may exceed our total assets. Liability under environmental laws can be joint and several and without regard to comparative fault. Environmental laws could become more stringent over time imposing greater compliance costs and increasing risks and penalties associated with violations, which could impair our research, development or production efforts and harm our business. In addition, we may be required to indemnify some of our customers or suppliers for losses related to our failure to comply with environmental laws, which could expose us to significant liabilities. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our ability to use our net operating loss carryforwards to offset future taxable income may be subject to certain limitations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In general, under Section 382 of the Internal Revenue Code of 1986, as amended (the &#8220;Code&#8221;), a corporation that undergoes an &#8220;ownership change&#8221; is subject to limitations on its ability to utilize its pre-change net operating loss carryforwards (&#8220;NOLs&#8221;), to offset future taxable income. If the Internal Revenue Service challenges our analysis that our existing NOLs are not subject to limitations arising from previous ownership changes, our ability to utilize NOLs could be limited by Section 382 of the Code. Future changes in our stock ownership, some of which are outside of our control, could result in an ownership change under Section 382 of the Code. Furthermore, our ability to utilize NOLs of companies that we may acquire in the future may be subject to limitations. For these reasons, we may not be able to utilize a material portion of the NOLs reflected in our financial statements, even if we attain profitability.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">As a public reporting company, we are subject to rules and regulations established from time to time by the SEC and Nasdaq regarding our internal controls over financial reporting. We may not complete needed improvements to our internal controls over financial reporting in a timely manner, or these internal controls may not be determined to be effective, which may adversely affect investor confidence in our company and, as a result, the value of our common stock and your investment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are subject to the rules and regulations established from time to time by the SEC and Nasdaq. These rules regulations require, among other things, that we establish and periodically evaluate procedures with respect to our internal controls over financial reporting. As part of these evaluations, material weaknesses in our internal controls over financial reporting may be identified. A material weakness is a deficiency, or a combination of deficiencies, in internal controls over financial reporting such that there is a reasonable possibility that a material misstatement of a company&#8217;s annual or interim consolidated financial statements will not be prevented or detected on a timely basis. While we were able to remediate previously identified material weaknesses in our internal controls over financial reporting, there can be no guarantee we will not identify similar or other material weaknesses in the future and if such material weaknesses are identified, there can be no guarantee we would be able to remediate such material weaknesses. Any material weaknesses in our internal controls may adversely affect our ability to record, process, summarize and accurately report timely financial information and, as a result, our consolidated financial statements may contain material misstatements or omissions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reporting obligations as a public company place a considerable strain on our financial and management systems, processes and controls, as well as on our personnel. In addition, as a public company we are required to document and test our internal controls over financial reporting pursuant to Section 404 of the Sarbanes-Oxley Act so that our management can certify as to the effectiveness of our internal controls over financial reporting. Likewise, our independent registered public accounting firm is required to provide an attestation report on the effectiveness of our internal controls over financial reporting in our Annual Reports on Form 10-K. If our management is unable to certify the effectiveness of our internal controls or if our independent registered public accounting firm cannot deliver a report attesting to the effectiveness of our internal controls over financial reporting, or if we identify or fail to remediate material weaknesses in our internal controls, we could be subject to regulatory scrutiny and a loss of public confidence, which could seriously harm our reputation and the market price of our common stock. In addition, if we do not maintain adequate financial and management personnel, processes and controls, we may not be able to manage our business effectively or accurately report our financial performance on a timely basis, which could cause a decline in our common stock price and may seriously harm our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may need additional capital in the future in order to expand our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our future capital requirements may be substantial, particularly as we continue to develop our business. Although we believe that, based on our current level of operations, our existing cash, cash equivalents and equity securities will provide adequate funds for ongoing operations, planned capital expenditures and working capital requirements for at least the next 12 months, we may need additional capital if our current plans and assumptions change. Our need for additional capital will depend on many factors, including the financial success of our performance enzyme business, our spending to develop and commercialize new and existing enzyme products and the amount of collaboration funding we may receive to help cover the cost of such expenditures, the effect of any acquisitions of other businesses, technologies or facilities that we may make or develop in the future, our spending on new market opportunities, including the ongoing commercialization of our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, and the filing, prosecution, enforcement and defense of patent claims. If our capital resources are insufficient to meet our capital requirements, and we are unable to enter into or maintain collaborations with partners that are able or willing to fund our development efforts or commercialize any enzyme products that we develop or enable, we will have to raise additional funds to continue the development of our technology and products and complete the commercialization of products, if any, resulting from our technologies. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, we may choose to raise additional capital due to market conditions or strategic considerations, such as funding the ongoing commercialization of our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, even if we believe we have sufficient funds for our current or future operating plans. We may seek to obtain such additional capital through equity offerings, including pursuant to the EDA, debt financings, credit facilities and/or strategic collaborations. If future financings involve the issuance of equity securities, our existing stockholders would suffer dilution. In addition, under our Loan Agreement, we are subject to restrictive covenants that limit our ability to conduct our business and could be subject to additional covenants to the extent we seek other debt financing in the future. Strategic collaborations may also place restrictions on our business. We may not be able to raise sufficient additional funds on terms that are favorable to us, if at all. If we fail to raise sufficient funds and fail to generate sufficient revenues to achieve planned gross margins and to control operating costs, our ability to fund our operations, take advantage of strategic opportunities, develop products or technologies, or otherwise respond to competitive pressures could be significantly limited. If this happens, we may be forced to delay or terminate research or development programs or the commercialization of products resulting from our technologies, curtail or cease operations or obtain funds through collaborative and licensing arrangements that may require us to relinquish commercial rights, or grant licenses on terms that are not favorable to us. If adequate funds are not available, we will not be able to successfully execute our business plan or continue our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Covenants and other provisions in our Loan Agreement with Innovatus restrict our business and operations in many ways, and if we do not effectively manage our covenants, our financial conditions and results of operations could be adversely affected. In addition, our operations may not provide sufficient cash to meet the repayment obligations of our debt incurred under the Loan Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the Loan Agreement, Innovatus has been granted a security interest in substantially all of our assets. If an event of default occurs under the Loan Agreement, Innovatus may foreclose on its security interest and liquidate some or all of these assets, which would harm our business, financial condition and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the event of a default in connection with our bankruptcy, insolvency, liquidation, or reorganization, Innovatus would have a prior right to substantially all of our assets to the exclusion of our general unsecured creditors. Only after satisfying the claims of Innovatus and any unsecured creditors would any amount be available for our equity holders.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The pledge of these assets and other restrictions imposed in the Loan Agreement may limit our flexibility in raising capital for other purposes. Because substantially all of our assets are pledged to secure the Loan Agreement obligations, our ability to incur additional indebtedness or to sell or dispose of assets to raise capital may be impaired, which could have an adverse effect on our financial flexibility.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In addition, if we are unable to comply with certain financial and operating restrictions in the Loan Agreement, we may be limited in our business activities and access to credit or may default under the Loan Agreement. Provisions in the Loan Agreement impose restrictions or require prior approval on our ability, and the ability of certain of our subsidiaries to, among other things:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">sell, lease or transfer certain parts of our business or property, including equity interests of our subsidiaries;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">engage in new lines of business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">acquire new companies and merge or consolidate;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">incur additional debt or guarantee the indebtedness of others or our subsidiaries;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">create liens or encumbrances;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">pay cash dividends and make distributions or redeem or repurchase our capital stock;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">make certain investments; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">enter into transactions with affiliates; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">terminate or, in certain cases, amend our material agreements.</span></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Loan Agreement also contains other customary covenants. We may not be able to comply with these covenants in the future. Our failure to comply with these covenants may result in the declaration of an event of default, which, if not cured or waived, may result in the acceleration of the maturity of indebtedness outstanding under the Loan Agreement and would require us to pay all amounts outstanding. If the maturity of our indebtedness is accelerated, we may not have sufficient funds then available for repayment or we may not have the ability to borrow or obtain sufficient funds to replace the accelerated indebtedness on terms acceptable to us or at all. Our failure to repay our obligations under the Loan Agreement would result in Innovatus foreclosing on all or a portion of our assets, which could force us to curtail or cease our operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we engage in any acquisitions, we will incur a variety of costs and may potentially face numerous risks that could adversely affect our business and operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have made acquisitions in the past, and if appropriate opportunities become available, we expect to acquire additional businesses, assets, technologies, or products to enhance our business in the future. For example, in October 2010, we acquired substantially all of the patents and other intellectual property rights associated with Maxygen&#8217;s directed evolution technology. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with any future acquisitions, we could: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue additional equity securities, which would dilute our current stockholders; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">incur substantial debt to fund the acquisitions; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">use our cash to fund the acquisitions; or </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">assume significant liabilities including litigation risk. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisitions involve numerous risks, including problems integrating the purchased operations, technologies or products, unanticipated costs and other liabilities, diversion of management&#8217;s attention from our core businesses, adverse effects on existing business relationships with current and/or prospective collaborators, customers and/or suppliers, risks associated with entering markets in which we have no or limited prior experience and potential loss of key employees. We do not have extensive experience in managing the integration process and we may not be able to successfully integrate any businesses, assets, products, technologies or personnel that we might acquire in the future without a significant expenditure of operating, financial and management resources, if at all. The integration process could divert management&#8217;s time from focusing on operating our business, result in a decline in employee morale and cause retention issues to arise from changes in compensation, reporting relationships, future prospects or the direction of the business. Acquisitions may also require us to record goodwill and non-amortizable intangible assets that will be subject to impairment testing on a regular basis and potential periodic impairment charges, incur amortization expenses related to certain intangible assets, and incur large and immediate write offs and restructuring and other related expenses, all of which could harm our operating results and financial condition. In addition, we may acquire companies that have insufficient internal financial controls, which could impair our ability to integrate the acquired company and adversely impact our financial reporting. If we fail in our integration efforts with respect to any of our acquisitions and are unable to efficiently operate as a combined organization, our business and financial condition may be adversely affected. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">COVID-19 has adversely affected, and any resurgence of COVID-19 pandemic or another global health epidemic may in the future, directly or indirectly, adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">COVID-19 has had a significant impact globally, prompting governments and businesses to take unprecedented measures in response. In the United States, COVID-19 has and may continue in the future to, directly or indirectly, adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the future, our business could be materially adversely affected, directly or indirectly, by the widespread outbreak of contagious disease, such as COVID-19 or any resurgence thereof. If national, state and local governments in affected regions implement safety precautions, similar to those implemented in response to COVID-19, including quarantines, border closures, increased border controls, travel restrictions, governmental orders and shutdowns, business closures, cancellations of public gatherings and other measures, such precautions could, and for COVID-19 did, disrupt normal business operations both in and outside of affected areas and could have significant negative impacts on businesses and financial markets worldwide.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">28</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The impact of COVID-19 has had, and any resurgence of the COVID-19 pandemic or another pandemic or public health crisis, could in the future have, significant repercussions across regional, national and global economies and financial markets, and could trigger a period of regional, national and global economic slowdown or regional, national or global recessions. The outbreak of COVID-19 in many countries adversely impacted regional, national and global economic activity and has continued to contribute to significant volatility and negative pressure in financial markets. As a result, we may experience difficulty accessing debt and equity capital on attractive terms, or at all, due to the severe disruption and instability in the global financial markets. In addition, our customers may terminate or amend their agreements for the purchase of our technology, products and services due to bankruptcy, lack of liquidity, lack of funding, operational failures or other reasons.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Government Regulation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our ongoing efforts to deploy our technology in the life science tools markets may fail.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have used our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> directed evolution technology platform to develop new products for customers using NGS and PCR/qPCR for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">in vitro</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> molecular diagnostic applications. While we have entered into license agreements for products in this market, we do not know if we can successfully compete in this new market. This new market is well established and consists of numerous large, well-funded entrenched market participants who have long and established track records and customer relationships. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have also developed a newly engineered ligase designed to address sequencing challenges. These enzymes, and any additional products that we may develop in the future for this market, may not succeed in displacing current products. If we succeed in commercializing new products for this market, we may not generate significant revenues and cash flows from these activities. The failure to successfully deploy products on a timely basis in this space may limit our growth and have a material adverse effect on our financial condition, operating results and business prospects. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Even if our customers, future customers or collaborators obtain regulatory approval for any products utilizing our enzymes, such products will remain subject to ongoing regulatory requirements, which may result in significant additional expense.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any products that receives FDA approval will remain subject to ongoing regulatory requirements for manufacturing, labeling, packaging, distribution, storage, advertising, promotion, sampling, record-keeping and submission of safety and other post-market information, among other things. Any regulatory approvals received for such products may also be subject to limitations on the approved indicated uses for which they may be marketed or to the conditions of approval, or contain requirements for potentially costly post-marketing testing and surveillance studies. For example, the holder of an approved NDA or BLA in the United States is obligated to monitor and report adverse events and any failure of a product to meet the specifications in the NDA or BLA. In the United States, the holder of an approved NDA or BLA must also submit new or supplemental applications and obtain FDA approval for certain changes to the approved product, product labeling or manufacturing process. Similar provisions apply in the European Union (the &#8220;EU&#8221;). Advertising and promotional materials must comply with FDA rules and are subject to FDA review, in addition to other potentially applicable federal and state laws. Similarly, in the EU any promotion of medicinal products is highly regulated and, depending on the specific jurisdiction involved, may require prior vetting by the competent national regulatory authority. In addition, product manufacturers and their facilities are subject to payment of user fees and continual review and periodic inspections by the FDA and other regulatory authorities for compliance with cGMP requirements and adherence to commitments made in the NDA, BLA or foreign marketing application. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If our customers, future customers or our collaborators or a regulatory agency discovers previously unknown problems with a product such as adverse events of unanticipated severity or frequency or problems with the facility where the product is manufactured or disagrees with the promotion, marketing or labeling of that product, a regulatory agency may impose restrictions relative to that product, the manufacturing facility or our customers or collaborators, including requiring recall or withdrawal of the product from the market or suspension of manufacturing.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, if our customers or collaborators fail to comply with applicable regulatory requirements, the FDA and other regulatory authorities may:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue an untitled letter or a warning letter asserting a violation of the law;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">seek an injunction, impose civil or criminal penalties, and impose monetary fines, restitution or disgorgement of profits or revenues;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">suspend or withdraw regulatory approval;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">29</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue safety alerts, Dear Healthcare Provider letters, press releases or other communications containing warnings or other safety information about the product;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">mandate modification of promotional materials and labeling and issuance of corrective information;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue consent decrees or corporate integrity agreements, or debar or exclude from federal healthcare programs;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">suspend or terminate any ongoing clinical trials or implement requirements to conduct post-marketing studies or clinical trials;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse to approve a pending NDA, BLA or comparable foreign marketing application (or any supplements thereto);</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">restrict the labeling, marketing, distribution, use or manufacturing of products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">seize or detain products or otherwise require the withdrawal or recall of products from the market;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse to approve pending applications or supplements to approved applications;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse to permit the import or export of products; or</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse government contracts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any government investigation of alleged violations of law could require us to expend significant time and resources in response and could generate negative publicity. The occurrence of any event or penalty described above may also inhibit our customers or collaborators&#8217; ability to commercialize products and our ability to generate revenues.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, the FDA&#8217;s policies, and policies of foreign regulatory agencies, may change, and additional regulations may be enacted that could prevent, limit or delay regulatory approval of product candidates. We cannot predict the likelihood, nature or extent of government regulation that may arise from future legislation or administrative or executive action, either in the United States or abroad. If we are slow or unable to adapt to changes in existing requirements or the adoption of new requirements or policies, or if we are not able to maintain regulatory compliance, we may be subject to enforcement action and we may not achieve or sustain profitability.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we or our customers fail to comply with certain healthcare laws, including fraud and abuse laws, we could face substantial penalties and our business, results of operations, financial condition and prospects could be adversely affected. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The healthcare industry is highly regulated. We, and our customers, are subject to various local, state, federal, national, and international laws and regulations, which include laws and regulations promulgated by the FDA, HHS, state boards of pharmacy, state health departments, and similar regulatory bodies in other countries. Additionally, our business operations and future arrangements with investigators, healthcare professionals, and consultants, among others, may expose us and our customers to broadly applicable fraud and abuse and other healthcare laws and regulations, including, without limitation, the federal Anti-Kickback Statute, the federal civil False Claims Act, the federal Civil Monetary Penalties Law, and analogous state laws. These laws may constrain the business or financial arrangements and relationships through which we will conduct our operations. Because of the breadth of these laws and narrowness of available statutory and regulatory exceptions, it is possible that some of our business activities could be regulated by or subject to challenge under one or more of such laws. We cannot ensure that our compliance controls, policies, and procedures will in every instance protect us from acts of our employees, agents, contractors, or collaborators that turn out to violate any of the laws described above. If we or our operations are found to be in violation of any of the laws described above or any other governmental regulations that apply to us, we may be subject to penalties, including civil and criminal penalties, damages, fines, imprisonment and the curtailment or restructuring of our operations, any of which could materially adversely affect our ability to operate our business and our financial results. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Ongoing healthcare legislative and regulatory reform measures may have a material adverse effect on our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the United States, there have been, and we expect there will continue to be, a number of legislative initiatives to contain healthcare costs. Some of these initiatives, such as ongoing healthcare reform, including with respect to reforming drug pricing, adverse changes in governmental or private funding of healthcare products and services, legislation or regulations governing patient access to care, and the delivery, coverage, pricing, and reimbursement of pharmaceuticals and healthcare services may cause our customers to change the amount of our offerings that they purchase from us or the price they are willing to pay us for these offerings. If cost-containment efforts or other healthcare reform measures limit our customers&#8217; profitability, they may decrease research and development spending, which could decrease the demand for our products and services and materially adversely affect our growth prospects. Any of these factors could harm our customers&#8217; businesses, which, in turn, could materially adversely affect our business, financial condition, results of operations, cash flows, and prospects.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We cannot predict the likelihood, nature, or extent of other health reform initiatives that may arise from future legislative, administrative, or other action. Any substantial revision of applicable healthcare legislation could have a material adverse effect on the demand for our customers&#8217; products, which in turn could have a negative impact on our results of operations, financial condition, or business. Changes in the healthcare industry&#8217;s pricing, selling, inventory, distribution, or supply policies or practices, or in public or government sentiment for the industry as a whole, could also significantly reduce our revenue and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Compliance with European Union chemical regulations could be costly and adversely affect our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Some of our products are subject to the EU regulatory regime known as The Registration, Evaluation and Authorization of Chemicals (&#8220;REACH&#8221;). REACH mandates that certain chemicals manufactured in, or imported into, the EU be registered and evaluated for their potential effects on human health and the environment. Under REACH, we and our contract manufacturers located in the EU are required to register certain of our products based on the quantity of such product imported into or manufactured in the EU and on the product&#8217;s intended end-use. The registration, evaluation and authorization process under REACH can be costly and time consuming. Problems or delays in the registration, evaluation or authorization process under REACH could delay or prevent the manufacture of some of our products in, or the importation of some of our products into, the EU, which could adversely affect our business and results of operations. In addition, if we or our contract manufacturers fail to comply with REACH, we may be subject to penalties or other enforcement actions, which could have a material adverse effect on our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Intellectual Property and Information Technology</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our efforts to prosecute, maintain, protect and/or defend our intellectual property rights may not be successful.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We will continue to file and prosecute patent applications and maintain trade secrets in an ongoing effort to protect our intellectual property rights. It is possible that our current patents, or patents which we may later acquire, may be successfully challenged or invalidated, in whole or in part. It is also possible that we may not obtain issued patents from our pending patent applications. We sometimes permit certain patents or patent applications to lapse or go abandoned under appropriate circumstances. Due to uncertainties inherent in prosecuting patent applications, sometimes patent applications are rejected, and we subsequently abandon them. It is also possible that we may develop proprietary technology, products or services in the future that are not patentable or that the patents of others will limit or altogether preclude our ability to conduct business. In addition, any patent issued to us or to our licensor may provide us with little or no competitive advantage, in which case we may abandon such patent, license it to another entity or terminate the license agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our means of protecting our proprietary rights may not be adequate and our competitors may independently develop technologies, products or services that are identical or similar to ours or that compete with ours. Patent, trademark, copyright and trade secret laws afford only limited protection for our technology, products and services . The laws of many countries do not protect our proprietary rights to as great of an extent as do the laws of the United States. Despite our efforts to protect our proprietary rights, unauthorized parties have in the past attempted, and may in the future attempt, to operate under the aspects of our intellectual property rights, or proprietary technology, products or services or products, or to obtain and use information that we regard as proprietary. Third parties may also design around our proprietary rights, which may render our protected technology, services and products less valuable, if the design around is favorably received in the marketplace. In addition, if any of our technology, products and services are covered by third-party patents or other intellectual property rights, we could be subject to various legal actions. We cannot assure that our technology products and/or services do not infringe, violate or misappropriate any patents or other intellectual property rights owned or controlled by others or that they will not in the future. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Litigation may be necessary to enforce our intellectual property rights, to protect our trade secrets, to determine the validity and scope of the proprietary rights of others, or to defend against claims of infringement, invalidity, misappropriation, or other claims. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any such litigation could result in substantial costs and diversion of our resources. Moreover, any settlement of or adverse judgment resulting from litigation relating to intellectual property rights could require us to obtain a license to continue to make, use, import, sell or offer for sale the technology, products or services that is the subject of the claim, or otherwise restrict or prohibit our use of the technology, products or services.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our ability to compete may decline if we do not adequately prosecute, maintain, protect and/or defend our proprietary technology, products or services or our intellectual property rights. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our success depends in part on our ability to obtain patents and maintain adequate protection of our intellectual property rights directed to our technology, products and services in the United States and other countries. We have adopted a strategy of seeking patent protection in the United States and in foreign countries with respect to certain of the technology used in or relating to our products, services, and processes. As such, as of December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we owned or controlled approximately 1,990 active issued patents and pending patent applications in the United States and in various foreign jurisdictions. As of December&#160;31, 2023, our patents and patent applications, if issued, have terms that expire between 2024 and approximately 2044. We</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> also have license rights to a number of issued patents and pending patent applications in the United States and in various foreign jurisdictions. Our owned and licensed patents and patent applications include those directed to our enabling technology and to the methods and products that support our business in the pharmaceutical manufacturing, life sciences, oligonucleotide synthesis, and other markets. We intend to continue to apply for patents relating to our technology, methods, services and products as we deem appropriate. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Issuance of claims in patent applications and enforceability of such claims once issued involve complex legal and factual questions and, therefore, we cannot predict with any certainty whether any of our issued patents will survive invalidity claims asserted by third parties. Issued patents and patents issuing from pending applications may be challenged, invalidated, circumvented, rendered unenforceable or substantially narrowed in scope. In addition, the inventorship and ownership of the patents and patent applications may be challenged by others. Moreover, the United States Leahy-Smith America Invents Act (&#8220;AIA&#8221;), enacted in September 2011, brought significant changes to the United States patent system, which include a change to a &#8220;first to file&#8221; system from a &#8220;first to invent&#8221; system and changes to the procedures for challenging issued patents and disputing patent applications during the examination process, among other things. While interference proceedings are possible for patent claims filed prior to March 16, 2013, many of our filings will be subject to the post- and pre-grant proceedings set forth in the AIA, including citation of prior art and written statements by third parties, third party pre-issuance submissions, ex parte reexamination, inter partes review, post-grant review, and derivation proceedings. We may need to utilize the processes provided by the AIA for supplemental examination or patent reissuance. These proceedings could result in substantial cost to us even if the outcome is favorable. Even if successful, any proceeding may result in loss of certain claims. Any litigation or proceedings could divert our management's time and efforts. Even unsuccessful claims brought by third parties could result in significant legal fees and other expenses, diversion of management time, and disruption in our business. Uncertainties resulting from initiation and continuation of any patent or related litigation could harm our ability to compete.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additional uncertainty may result from legal precedent handed down by the United States Federal Circuit Court and Supreme Court as they determine legal issues concerning the scope and construction of patent claims and inconsistent interpretation of patent laws by the lower courts. Accordingly, we cannot ensure that any of our pending patent applications will result in issued patents, or even if issued, predict the breadth of the claims upheld in our, our licensors', and other companies' patents. Given that the degree of future protection for our proprietary rights is uncertain, we cannot ensure that: (i) we or our licensors were the first to invent the inventions covered by each of our pending applications, (ii) we or our licensors were the first to file patent applications for these inventions, or (iii) the proprietary technology, products or services we develop will be patentable. In addition, unauthorized parties may attempt to copy or otherwise obtain and use our technology, products and services. Monitoring unauthorized use of our intellectual property rights is difficult, and we cannot be certain that the steps we have taken will prevent unauthorized use of our technology, products or services, particularly in certain foreign countries where the local laws may not protect our proprietary rights as fully as in the United States. Moreover, third parties could practice our inventions in territories where we do not have patent protection. Such third parties may then try to import products made using our inventions into the United States or other countries. If competitors are able to use our proprietary technology, products or services, our ability to compete effectively could be harmed. In addition, others may independently develop and obtain patents for technologies, products or services that are similar to or superior to our technologies, products or services. If that happens, we may need to license these technologies, products or services, and we may not be able to obtain licenses on reasonable terms, if at all, which could cause harm to our business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">32</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Similarly, foreign courts have made, and will likely continue to make, changes in how the patent laws in their respective jurisdictions are interpreted. Changes in patent laws and regulations in other countries or jurisdictions, changes in the governmental bodies that enforce them, or changes in how the relevant governmental authority enforces patent laws or regulations may weaken our ability to obtain new patents or to enforce patents that we own or may obtain in the future. For example, in some cases, we have filed for unitary patent protection under the rules implemented on June 1, 2023, in the European Patent Office. We will continue to assess this route of protection on a case-by-case basis, as applications are filed and patents are granted through the European Patent Office. This may alter our ability to protect our patents in some European countries. Further, the laws of some foreign countries do not protect proprietary rights to the same extent or in the same manner as the laws of the United States. For example, in some foreign jurisdictions, governments have the right to compel patent owners to grant others licenses to their intellectual property under certain circumstances. In addition, any protection afforded by foreign patents may be more limited than that provided under U.S. patent and intellectual property laws. We may encounter significant problems in enforcing and defending our intellectual property both in the United States and abroad. For example, if the issuance in a given country of a patent covering an invention is not followed by the issuance in other countries of patents covering the same invention, or if any judicial interpretation of the validity, enforceability or scope of the claims or the written description or enablement in a patent issued in one country is not similar to the interpretation given to the corresponding patent issued in other countries, our ability to protect our intellectual property rights in those countries may be limited. Changes in either patent laws or in interpretations of patent laws in the United States and other countries may materially diminish the value of our intellectual property rights or narrow the scope of our patent protection. We cannot predict future changes in the interpretation of patent laws or changes to patent laws that might be enacted into law by U.S. and foreign legislative bodies. Those changes may materially affect our patents or patent applications and our ability to obtain additional patent protection in the future. Any of the foregoing could have a material adverse effect on our competitive position, business, financial condition, results of operations and prospects.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Third parties may claim that we are infringing, violating or misappropriating their intellectual property rights, which may subject us to costly and time-consuming litigation and prevent us from developing or commercializing our technology, products or services. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our commercial success also depends in part on our ability to operate without infringing, violating or misappropriating patents and other intellectual property rights of third parties, and without breaching any licenses or other agreements that we have entered into with regard to our technologies, products or services. We cannot ensure that patents have not been issued, or will not be issued, to third parties that could block our ability to obtain patents or to operate as we would like. There may be patents in some countries that, if valid, may block our ability to make, use, sell, or offer for sale our technology, products or services in those countries, or import our products into those countries, if we are unsuccessful in circumventing or acquiring rights to these patents. There also may be claims in patent applications filed in some countries that, if granted and valid, may also block our ability to commercialize technology, products, services or processes in these countries if we are unable to circumvent or obtain rights to them. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The industries in which we operate and the biotechnology industry, in particular, are characterized by frequent and extensive litigation regarding patents and other intellectual property rights. Many biotechnology companies have employed intellectual property litigation as a way to gain a competitive advantage. We are aware of some patents and patent applications relating to aspects of our technologies, products or services filed by, and issued to, third parties. We cannot assure that if such third-party patents rights are asserted against us that we would ultimately prevail. Any involvement in litigation or other intellectual property proceedings inside and/or outside of the United States to defend against claims that we infringe, misappropriate or violate the intellectual property rights of others may divert our management&#8217;s time from focusing on business operations and could cause us to spend significant amounts of money. Any potential intellectual property litigation also could force us to do one or more of the following: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">stop making, using, selling or importing our technologies, products and services that use the subject intellectual property; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">pay monetary damages to the third party asserting claims against us; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">grant or transfer rights to third parties relating to our patents or other intellectual property rights; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">obtain from the third party asserting its intellectual property rights a license to make, sell, offer for sale, import or use the relevant technology, product or service, which license may not be available on reasonable terms, or at all; or </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">33</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">redesign those technologies, products, services or processes that use any allegedly infringing, misappropriated or violated intellectual property rights, or relocate the operations relating to the allegedly infringing, misappropriated or violated intellectual property rights to another jurisdiction, which may result in significant cost or delay to us, could be technically infeasible or could prevent us from making, selling, offering for sale, using or importing some of our technologies, products or services in the United States or other jurisdictions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may be involved in lawsuits to protect or enforce our intellectual property rights, which could be expensive, time-consuming and unsuccessful. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Competitors may infringe, violate or misappropriate our intellectual property rights or those of our licensors. To prevent infringement, violation, misappropriation or other unauthorized use, we have in the past filed, and may in the future be required to file, enforcement claims, which can be expensive and time-consuming. In addition, in an enforcement proceeding, a court may decide that the intellectual property right that we own or control is not valid, is unenforceable and/or is not infringed, violated or misappropriated. In addition, in legal proceedings against a third party to enforce a patent directed at one of our technologies, products or services, the defendant could counterclaim that our patent is invalid and/or unenforceable in whole or in part. In patent enforcement litigation in the United States, defendant counterclaims alleging invalidity and/or unenforceability are commonplace. Grounds for a patent validity challenge include an alleged failure to meet any of several statutory requirements, including lack of novelty, obviousness or non-enablement. Grounds for an unenforceability assertion could include an allegation that someone connected with prosecution of the patent withheld relevant information from the United States Patent and Trademark Office (&#8220;USPTO&#8221;) or made a misleading statement during prosecution. Third parties may also raise similar claims before the USPTO, even outside the context of enforcement litigation. The outcome following legal assertions of invalidity and unenforceability is unpredictable, and prior art could render our patents or those of our licensors invalid. If a defendant were to prevail on a legal assertion of invalidity and/or unenforceability, we would lose at least part, and perhaps all, of the patent protection on the respective technology, products or services. Such a loss of patent protection could have a material adverse impact on our business. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Even if resolved in our favor, litigation or other legal proceedings relating to our intellectual property rights may cause us to incur significant expenses and could distract our technical and management personnel from their normal responsibilities. In addition, there could be public announcements of the results of hearings, motions or other interim proceedings or developments and if securities analysts or investors perceive these results to be negative, it could have a substantial adverse effect on the price of our common stock. Such litigation or proceedings could substantially increase our expenses and reduce the resources available for operations and research and development activities. We may not have sufficient financial or other resources to conduct such litigation or proceedings adequately. Some of our competitors may be able to sustain the costs of such litigation or proceedings more effectively than we can because of their greater financial resources. Uncertainties resulting from the initiation and continuation of patent litigation or other proceedings could compromise our ability to compete in the marketplace. Furthermore, because of the substantial amount of discovery required in connection with U.S. intellectual property litigation, there is a risk that some of our confidential information could be compromised by disclosure during this type of litigation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may not be able to enforce our intellectual property rights throughout the world.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The laws of some foreign countries where we do business do not protect intellectual property rights to the same extent as the laws of the United States. Many companies have encountered significant problems in protecting and enforcing intellectual property rights in certain foreign jurisdictions. The legal systems of certain countries, particularly certain developing countries, do not favor the enforcement of patents and other intellectual property rights, particularly those relating to biotechnology technologies. Accordingly, our efforts to protect and enforce our intellectual property rights in such countries may be inadequate. This could make it difficult for us to stop the infringement, violation or misappropriation of our patents or other intellectual property rights. Additionally, proceedings to enforce our patent rights in foreign jurisdictions could result in substantial costs and divert our efforts and attention from other aspects of our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If our biocatalysts, or the genes that code for our biocatalysts, are stolen, misappropriated or reverse engineered, others could use these biocatalysts or genes to produce competing products. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Third parties, including our contract manufacturers, customers and those involved in shipping our biocatalysts, often have custody or control of our biocatalysts. If our biocatalysts, or the genes that code for our biocatalysts, were stolen, misappropriated or reverse engineered, they could be used by other parties who may be able to reproduce these biocatalysts for their own commercial gain. If this were to occur, it may be difficult for us to challenge this type of use, especially in countries with limited intellectual property rights protection or in countries in which we do not have patents covering the misappropriated biocatalysts.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">34</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Confidentiality and non-use agreements with employees, consultants, advisors and other third parties may not adequately prevent disclosures and non-use of trade secrets and other proprietary information.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to patent protection, we also rely on other intellectual property rights, including protection of copyright, trade secrets, know-how and/or other proprietary information that is not patentable or that we elect not to patent. However, trade secrets can be difficult to protect, and some courts are less willing or unwilling to protect trade secrets. To maintain the confidentiality of our trade secrets and proprietary information, we rely in part on trade secret law and contractual agreements to protect our confidential and proprietary information and processes. We generally enter into confidentiality and invention assignment agreements with our employees, consultants and third parties working on our behalf upon their commencement of a relationship with us. However, trade secrets and confidential information are difficult to protect and we cannot guarantee that we have entered into such agreements with each party that may have or have had access to our trade secrets or proprietary technology and processes and we may not enter into such agreements with all employees, consultants and third parties who have been involved in the development of our intellectual property rights. Nevertheless, without our permission or awareness, our confidential and proprietary information may be disclosed to third parties, used by the respective individuals for purposes other than for the Company&#8217;s business, or obtained through illegal means, such that third parties could reverse engineer our biocatalysts, enzyme products and processes, to attempt to develop the same technology or develop substantially equivalent technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costly and time-consuming litigation could be necessary to enforce and determine the scope of our confidential and proprietary rights, and failure to protect our trade secrets could adversely affect our competitive business position. If any of our trade secrets were lawfully obtained, we may be unable to prevent them, or those to whom they communicate it, from using that technology or information to compete with us or disclosing it publicly. Therefore, these events could have a material adverse effect on our business, financial condition and results of operations. In particular, a failure to protect our proprietary rights may allow competitors to copy our technology, which could adversely affect our pricing and market share.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to contractual measures, we try to protect the confidential nature of our proprietary information by maintaining physical security of our premises and electronic security of our information technology systems. Such security measures may not, for example, in the case of misappropriation of a trade secret by an employee, consultant or other third party with authorized access or with unauthorized access but an intent to steal, provide adequate protection for our proprietary information. Our security measures may not prevent such employee, consultant or other third party from misappropriating our trade secrets and using them or providing them to a competitor, and recourse we take against such misconduct may not provide an adequate remedy to protect our interests fully. While we use commonly accepted security measures, trade secret violations are often a matter of state law in the United States, and the criteria for protection of trade secrets can vary among different jurisdictions. If the steps we have taken to maintain our trade secrets are deemed inadequate, we may have insufficient recourse against third parties for misappropriating the trade secret.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Owning our Common Stock</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are subject to anti-takeover provisions in our certificate of incorporation and bylaws and under Delaware law that could delay or prevent an acquisition of our company, even if the acquisition would be beneficial to our stockholders. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Provisions in our amended and restated certificate of incorporation and our bylaws may delay or prevent an acquisition of the Company. Among other things, our amended and restated certificate of incorporation and bylaws provide for a board of directors which is divided into three classes, with staggered three-year terms and provide that all stockholder action must be effected at a duly called meeting of the stockholders and not by a consent in writing, and further provide that only our board of directors, the chairman of the board of directors, our chief executive officer or president may call a special meeting of the stockholders. In addition, our amended and restated certificate of incorporation allows our board of directors, without further action by our stockholders, to issue up to 5,000,000 shares of preferred stock in one or more series and to fix the rights, preferences, privileges and restrictions thereof. These provisions may also frustrate or prevent any attempts by our stockholders to replace or remove our current management by making it more difficult for stockholders to replace members of our board of directors, who are responsible for appointing the members of our management team. Furthermore, because we are incorporated in Delaware, we are governed by the provisions of Section 203 of the Delaware General Corporation Law (&#8220;DGCL&#8221;) which prohibits, with some exceptions, stockholders owning in excess of 15% of our outstanding voting stock from merging or combining with us. Finally, our charter documents establish advanced notice requirements for nominations for election to our board of directors and for proposing matters that can be acted upon at stockholder meetings. Although we believe these provisions together provide for an opportunity to receive higher bids by requiring potential acquirers to negotiate with our board of directors, they would apply even if an offer to acquire our company may be considered beneficial by some stockholders.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">35</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our bylaws designate a state or federal court located within the State of Delaware as the sole and exclusive forum for substantially all disputes between us and our stockholders, which could limit our stockholders' ability to obtain a favorable judicial forum for disputes with us our current or former directors, officers, stockholders, or other employees.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our bylaws provide that, unless we consent in writing to the selection of an alternative forum, the Court of Chancery of the State of Delaware shall be the sole and exclusive forum for (i) any derivative action or proceeding brought on behalf of us under Delaware law, (ii) any action asserting a claim of breach of a fiduciary duty owed by any current or former director, officer, or other employee of the Company to us or our stockholders, (iii) any action asserting a claim against us or any of our directors, officers, or other employees arising pursuant to any provision of the DGCL or our certificate of incorporation or bylaws (as either may be amended from time to time), (iv) any action asserting a claim against us governed by the internal affairs doctrine, or (v) any other action asserting an &#8220;internal corporate claim,&#8221; as defined under Section 115 of the DGCL. The forgoing provisions do not apply to any claims arising under the Securities Act and, unless we consent in writing to the selection of an alternative forum, the federal district courts of the United States will be the sole and exclusive forum for resolving any action asserting a claim arising under the Securities Act.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These choice of forum provisions may limit a stockholder&#8217;s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or any of our current or former directors, officers, or other employees, which may discourage lawsuits with respect to such claims. There is uncertainty as to whether a court would enforce such provisions, and the enforceability of similar choice of forum provisions in other companies&#8217; charter documents has been challenged in legal proceedings. It is possible that a court could find these types of provisions to be inapplicable or unenforceable, and if a court were to find the choice of forum provision to be inapplicable or unenforceable in an action, we may incur additional costs associated with resolving such action in other jurisdictions, which could harm our business, results of operations or financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our quarterly or annual operating results may fluctuate in the future. As a result, we may fail to meet or exceed the expectations of research analysts or investors, which could cause our stock price to decline. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our financial condition and operating results have varied significantly in the past and may continue to fluctuate from quarter to quarter and year to year in the future due to a variety of factors, many of which are beyond our control. Factors relating to our business that may contribute to these fluctuations include the following factors, as well as other factors described elsewhere in this report: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to achieve or maintain profitability;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on a limited number of customers;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our product supply agreements with customers have finite duration, may not be extended or renewed and generally do not require the customer to purchase any particular quantity or quantities of our products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">with respect to customers purchasing our products for the manufacture of active pharmaceutical ingredients for which they have exclusivity due to patent protection, the termination or expiration of such patent protection and any resulting generic competition may materially and adversely affect our revenues, financial condition or results of operations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on a limited number of products in our performance enzymes business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our reliance on a limited number of contract manufacturers for large scale production of substantially all of our enzyme products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our relationships with, and dependence on, collaborators in our principal markets;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to successfully and timely develop and commercialize new products, including our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, for the markets we serve;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the potential of GSK, Merck, Novartis or any other performance enzyme customer terminating their agreements with us;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the success of our customers&#8217; products in the market and the ability of such customers to obtain regulatory approvals for products and processes;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to deploy our technology platform in life science tools markets;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">36</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on our collaborators or customers&#8217; product candidates which could unexpectedly fail at any stage of preclinical or clinical development;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on our collaborators or customers&#8217; product candidates which may lack the ability to work as intended or cause undesirable side effects;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to successfully prosecute and protect our intellectual property;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to compete if we do not adequately protect our proprietary technologies or if we lose some of our intellectual property rights;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to avoid infringing the intellectual property rights of third parties;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our involvement in lawsuits to protect or enforce our patents or other intellectual property rights;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to enforce our intellectual property rights throughout the world;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on, and the need to attract and retain, key management and other personnel; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to prevent the theft or misappropriation of our biocatalysts, the genes that code for our biocatalysts, know-how or technologies;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to protect our trade secrets and other proprietary information from disclosure by employees and others;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to obtain substantial additional capital that may be necessary to expand our business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to comply with the terms of our Loan Agreement;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to timely pay debt service obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers&#8217; ability to pay amounts owed to us in a timely manner;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to avoid charges to earnings as a result of any impairment of goodwill, intangible assets or other long-lived assets;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">changes in financial accounting standards or practices may cause adverse, unexpected financial reporting fluctuations and affect our reported results of operations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to maintain effective internal control over financial reporting;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependency on information technology systems, infrastructure and data;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to control and to improve product gross margins;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to protect against risks associated with the international aspects of our business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the cost of compliance with EU chemical regulations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential advantages that our competitors and potential competitors may have in securing funding or developing products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to accurately report our financial results in a timely manner;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">results of regulatory tax examinations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">market and economic conditions may negatively impact our business, financial condition, and share price;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">business interruptions due to natural disasters, disease outbreaks or other events beyond our control;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">public concerns about the ethical, legal and social ramifications of genetically engineered products and processes;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to integrate our current business with any businesses that we may acquire in the future;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to properly handle and dispose of hazardous materials in our business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential product liability claims; </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">37</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">changes to tax law and related regulations could materially affect our tax obligations and effective tax rate; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to use our NOLs to offset future taxable income.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Due to the various factors mentioned above, and others, the results of any prior quarterly or annual periods should not be relied upon as indications of our future operating performance.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We do not intend to pay cash dividends for the foreseeable future.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We currently intend to retain our future earnings, if any, to finance the further development and expansion of our business and do not intend to pay cash dividends in the foreseeable future. Any future determination to pay dividends will be at the discretion of our board of directors and will depend on our financial condition, results of operations, capital requirements, restrictions contained in future agreements and financing instruments, business prospects and such other factors as our board of directors deems relevant.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">General Risk Factors</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If securities or industry analysts do not publish research or reports about our business, or publish negative reports about our business, our stock price and trading volume could decline. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The trading market for our common stock will be influenced by the research and reports that securities or industry analysts publish about us or our business. We do not have any control over these analysts. If one or more of the analysts who cover us downgrade our stock or change their opinion of our stock in a negative manner, our stock price would likely decline. If one or more of these analysts cease coverage of our company or fail to regularly publish reports on us, we could lose visibility in the financial markets, which could cause our stock price or trading volume to decline.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We face risks associated with our international business. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we have a limited number of employees located outside of the United States, we are and will continue to be dependent upon contract manufacturers located outside of the United States. In addition, we have customers and partners located outside of the United States. Conducting business internationally exposes us to a variety of risks, including:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">changes in or interpretations of U.S. or foreign laws or regulations that may adversely affect our ability to sell our products, repatriate profits to the United States or operate our foreign-located facilities; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the imposition of tariffs; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the imposition of limitations on, or increase of, withholding and other taxes on remittances and other payments by foreign subsidiaries or joint ventures; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the imposition of limitations on genetically-engineered or other products or processes and the production or sale of those products or processes in foreign countries; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">currency exchange rate fluctuations; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">uncertainties relating to foreign laws, regulations and legal proceedings including pharmaceutical, tax, import/export, anti-corruption and exchange control laws; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the availability of government subsidies or other incentives that benefit competitors in their local markets that are not available to us; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">increased demands on our limited resources created by our operations may constrain the capabilities of our administrative and operational resources and restrict our ability to attract, train, manage and retain qualified management, technicians, scientists and other personnel; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">economic or political instability in foreign countries; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties associated with staffing and managing foreign operations; and </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the need to comply with a variety of United States and foreign laws applicable to the conduct of international business, including import and export control laws and anti-corruption laws. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">38</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Market and economic conditions may negatively impact our business, financial condition, and share price.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Concerns about inflation, energy costs, geopolitical issues, the United States mortgage market and a declining real estate market, unstable global credit markets and financial conditions, and volatile oil prices have led to periods of significant economic instability, diminished liquidity and credit availability, declines in consumer confidence and discretionary spending, diminished expectations for the global economy and expectations of slower global economic growth going forward, increased unemployment rates, and increased credit defaults in recent years. Our general business strategy may be adversely affected by any such economic downturns, volatile business environments and continued unstable or unpredictable economic and market conditions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Recently, the closures of Silicon Valley Bank (&#8220;SVB&#8221;) and Signature Bank (&#8220;Signature&#8221;) and their placement into receivership with the Federal Deposit Insurance Corporation, and the government-brokered sale of the deposits and majority of assets of First Republic Bank to JPMorgan Chase, created bank-specific and broader financial institution liquidity risk and concerns. Although government intervention ensured that depositors at these banks have access to their funds, future adverse developments with respect to specific financial institutions or the broader financial services industry may lead to market-wide liquidity shortages, impair the ability of companies to access near-term working capital needs, and create additional market and economic uncertainty. There can be no assurance that future credit and financial market instability and a deterioration in confidence in economic conditions will not occur, and we cannot predict the impact or follow-on effects of these insolvencies more broadly or on our business in particular. Further, we cannot guarantee that the government will intervene to provide depositors with access to funds if similar events occur in the future. If other banks and financial institutions enter receivership or become insolvent in the future, our ability to access our existing cash, cash equivalents, and investments may be threatened, which could have a material adverse effect on our business and financial condition. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, if the market and economic conditions described above continue to deteriorate or do not improve, it may make any necessary debt or equity financing more difficult to complete, more costly, and more dilutive. Failure to secure any necessary financing in a timely manner and on favorable terms could have a material adverse effect on our growth strategy, financial performance, and stock price. Additionally, rising rates of inflation have increased the costs associated with conducting our business, including by causing substantial increases in the costs of materials, including raw materials and consumables, equipment, services, and labor. Moreover, given the unpredictable nature of the current economic climate, including future changes in rates of inflation, it may be increasingly difficult for us to predict and control our future expenses, which may harm our ability to conduct our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Business interruptions resulting from disasters or other disturbances could delay us in the process of developing our products and could disrupt our sales. Our business continuity and disaster recovery plans may not adequately protect us from a serious disaster or other disturbance.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters and other facilities are located in the San Francisco Bay Area, which in the past has experienced both severe earthquakes and wildfires. Earthquakes, wildfires or other natural disasters could severely disrupt our operations, and have a material adverse effect on our business, results of operations, financial condition and prospects. We are also vulnerable to other types of disasters and other events that could disrupt our operations, such as riot, civil disturbances, war, terrorist acts, public health emergencies, domestic or foreign conflicts, infections in our laboratory or production facilities or those of our customers or contract manufacturers and other events beyond our control. If a natural disaster or other event occurred that prevented us from using all or a significant portion of our headquarters, that damaged critical infrastructure, such as our enterprise financial systems or manufacturing resource planning and enterprise quality systems, or that otherwise disrupted operations, it may be difficult or, in certain cases, impossible, for us to continue our business for a substantial period of time. The disaster recovery and business continuity plans we have in place currently are limited and are unlikely to prove adequate in the event of a serious disaster or similar event, and we may incur substantial expenses as a result of the limited nature of such plans. We do not carry insurance for earthquakes and we may not carry sufficient business interruption insurance to compensate us for losses that may occur. Any losses or damages we incur could have a material adverse effect on our cash flows and success as an overall business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">39</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on information technology systems, infrastructure and data, and any failure of these systems could harm our business. Security breaches, loss of data and other disruptions could compromise sensitive information related to our business or prevent us from accessing critical information and expose us to liability, which could adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information technology helps us operate efficiently, interface with customers, maintain financial accuracy and efficiency and accurately produce our financial statements. If we do not allocate and effectively manage the resources necessary to build and sustain the proper technology infrastructure, we could be subject to transaction errors, processing inefficiencies, the loss of customers, business disruptions or the loss of or damage to intellectual property through security breach. If our information technology systems do not effectively collect, store, process and report relevant data for the operation of our business, whether due to equipment malfunction or constraints, software deficiencies, or human error, our ability to effectively plan, forecast and execute our business plan and comply with applicable laws and regulations will be impaired, perhaps materially. Our information technology systems and those of our external vendors, strategic partners and other contractors or consultants are vulnerable to attack and damage or interruption from computer viruses and malware (e.g. ransomware), malicious code, natural disasters, terrorism, war, telecommunication and electrical failures, hacking, cyberattacks, phishing attacks and other social engineering schemes, employee theft or misuse, human error, fraud, denial or degradation of service attacks, sophisticated nation-state and nation-state-supported actors or unauthorized access or use by persons inside our organization, or persons with access to systems inside our organization. Any such impairment could materially and adversely affect our financial condition, results of operations, cash flows and the timeliness with which we report our internal and external operating results.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business may require us to use and store personal information of our customers, employees, and business partners. This may include names, addresses, phone numbers, email addresses, contact preferences, tax identification numbers and payment account information. We require usernames and passwords in order to access our information technology systems. We also use encryption and authentication technologies to secure the transmission and storage of data. However, these security measures may be compromised as a result of security breaches by unauthorized persons, employee error, malfeasance, faulty password management or other irregularity, and result in persons obtaining unauthorized access to our data or accounts. Third parties may attempt to fraudulently induce employees or customers into disclosing usernames, passwords or other sensitive information, which may in turn be used to access our information technology systems. For example, our employees have received &#8220;phishing&#8221; emails and phone calls attempting to induce them to divulge passwords and other sensitive information.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, unauthorized persons may attempt to hack into our products or systems to obtain personal data relating to employees and other individuals, our confidential or proprietary information or confidential information we hold on behalf of third parties. We also rely on external vendors to supply and/or support certain aspects of our information technology systems. The systems of these external vendors may contain defects in design or manufacture or other problems that could unexpectedly compromise information security of our own systems, and we are dependent on these third parties to deploy appropriate security programs to protect their systems. If we or our third-party vendors were to experience a significant cybersecurity breach of our or their information systems or data, the costs associated with the investigation, remediation and potential notification of the breach to counterparties and data subjects could be material. Our remediation efforts may not be successful. Further, if such an event were to occur and cause interruptions in our operations, it could result in a material disruption of our development programs and our business operations, whether due to a loss, corruption or unauthorized disclosure of our trade secrets, personal information or other proprietary or sensitive information or other similar disruptions. Attacks upon information technology systems are also increasing in their frequency, levels of persistence, sophistication and intensity, and are being conducted by sophisticated and organized groups and individuals with a wide range of motives and expertise. As a result of the remote work policies we initiated in response to the COVID-19 pandemic, and our continued hybrid working environment, we may also face increased cybersecurity risks due to our reliance on internet technology and the number of our employees who are working remotely, which may create additional opportunities for cybercriminals to exploit vulnerabilities. We have programs in place to detect, contain and respond to data security incidents, and we make ongoing improvements to our information-sharing products in order to minimize vulnerabilities, in accordance with industry and regulatory standards. However, because the techniques used to obtain unauthorized access to or sabotage systems change frequently and may be difficult to detect, we may not be able to anticipate and prevent these intrusions or mitigate them when and if they occur. Even if identified, we may be unable to adequately and timely investigate or remediate incidents or breaches due to attackers increasingly using tools and techniques that are designed to circumvent controls, to avoid detection and to remove or obfuscate forensic evidence.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">40</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We and certain of our external vendors are from time to time subject to cyberattacks and security incidents. While we do not believe that we have experienced any significant system failure, accident, or security breach to date, if such an event were to occur, it could result in the unauthorized access to or unauthorized use, disclosure, release or other processing of personal information, it may be necessary to notify individuals, governmental authorities, supervisory bodies, the media and other parties pursuant to privacy and security laws. Any security compromise affecting us, our service providers, vendors, strategic partners, other contractors, consultants or our industry, whether real or perceived, could harm our reputation, erode confidence in the effectiveness of our security measures and lead to regulatory scrutiny. To the extent that any disruption or security breach were to result in a loss of, or damage to, our data or systems, or inappropriate disclosure of confidential or proprietary or personal information, we could incur liability, including litigation exposure, penalties and fines, which may not be covered by insurance or may be in excess of our insurance coverage. Additionally, we could become the subject of regulatory action or investigation, our competitive position could be harmed and the further development of our products could be delayed. If such an event were to occur and cause interruptions in our operations, it could result in a material disruption of our business and could materially and adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Actual or perceived failures to comply with applicable data protection, privacy and security laws, regulations, standards and other requirements could adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The global data protection landscape is rapidly evolving, and we are or may become subject to state, federal and foreign laws, regulations, decisions and directives governing the privacy, security, collection, storage, transmission, use, processing, retention and disclosure of personal information. Any failure or perceived failure by us to comply with applicable laws or regulations, our internal policies and procedures or our contracts governing our processing of personal information could result in negative publicity, government investigations and enforcement actions, claims by third parties and damage to our reputation, any of which could have a material adverse effect on our operations, financial performance and business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the United States, HIPAA imposes, among other things, certain standards relating to the privacy, security, transmission and breach reporting of certain individually identifiable health information. Certain states have also adopted and continue to adopt new privacy and security laws and regulations, which govern the privacy, processing and protection of health-related and other personal information. Such laws and regulations will be subject to interpretation by various courts and other governmental authorities, thus creating potentially complex compliance issues for us and our future customers and strategic partners. For example, the California Consumer Privacy Act (&#8220;CCPA&#8221;) went into effect on January 1, 2020. The CCPA creates individual privacy rights for California consumers and increases the privacy and security obligations of entities handling certain personal information. The CCPA also provides for civil penalties for violations, as well as a private right of action for data breaches (which has increased the likelihood of, and risks associated with, data breach litigation). Further, the California Privacy Rights Act (&#8220;CPRA&#8221;) significantly amended the CCPA, which went into effect in January 2023. It imposes additional data privacy obligations on covered businesses, including additional consumer rights processes, limitations on data uses, new audit requirements for higher risk data and opt outs for certain uses of sensitive data. It also created a new California privacy protection agency authorized to issue substantive regulations and could result in increased privacy and information security enforcement. Additional compliance investment and potential business process changes may also be required. Similar laws regulating personal information generally or health information in particular have passed in more than a dozen states and have been proposed in other states and at the federal level, reflecting a trend toward more stringent privacy legislation in the United States. These developments increase our compliance burden and our risk, including risks of regulatory fines, litigation and associated reputational harm. Any liability from failure to comply with the requirements of these laws could adversely affect our financial condition. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Furthermore, the Federal Trade Commission (&#8220;FTC&#8221;) and many state Attorneys General continue to enforce federal and state consumer protection laws against companies for the collection, use, sharing and security of personal information that appear to be unfair or deceptive. For example, according to the FTC, failing to take appropriate steps to keep consumers&#8217; personal information secure can constitute unfair acts or practices in or affecting commerce in violation of Section 5(a) of the Federal Trade Commission Act. The FTC expects a company&#8217;s data security measures to be reasonable and appropriate in light of the sensitivity and volume of consumer information it holds, the size and complexity of its business, and the cost of available tools to improve security and reduce vulnerabilities.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">41</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the European Union (&#8220;EU&#8221;), the EU General Data Protection Regulation (&#8220;EU GDPR&#8221;) governs the processing of personal data. The UK has implemented the EU GDPR as the UK GDPR which sits alongside the UK Data Protection Act 2018 (the &#8220;UK GDPR&#8221;, and together with the EU GDPR, the &#8220;GDPR&#8221;). The GDPR imposes requirements for controllers, including (among others) specific requirements for obtaining valid consent where consent is the legal basis for processing, requirements around accountability and transparency, the obligation to consider data protection when any new products or services are developed, the obligation to comply with individuals&#8217; data protection rights, and the obligation to notify relevant data supervisory authorities of notifiable personal data breaches without undue delay (and no later than 72 hours) after becoming aware of the personal data breach (and affected data subjects where the personal data breach is likely to result in a high risk to their rights and freedoms). The EU GDPR provides that EU member states may enact their own additional national laws and regulations regarding the processing of genetic, biometric or health data, which could affect our ability to use and share personal data or could cause our costs to increase and potentially harm our business and financial condition. Failure to comply with the requirements of the GDPR can result in (among other things) fines of up to the greater of &#8364;20 million (under the EU GDPR) or &#163;17.5 million (under the UK GDPR) or 4% of an organization&#8217;s total worldwide annual turnover of the preceding financial year and other administrative penalties. To the extent that we are subject to the GDPR, compliance with the GDPR may require substantial amendments to our procedures and policies and these changes could adversely impact our business by increasing operational and compliance costs or impact business practices. Further, there is a risk that the amended policies and procedures will not be implemented correctly or that individuals within the business will not be fully compliant with the new procedures. There is a risk that we could be impacted by a cybersecurity incident that results in loss or unauthorized disclosure of personal data, potentially resulting in us facing harms similar to those described above.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Among other requirements, the EU GDPR prohibits the international transfer of personal data subject to the GDPR from the European Economic Area (&#8220;EEA&#8221;) to third countries that the European Commission does not recognize as having an &#8216;adequate&#8217; level of data protection, unless a data transfer mechanism has been put in place or a derogation under the EU GDPR can be relied on. In July 2020, the Court of Justice of the EU in its Schrems II judgement limited how organizations could lawfully transfer personal data from the EEA to the United States by invalidating the EU-U.S. Privacy Shield for purposes of international transfers and imposing further restrictions on the use of standard contractual clauses (&#8220;EU SCCs&#8221;), including a requirement for companies to carry out a transfer privacy impact assessment (&#8220;TIA&#8221;). A TIA, among other things, assesses laws governing access to personal data in the recipient country and considers whether supplementary measures that provide privacy protections additional to those provided under the EU SCCs will need to be implemented to ensure an &#8216;essentially equivalent&#8217; level of data protection to that afforded in the EEA. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 7, 2022, U.S. President Biden introduced an Executive Order to facilitate a new Trans-Atlantic Data Privacy Framework (&#8220;DPF&#8221;) and in July 2023, the European Commission adopted its Final Implementing Decision granting the United States adequacy (&#8220;Adequacy Decision&#8221;) for EU-U.S. transfers of personal data for entities self-certified to the DPF. Entities relying on EU SCCs for transfers to the United States are also able to rely on the analysis in the Adequacy Decision as support for their TIA regarding the equivalence of U.S. national security safeguards and redress. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The UK GDPR also imposes similar restrictions on transfers of personal data from the UK to jurisdictions that the UK Government does not consider adequate, including the United States. The UK Government has published its own form of the EU SCCs, known as the International Data Transfer Agreement and an International Data Transfer Addendum to the new EU SCCs. The UK Information Commissioner&#8217;s Office has also published its own version of the TIA and guidance on international transfers, although entities may choose to adopt either the EU or UK-style TIA. Further, on September 21, 2023, the UK Secretary of State for Science, Innovation and Technology established a UK-U.S. data bridge (i.e., a UK equivalent of the Adequacy Decision) and adopted UK regulations to implement the UK-U.S. data bridge (&#8220;UK Adequacy Regulations&#8221;). Personal data may now be transferred from the UK under the UK-U.S. data bridge through the UK extension to the DPF to organizations self-certified under the UK extension to DPF.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As we continue to expand into other foreign countries and jurisdictions, we may be subject to additional laws and regulations that may affect how we conduct business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">42</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we work to comply with applicable laws, regulations and standards, our contractual obligations and other legal obligations, these requirements are evolving and may be modified, interpreted and applied in an inconsistent manner from one jurisdiction to another, and may conflict with one another or other legal obligations with which we must comply. Various federal, state and foreign legislative or regulatory bodies may enact new or additional laws and regulations concerning privacy, data-retention and data-protection issues, including laws or regulations mandating disclosure to domestic or international law enforcement bodies, which could adversely impact our business or our reputation with customers. For example, some countries have adopted laws mandating that certain personal information regarding customers in their country be maintained solely in their country. Having to maintain local data centers and redesign product, service and business operations to limit processing of personal information to within individual countries could increase our operating costs significantly. Any failure, or perceived failure, by us to comply with federal, state or international privacy, data-retention or data-protection-related laws, regulations, orders or industry self-regulatory principles could result in proceedings or actions against us by governmental entities or others, a loss of customer confidence, damage to our brand and reputation and a loss of customers, any of which could have an adverse effect on our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Evolving expectations around corporate responsibility practices, specifically related to environmental, social and governance (&#8220;ESG&#8221;) matters, may expose us to reputational and other risks.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investors, stockholders, customers, suppliers and other third parties are increasingly focusing on ESG and corporate social responsibility endeavors and reporting. Companies that do not adapt to or comply with the evolving investor or stakeholder expectations and standards, or that are perceived to have not responded appropriately, may suffer from reputational damage, which could result in the business, financial condition and/or stock price of a company being materially and adversely affected. For example, certain customers have inquired about our ESG practices and may impose ESG guidelines, procurement policies, sustainability standards, mandates or reporting requirements for, and may scrutinize relationships more closely with, their suppliers, including us, which may lengthen sales cycles, increase our costs or impair our ability to attract and retain customers. Further, this increased focus on ESG issues may result in new regulations, international accords and/or third-party requirements that could adversely impact our business, or certain shareholders reducing or eliminating their holdings of our stock. An allegation or perception that we have not taken sufficient action in these areas could negatively harm our reputation. Additionally, the subjective nature and wide variety of methods and processes used by various stakeholders, including investors, to assess environmental, social, and governance criteria could result in a negative perception or misrepresentation of the company's sustainability policies and practices.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">43</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_22"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1B. UNRESOLVED STAFF COMMENTS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="margin-top:9pt;text-indent:18pt"><span><br/></span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_1648"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1C. CYBERSECURITY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk Management and Strategy</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the normal course of business, we may collect and store personal information and other sensitive information, including proprietary and confidential business information, trade secrets, intellectual property, sensitive third-party information and employee information.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We assess and identify cybersecurity risk to such information by maintaining cybersecurity policies that require continuous monitoring and detection programs and network security precautions. Our program incorporates industry-standard frameworks, policies and practices designed to protect the privacy and security of our sensitive information. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage cybersecurity risks by maintaining various protections designed to safeguard against cyberattacks, including firewalls and virus detection software, and periodic end user training on common cybersecurity threats (e.g. phishing exercises and interactive trainings). We have established our disaster recovery plan and we protect against business interruption by backing up our major systems. In addition, we periodically scan our environment for any vulnerabilities, perform penetration testing and engage third parties to assess effectiveness of our data security practices. A third party security consultant conducts regular network security reviews, scans and audits, and we may consult with other external experts as warranted by a particular cybersecurity incident or threat. In addition, we maintain insurance that includes cybersecurity coverage.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Areas of cybersecurity risk are assessed bi-annually, and updates are reported by our Vice President of Information Technology (&#8220;VP IT&#8221;) to the Board&#8217;s Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually. In this way, our program to manage cybersecurity risk integrates with our overall risk management processes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With respect to third parties who provide services affecting critical business management systems, we collect and maintain SOC2 type II reports (attestation of controls at a service organization over a minimum six-month period). For other third-party service providers, cybersecurity risk is addressed as appropriate.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of the date of this report, we are not aware of any risks from cybersecurity threats that have materially affected or are reasonably likely to materially affect us, including our business strategy, results of operations and financial condition. Despite the implementation of our cybersecurity program, our security measures cannot guarantee that a significant cyberattack will not occur. A successful attack on our information technology systems could have significant consequences to the business. While we devote resources to our security measures to protect our systems and information, these measures cannot provide absolute security. See &#8220;Risk Factors &#8211; General Risk Factors&#8221; for additional information about the risks to our business associated with a breach or compromise to our information technology systems.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Governance</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors has visibility into cybersecurity risks through its Audit Committee and through the process described below. The Audit Committee has oversight of the Company&#8217;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#8217;s computerized information system controls and security.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Areas of cybersecurity risk are assessed bi-annually, and updates are reported by the VP IT to the Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Senior management has appointed a Cybersecurity Council that is responsible for identifying, escalating, and facilitating the assessment and determination of the materiality of cybersecurity incidents and threats. The Cybersecurity Council is made up of representatives of IT, Legal and Finance, as well as ad hoc additional members depending on the circumstances of the incident or threat. The members of the Cybersecurity Council do not have specific expertise in cybersecurity risk other than the VP IT who has more than 20 years of experience, and engages with trusted third-party experts for support and guidance when additional expertise is required. Prior to joining Codexis, our VP IT has managed cybersecurity functions, where </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">he was</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> responsible for overseeing cybersecurity strategy and operations, including incident response, threat intelligence, security awareness training programs, risk assessments and remediation, and regulatory and compliance matters.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An actual or suspected cybersecurity incident that jeopardizes the confidentiality, integrity, or availability of Codexis' information systems or any information residing therein (or threat that presents significant risk to our information systems as identified by IT) is reported to the Cybersecurity Council by our IT Department. The focus of the Cybersecurity Council is on the investigation and facilitation of senior management&#8217;s assessment and determination of materiality of an incident or threat, and such investigation is separate but contemporaneous with the investigation(s) done under other applicable programs, policies, and plans regarding cybersecurity. The Cybersecurity Council will liaise directly with other investigation(s) and share information and assessments. Along with assistance from the Cybersecurity Council as necessary, senior management reports its materiality determination and analysis, including necessary facts to support its determination, to the Audit Committee of the Board of Directors. Pursuant to its charter, the Audit Committee may, along with senior management, report such determination to the Board of Directors.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_25"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 2. PROPERTIES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FACILITIES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we lease approximately 77,300 square feet of office and laboratory space.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our lease (&#8220;RWC Lease&#8221;) with Metropolitan Life Insurance Company (&#8220;MetLife&#8221;) includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#8220;200/220 Penobscot Space&#8221;), approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#8220;400 Penobscot Space&#8221;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#8220;Penobscot Space&#8221;), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#8220;Chesapeake Space&#8221;). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC lease has been amended multiple times since then to adjust the leased space and terms of the RWC Lease. In February 2019, we entered into an Eighth Amendment to the RWC Lease (the &#8220;Eighth Amendment&#8221;) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the RWC Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (5) years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ARE</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) to lease a portion of a facility comprising approximately 36,593 rentable square feet at 825 Industrial Road, San Carlos, California to serve as additional office and research and development laboratory space (the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">San Carlos Space</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). In December 2021, we commenced occupancy of the San Carlos Space. The lease term for the San Carlos Space was through the end of November 2031, with one (1) option to extend the term of the lease for the San Carlos Space for five (5) years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#8220;Assignment Agreement&#8221;) with Vaxcyte, Inc. (&#8220;Vaxcyte&#8221;) to assign to Vaxcyte all of the Company&#8217;s right, title and interest in, under and to the San Carlos Space and the Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE entered into a Consent to Assignment and First Amendment (the &#8220;Consent&#8221;) pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#8217;s interest as tenant in the lease and agreed to release the Company from all of its obligations under the lease that accrue from and after the assignment. The effective date of the assignment was October 1, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the facility that we currently lease in Redwood City, California is adequate for our needs for the immediate future and that, should it be needed, additional space can be leased to accommodate any future growth.<br/></span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_28"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 3. LEGAL PROCEEDINGS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are currently not a party to any material pending litigation or other material legal proceedings.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_31"></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 4. MINE SAFETY DISCLOSURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">45</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_34"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART II</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_37"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 5. MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS AND ISSUER PURCHASES OF EQUITY SECURITIES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">MARKET INFORMATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our common stock is quoted on the Nasdaq Global Select Market (&#8220;Nasdaq</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), under the symbol &#8220;CDXS.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of February&#160;23, 2024, there were approximately 125 stockholders of record. A substantially greater number of stockholders may be "street name" or beneficial holders, whose shares are held of record by banks, brokers and other financial institutions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Dividend Policy</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have never declared or paid cash dividends on our common stock, and we currently do not plan to declare dividends on shares of our common stock in the foreseeable future. We expect to retain our future earnings, if any, for use in the operation and expansion of our business. In addition, unless waived, the terms of our Loan Agreement prohibit us from paying any cash dividends or making other distributions. The payment of cash dividends in the future, if any, will be at the discretion of our board of directors and will depend upon such factors as earnings levels, capital requirements, our overall financial condition and any other factors deemed relevant by our board of directors. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Securities Authorized for Issuance under Equity Compensation Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item concerning securities authorized for issuance under equity compensation plans is incorporated by reference from the information that will be set forth in the Definitive Proxy Statement to be filed with the Securities and Exchange Commission in connection with the Annual Meeting of Stockholders to be held in 2024 (the &#8220;2024 Proxy Statement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) under the heading &#8220;Executive Compensation&#8212;Equity Compensation Plan Information.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Stock Price Performance Graph</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tabular information and graph compare our total common stock return with the total return for (i)&#160;the Nasdaq Composite Index and (ii)&#160;the Nasdaq Biotechnology Total Return Index for the period December 31, 2018 through December&#160;31, 2023. The figures represented below assume an investment of $100 in our common stock at the closing price on December 31, 2018 and in the Nasdaq Composite Index and the Nasdaq Biotechnology Total Return Index on December 31, 2018 and the reinvestment of dividends into shares of common stock. The comparisons in the table and graph are required by the SEC and are not intended to forecast or be indicative of possible future performance of our common stock. The tabular information and graph shall not be deemed &#8220;soliciting material</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> or to be &#8220;filed</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> for purposes of Section&#160;18 of the Exchange Act or otherwise subject to the liabilities under that Section, and shall not be deemed to be incorporated by reference into any of our filings under the Securities Act or the Exchange Act. </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:27.408%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.502%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.841%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.841%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.705%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$100 investment in stock or index</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Ticker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2018</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2019</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Codexis, Inc.</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">CDXS</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.00&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">95.75&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">130.72&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">187.25&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27.90&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.26&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Nasdaq Composite Total Return</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">XCMP</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.00&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">136.69&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198.10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">242.03&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163.28&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">236.17&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Nasdaq Biotechnology (Total Return) Index</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">XNBI</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.00&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125.11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">158.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">158.20&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142.19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">148.72&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">46</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><img src="cdxs-20231231_g1.jpg" alt="2731" style="height:479px;margin-bottom:5pt;vertical-align:text-bottom;width:650px"/></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Unregistered Sales of Equity Securities and Use of Proceeds</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, we did not issue or sell any unregistered securities not previously disclosed in a Quarterly Report on Form 10-Q or in a Current Report on Form 8-K.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Issuer Purchases of Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None.</span></div><div style="margin-top:9pt;text-indent:18pt"><span><br/></span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_40"></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 6. [RESERVED]</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">47</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_43"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;7. MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF</span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">The following management's discussion and analysis of our financial condition and results of operations should be read in conjunction with our audited consolidated financial statements and the related notes thereto included elsewhere in this Annual Report on Form 10-K. This Annual Report on Form&#160;10-K contains forward-looking statements within the meaning of Section&#160;21E of the Securities Exchange Act of 1934, as amended (the "Exchange Act"). These statements include, but are not limited to, expectations regarding our strategy, business plans, financial performance and developments relating to our industry. These statements are often identified by the use of words such as "may," "will," "expect," "believe," "anticipate," "intend," "could," "should," "estimate," or "continue," and similar expressions or variations. Such forward-looking statements are subject to risks, uncertainties and other factors that could cause actual results and the timing of certain events to differ materially from future results expressed or implied by such forward-looking statements. Factors that could cause or contribute to such differences include, but are not limited to, those discussed in Part I, Item IA: "Risk Factors," of this Annual Report on Form&#160;10-K and elsewhere in this report. The forward-looking statements in this Annual Report on Form&#160;10-K represent our views as of the date of this Annual Report on Form&#160;10-K. We anticipate that subsequent events and developments will cause our views to change. However, while we may elect to update these forward-looking statements at some point in the future, we have no current intention of doing so except to the extent required by applicable law. You should, therefore, not rely on these forward-looking statements as representing our views as of any date subsequent to the date of this Annual Report on Form&#160;10-K.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Business Overview</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a leading enzyme engineering company leveraging our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins. Enzymes are naturally occurring biological molecules critical to almost all biochemical reactions that sustain life. They can be precisely engineered and optimized for specific functions, and to have particular characteristics, such as an ability to survive environments in which natural enzymes cannot, or to perform (bio)chemical transformations different than those for which they naturally evolved. We focus on leveraging our capacity to enhance the properties and performance of enzymes to drive pivotal improvements across two key focus areas: our foundational, revenue-generating pharmaceutical manufacturing business and our Enzyme-Catalyzed Oligonucleotide (ECO) Synthesis&#8482; (&#8220;ECO Synthesis&#8482;&#8221;) manufacturing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">platform, which is currently in development to enable the commercial scale manufacture of RNA interference (RNAi) therapeutics. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our unique enzymes drive improvements such as higher yields, increased purity, reduced energy usage and waste generation, and improved efficiency in manufacturing. In July 2023, we announced that we discontinued investment in certain development programs, primarily in our novel biotherapeutics business segment and that we are actively exploring options to drive value by potentially monetizing other non-core assets within our Life Sciences portfolio.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Within the pharmaceutical manufacturing business, we utilize our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop optimized enzymes that are used by some of the world&#8217;s largest pharmaceutical companies to reduce their costs and improve the efficiency and productivity of their manufacturing processes for small molecule therapeutics. We also use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop enzymes for the synthesis of nucleic acids such as DNA/RNA, including</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis&#8482; manufacturing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">platform. We demonstrated gram-scale synthesis with the ECO Synthesis&#8482; manufacturing platform in December 2023 and expect to begin pre-commercial customer testing in 2024. We anticipate that this will be followed by early commercial licenses to the ECO Synthesis&#8482; manufacturing platform in 2025 and a full commercial launch in 2026.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recent Developments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024, we entered into a five-year loan and security agreement with Innovatus Life Sciences Lending Fund I, LP, an affiliate of Innovatus Capital Partners, LLC (&#8220;Innovatus&#8221;), for an aggregate principal amount of up to $40.0 million (the &#8220;Loan Agreement&#8221;) consisting of two tranches, of which the first tranche of $30.0 million was completed on execution of the Loan Agreement. We will be eligible to draw on the second tranche of $10.0 million upon achievement of certain milestones including certain pre-specified revenue thresholds. The two tranches collectively are referred to as the &#8220;Term Loans.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investing and Financing Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell Inc. (&#8220;seqWell</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), a privately held biotechnology company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million. In September 2023, we purchased an additional 88,256 shares of seqWell's Series C-1 preferred stock and 44,128 common stock warrants for $0.4 million. As of December&#160;31, 2023, we have 1,293,535 shares of seqWell's Series C and C-1 preferred stock that we have earned or purchased since executing the Stock Purchase Agreement with seqWell. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">48</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we filed a Registration Statement on Form S-3 with the SEC, that automatically became effective upon its filing, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to that Registration Statement on Form S-3. Pursuant to that post-effective amendment, we registered an aggregate $200.0&#160;million of securities.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we entered into an Equity Distribution Agreement (&#8220;EDA&#8221;) with Piper Sandler &amp; Co (&#8220;PSC&#8221;), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act of 1933, as amended. During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA for gross proceeds of $8.7 million, or $7.9 million in net proceeds after PSC's commissions and direct offering expenses of $0.7 million. As of December&#160;31, 2023, $41.3 million of shares remained available for sale under the EDA. During the year ended December&#160;31, 2022, no shares of our common stock were sold pursuant to the EDA.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with MAI, a privately held life sciences company, pursuant to which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. Mr. Nicols, our former President and CEO until August 2022, also joined MAI&#8217;s board of directors in June 2020 and remained on MAI's board until September 2023. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the &#8220;MAI Agreement&#8221;), pursuant to which we performed services utilizing our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> directed evolution technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock. In April 2021, we purchased an additional 1,000,000 shares of MAI's Series A preferred stock for $0.6 million. In September 2021, we purchased 9,198,423 shares of MAI's Series B preferred stock for $7.0 million. As of December&#160;31, 2023, we held 19,277,914 shares of MAI's Series A and B preferred stock that we have earned or purchased since executing the Stock Purchase Agreement with MAI. </span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_49"></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Business Impact of COVID-19 and Sales of CDX-616 to Pfizer for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PAXLOVID&#8482;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the World Health Organization declared COVID-19 a global pandemic and recommended containment and mitigation measures worldwide. The impact of COVID-19 affected segments of the global economy and its continuing impacts may affect our operations, including the potential interruption of our supply chain. On May 11, 2023, the COVID-19 Public Health Emergency (&#8220;PHE&#8221;) declared under the Public Health Service Act expired. While COVID-19 is no longer considered a PHE, future surges or actions taken in response to COVID-19 or other PHEs may materially affect our products, supply chain or operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the COVID-19 pandemic, in 2021 and 2022 we received purchase orders from Pfizer Inc. (&#8220;Pfizer&#8221;) for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary API, nirmatrelvir, used by Pfizer in combination with the API ritonavir, as its PAXLOVID&#8482; (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans. We are a party</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#8220;Pfizer Supply Agreement&#8221;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $25.9 million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, 90% of the fee ($23.3 million) is creditable against (i) future orders of CDX-616 used to manufacture </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">its PAXLOVID&#8482; with shipment dates prior to </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, and (ii) fees associated with any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$23.3 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> credit towards a license to develop future product candidates, for which we recognized $5.0 million as non-cash research and development revenue during the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April&#160;4, 2023. Up to 50% of any portion of the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$25.9 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which has not been credited under items (i) and (ii) is creditable against future orders of CDX-616 used to manufacture PAXLOVID&#8482; with shipment dates in 2024. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The sale of CDX-616 to Pfizer </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">had a substantial impact on our revenues in 2021 and 2022, and to a lesser extent in 2023. Potential revenues in future years from our sales of CDX-616 to Pfizer and other potential customers (including sublicensees of Pfizer technology from The Medicine Patent Pool) are subject to a number of factors which are outside of our control and could reduce or eliminate our sales of CDX-616.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">49</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">RESULTS OF OPERATIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table shows the amounts from our consolidated statements of operations for the periods presented (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:43.198%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.771%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.771%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.778%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%&#160;of&#160;Total&#160;Revenues</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,657&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">84&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34,097&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Costs and operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,209&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58,885&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80,099&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,919&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">84&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53,250&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52,172&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">49,323&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">76&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">47&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;text-indent:9pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,167&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,984&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total costs and operating expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,212&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173,471&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">127,451&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">197&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">121&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss from operations</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(68,069)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(34,881)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(22,697)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(97)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(25)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,441&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">459&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other income (expense), net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,274)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,148&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,171)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,316)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,090)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(108)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(24)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">189&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,240)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,592)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,279)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(108)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(24)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenues</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues consist of product revenue and research and development revenue as follows:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates, and Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> biocatalyst panels and kits. </span></div><div style="margin-top:3pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Research and development revenue include license, technology access and exclusivity fees, research services fees, milestone payments, royalties, optimization and screening fees.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues are as follows (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.756%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,657&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(73,770)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46,019&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34,097&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,323&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,183)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(36)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(68,447)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(49)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,836&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues typically fluctuate on a quarterly basis due to the variability in our customers' manufacturing schedules and the timing of our customers' clinical trials. In addition, we have limited internal capacity to manufacture enzymes. As a result, we are dependent upon the performance and capacity of third party manufacturers for the commercial scale manufacturing of the enzymes used in our pharmaceutical and fine chemicals business. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We accept purchase orders for deliveries covering periods from one day up to 14 months from the date on which the order is placed. However, some of our purchase orders can be revised or cancelled by the customer without penalty. Considering these industry practices and our experience, we do not believe the total of customer purchase orders outstanding (backlog) provides meaningful information that can be relied on to predict actual sales for future periods.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total revenues decreased by $68.4 million in 2023 to $70.1 million, as compared to 2022. The decrease was driven by lower product revenue as compared to the prior year.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">50</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue was $42.9 million in 2023, a decrease of 63% compared with $116.7 million in 2022. The decrease in product revenue was primarily due to decreased sales of CDX-616 to Pfizer. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This decrease was partially offset by $8.2 million release of prior year's deferrals related to Pfizer's fee, $3.2 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">release of prior periods' product revenue deferrals due to early termination of the enzyme supply obligations to a customer and</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $1.3 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of product revenue recognized as settlement fee pursuant to the enzyme supply agreement with the same customer</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development revenue increased by $5.3 million in 2023 to $27.2 million, or 24% compared with $21.9 million in 2022, primarily due to higher revenue from the Pfizer license agreement and from Nestl&#233; Health Science under the Nestl&#233; SCA and development agreement and the Acquisition Agreement, which was partially offset by lower research and development fees from existing collaboration agreements being recognized in 2023 as compared to the prior year.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2022 compared to 2021</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total revenues increased b</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">y $33.8 million in 2022 to $138.6 million, as compared to 2021. The increase was driven by growth in product revenue of $46.0 million, or 65%, partially offset by a decrease in research and development revenue of $12.2 million, or 36%.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue was $116.7 million in 2022, an increase of 65% compared with $70.7 million in 2021. The increase in product revenue was primarily due to $40.9&#160;million higher revenue from Pfizer sales related to the purchase of CDX-616.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development revenue decreased by $12.2 million in 2022 to $21.9 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, or 36% compared with $34.1 million in 2021, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">primarily due to lower license fees from Takeda, decreased revenue from milestone payments received from GSK in 2021 and lower research and development fees from other existing collaboration agreements being recognized in 2022 as compared to the prior year. A portion of our research and development revenue in 2022 and 2021 was paid to us by MAI in the form of additional shares of MAI Series A and Series B preferred stock. We received an aggregate of 1,587,049 and 3,491,505 shares of MAI's Series A and B preferred stock for the years ended December 31, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Costs and Operating Expenses </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.426%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.756%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,209&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(25,224)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,824&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">71&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58,885&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80,099&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,919&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,214)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(26)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,180&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53,250&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">49,323&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,078&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,849&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,167&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">117&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,167&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,984&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,984&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total costs and operating expenses</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,212&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173,471&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">127,451&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(35,259)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46,020&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Costs of Product Revenue and Product Gross Margin</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table shows the amounts of our product revenue, cost of product revenue, product gross profit and product gross margin from our consolidated statements of operations (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:23.900%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.757%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended<br/>December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended<br/>December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(73,770)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,657&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46,019&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of product revenue</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(25,224)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,209&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,824&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product gross profit</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,097&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78,643&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(48,546)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(62)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78,643&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,448&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,195&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product gross margin (%)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Cost of product revenue comprises both internal and third-party fixed and variable costs, including materials and supplies, labor, facilities and other overhead costs associated with our product revenue.</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%">Product gross margin is used as a performance measure to provide additional information regarding our results of operations on a consolidated basis.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">51</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022 </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue decreased by $25.2 million in 2023 to $12.8 million, as compared to 2022. The decrease was primarily due to lower volu</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">me of product sales as compared to prior year. Product gross margins increased to 70% in 2023&#160;as compared to 67% in 2022, primarily due to product revenue recognized with no related costs in 2023 related to the utilization of Pfizer's fee and early termination of an enzyme supply agreement with a customer, and was partially offset by variability in the product mix. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2022 compared to 2021</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue increased by $15.8 million in 2022 to</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $38.0 million, as compared to 2021. The increase was primarily due to a higher volume of product sales and variations in product mix. Product gross margins decreased to 67% in 2022&#160;as compared to 69% in 2021, primarily due to variations in product mix, variation in prices per volume sold and higher shipping costs. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Some of these cost increases are a result of the impact of inflation and supply chain pressures seen in 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses&#160;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects as well as collaborative research and development activities. These costs primarily consist of (i) employee-related costs, which include salaries and other personnel-related expenses (including stock-based compensation), (ii) various allocable expenses, which include occupancy-related costs, supplies, depreciation of facilities and laboratory equipment, and (iii) external costs. Research and development expenses are expensed when incurred. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses were $58.9 million in 2023 compared to $80.1 million in 2022, a decrease of $21.2 million, or 26%. This decrease was primarily due $10.0 million decrease in costs associated with lower headcount, $6.4 million decrease in outside services and Chemistry, Manufacturing and Controls (&#8220;CMC&#8221;) and regulatory expense, $4.1 million in lower lab supplies expense, $1.3 million in lower stock comp expense, and $1.0 million decrease in lease costs due to the assignment of our San Carlos facility lease. These were partially offset by $1.7 million in higher allocable costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2022 compared to 2021 </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses were $80.1 million in 2022 compared to $55.9 million in 2021, an increase of $24.2 million, or 43%. The increase was primarily due to an increase of $7.4&#160;million in costs associated with higher headcount,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $4.8 million in higher facilities and repair and maintenance expenses, $5.3 million increase in outside services and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CMC and regulatory expenses</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $2.6&#160;million in higher lab supplies,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $2.1 million in higher depreciation expenses, $1.1&#160;million in higher stock-based compensation expenses</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.7 million in higher allocable expenses. Some of these cost increases are a result of the impact of inflation seen in 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Selling, General and Administrative Expenses</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#160;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general and administrative expenses consist of employee-related costs, which include salaries and other personnel-related expenses (including stock-based compensation), hiring and training costs, consulting and outside services expenses (including audit and legal counsel related costs), marketing costs, building lease costs, and depreciation expenses and amortization expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general and administrative expenses were $53.3 million in 2023 compared to $52.2 million in 2022, an increase of $1.1 million, or 2%. This increase was primarily due to $3.6 million higher in payroll-based expenses, $0.6 million in higher legal expense, $0.4 million in higher repairs and maintenance expense, and $0.3 million in higher consulting and outside services. This was partially offset by $3.2 million lower stock based compensation expense and $0.4 million in lower allocable expenses.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">52</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2022 compared to 2021</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general and administrative expenses were $52.2 million in 2022 compared to $49.3 million in 2021, an increase of $2.8 million, or 6%. The increase was primarily due to an increase of $6.0 million in costs associated with higher headcount, $1.8 million in higher stock-based compensation costs, $0.8 million in higher outside and temporary services, which was partially offset by a decrease of $3.5 million in allocable expenses due to higher expenses allocated to research and development activities in 2022 and $3.3 million in lower legal fees. Some of these cost increases are a result of the impact of inflation seen in 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restructuring Charges</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restructuring charges consist of employee severance and other termination benefits due to workforce reduction plans that were initiated during the third quarter of 2023 and in the fourth quarter of 2022. Restructuring charges were $3.3 million and $3.2 million for the years ended December&#160;31, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Asset Impairment and Other Charges</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Asset impairment and other charges for the year ended December&#160;31, 2023 were $10.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consisting o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f a $9.2 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> long-lived asset impairment charge and a $0.8 million goodwill impairment charge, all of which are non-cash charges. No asset impairment charges were recorded for the years ended December 31, 2022 or 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Interest Income and Other Income (Expense), net</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:30.917%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.535%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest income</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,172&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,441&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">459&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,731&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">190&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">982&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">214&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other income (expense), net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,274)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,148&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,398)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,998)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,024)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(89)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other income (expense), net</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,102)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,565&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,607&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,667)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(618)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(42)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Interest Income</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest income increased by $2.7 million in 2023 compared to 2022, primarily due to higher average interest rates on cash balances. Interest income increased </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">by $1.0 million in 2022 compared to 2021, primarily due to higher average interest rates on cash balances, and was partially offset by earned interest income on a non-marketable debt security in the prior year. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Income (Expense), net</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other income (expense), net, decreased by $12.4 million in 2023 compared to 2022, primarily due to impairment of our investments in MAI, seqWell and Arzeda. Other income (expense), net, decreased by $1.0 million in 2022 compared to 2021, primarily due to a lower gain from remeasurement on the carrying value of our investment in MAI recognized in 2022 as compared to 2021</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Provision for Income Taxes&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.756%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">189&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(207)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">87&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for income taxes in 2023 was primarily for current year state income taxes and the accrual of interest and penalties on historic uncertain tax positions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for income taxes in&#160;2022 was primarily due to the income tax withholding imposed by foreign taxing authorities on income earned in certain countries outside of the Unites Stated and remitted to the United States and the accrual of interest and penalties on historic uncertain tax positions, as well as current year state income taxes.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">53</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Starting in 2022, changes to Internal Revenue Code Section 174 made by the Tax Cuts and Jobs Act of 2017 no longer permit an immediate deduction for research and development expenditures in the tax year that such costs are incurred. As a result, the Company capitalized such costs in its 2022 income tax provision resulting in an increase in deferred tax assets and state income taxes. However, as we have recorded a full valuation allowance on our deferred tax assets, this did not have an impact on our net deferred tax assets. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for income taxes in 2021 was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">primarily due to the income tax withholding imposed by foreign taxing authorities on income earned in certain countries outside of the Unites Stated and remitted to the United States and the accrual of interest and penalties on historic uncertain tax positions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Net Loss</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net loss for 2023 was $76.2 million, or a net loss per basic and diluted share of $1.12. This compared to a net loss of $33.6 million, or $0.51 per basic and diluted share for 2022. The increase in net loss was primarily related to lower product revenues from CDX-616 and one-time charges recognized during 2023 related to asset impairment, including impairment in our investments in non-marketable equity securities, and restructuring charges, which was partially offset by lower operating expenses in 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net loss for 2022 was $33.6 million, or a net loss per basic and diluted share of $0.51. This compared to a net loss of $21.3 million, or $0.33 per basic and diluted share for 2021. The increase in net loss was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">primarily related to lower research and development revenues and higher operating expenses.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_52"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">LIQUIDITY AND CAPITAL RESOURCES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Liquidity is the measurement of our ability to meet working capital needs and to fund capital expenditures. We have historically funded our operations primarily through cash generated from operations, stock option exercises and public and private offerings of our common stock. In addition, pursuant to the Loan Agreement, we received $30.0 million from Innovatus, as Lender, on February 13, 2024 and may become eligible to borrow up to an additional $10.0 million upon the achievement of certain financial milestones. We actively manage our cash usage and investment of liquid cash to ensure the maintenance of sufficient funds to meet our working capital needs. Our cash and cash equivalents are held in U.S. banks. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our primary uses of capital for the foreseeable future, including the next 12 months, are for compensation and related expenses, research and development expenses including manufacturing costs, laboratory and related supplies, legal and other regulatory expenses, and general overhead costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes our cash and cash equivalents balance and working capital as of December&#160;31, 2023, 2022 and 2021 (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,984&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,797&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Working capital</span></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">57,636&#160;</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,828&#160;</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">128,517&#160;</span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sources of Capital</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to our existing cash and cash equivalents and revenue generated through our existing operations, we are eligible to earn milestone and other contingent payments for the achievement of defined collaboration objectives and certain royalty payments under our collaboration agreements with </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Merck, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Nestl&#233;,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and Novartis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of up to $59.0&#160;million in aggregate. In addition, under the GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement, we have the potential to receive additional contingent payments that range from $5.8&#160;million to $38.5 million per project. Our ability to earn these milestone and contingent payments and the timing of achieving these milestones is primarily dependent upon the outcome of our collaborators&#8217; research and development activities and is uncertain at this time</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">54</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, pursuant to the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $25.9 million in August 2022 </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">which was recorded as deferred revenue. Pursuant to the agreement, 90% of the fee ($23.3 million) is creditable against (i) future orders of CDX-616 used to manufacture </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">its PAXLOVID&#8482; with shipment dates prior to December 31, 2023, and (ii) fees associated with any new development and licensing agreements with Pfizer entered into prior to April&#160;4, 2023. Subsequent to the end of the first quarter of 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $23.3 million credit towards a license to develop future product candidates, for which we recognized $5.0 million as non-cash research and development revenue during the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April&#160;4, 2023. Up to 50% of any portion of the $25.9 million which has not been credited under items (i) and (ii) is creditable against future orders of CDX-616 used to manufacture PAXLOVID&#8482; with shipment dates in 2024, and any portion of the fee that is not utilized within the specific period will be forfeited and recognized as revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have historically experienced negative cash flows from operations as we continue to invest in key technology development projects and improvements to our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform, develop and commercialize new and existing products including our ECO Synthesis&#8482; manufacturing platform and expand our business development and collaboration with new customers. Our cash flows from operations will continue to be affected principally by product sales and product gross margins, sales from licensing our technology to major pharmaceutical companies, and collaborative research and development services provided to customers, as well as our headcount costs, primarily in research and development. Our primary source of cash flows from operating activities is cash receipts from our customers for purchases of products, collaborative research and development services, and licensing our technology to major pharmaceutical companies. Our largest uses of cash from operating activities are for employee-related expenditures, rent payments, inventory purchases to support our product sales and non-payroll research and development costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Loan Agreement and Term Loans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024, we entered into the Loan Agreement with Innovatus consisting of two tranches, of which the first tranche of $30.0 million was completed upon execution of the Loan Agreement. We will be eligible to draw on the second tranche of $10.0 million upon achievement of certain milestones including certain pre-specified revenue thresholds. The </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Term Loan carries an interest-only period of 36 months and will bear an interest at a floating rate of the sum of (a) the greater of (i) prime rate and (ii) 7.50%, plus (b) 3.25%. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Distribution Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we entered into an Equity Distribution </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement (&#8220;EDA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) with Piper Sandler &amp; Co (&#8220;PSC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA, all during the first half of 2023, and we received net proceeds of $7.9 million. As of December&#160;31, 2023, $41.3 million of shares remained available for sale under the EDA. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales of our common stock under this arrangement could be subject to business, economic or competitive unce</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">rtainties and contingencies, many of which may be beyond our control, and which could cause actual results from the sale of our common stock to differ materially from expectations. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Liquidity</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that our existing cash and cash equivalents, combined with our future expectations for product revenues, research and development revenue, and expense management will provide adequate funds for ongoing operations, planned capital expenditures and working capital requirement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s for at least the next 12 months. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have based this estimate on assumptions that may prove to be wrong, and we could utilize our capital resources sooner than we expect. </span></div><div style="text-indent:18pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">55</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">However, we may need additional capital if our current plans and assumptions change. In addition, we may choose to seek other sources of capital even if we believe we have generated sufficient cash flows to support our operating needs. Our need for additional capital will depend on many factors, including the financial success of our business, the spending required to develop and commercialize new and existing products including our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, the effect of any acquisitions of other businesses, technologies or facilities that we may make or develop in the future, our spending on new market opportunities, and the potential costs for the filing, prosecution, enforcement and defense of patent claims, if necessary. If our capital resources are insufficient to meet our capital requirements, and we are unable to enter into or maintain collaborations with partners that are able or willing to fund our development efforts or commercialize any products that we develop or enable, we will have to raise additional funds to continue the development of our technology and products and complete the commercialization of products, if any, resulting from our technologies. If future financings involve the issuance of equity securities, our existing stockholders would suffer dilution. In addition, under our Loan Agreement, we are subject to restrictive covenants that limit our ability to conduct our business and could be subject to additional covenants to the extent we seek other debt financing in the future. We may not be able to raise sufficient additional funds on terms that are favorable to us, if at all. If we fail to raise sufficient funds and fail to generate sufficient revenues to achieve planned gross margins and to control operating costs, our ability to fund our operations, take advantage of strategic opportunities, develop products or technologies, or otherwise respond to competitive pressures could be significantly limited. If this happens, we may be forced to delay or terminate development of new products or services, such as our ECO Synthesis</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> manufacturing platform, or the commercialization of products resulting from our technologies, curtail or cease operations or obtain funds through collaborative and licensing arrangements that may require us to relinquish commercial rights, or grant licenses on terms that are not favorable to us. If adequate funds are not available, we will not be able to successfully execute our business plan or continue our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Cash Flows</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a summary of cash flows for the years ended December&#160;31, 2023, 2022 and 2021 (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.426%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) operating activities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(52,638)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,284&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14,267)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash used in investing activities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,858)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(13,578)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,422)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) financing activities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,167&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(575)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,767&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net decrease in cash, cash equivalents and restricted cash</span></div></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(49,329)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,869)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(31,922)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Flows from Operating Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $63.9 million decrease in net cash provided by operating activities in 2023 as compared to 2022 was primarily due to the net effect of decreases in cash received from our customers due to lower revenue in 2023 and with 2022 benefiting from the receipt of a $25.9 million fee from Pfizer that is creditable against future orders, partially offset by decreases in cash paid for cost of revenues and operating expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $25.6 million increase in net cash provided by operating activities in 2022 as compared to 2021 was primarily due to the receipt of a $25.9 million fee from Pfizer in August 2022 creditable against future orders and increases in cash received from revenue, which was partially offset by increased payments associated with higher operating costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Flows from Investing Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $8.7 million decrease in net cash used in investing activities in 2023 as compared to 2022 was primarily due to higher cash utilized for additional investments in equity securities and purchases of property and equipment in the prior year. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $7.8 million decrease in net cash used in investing activities in 2022 as compared to 2021 was primarily due to higher cash utilized for additional investments in equity securities and purchases of property and equipment in 2021. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Flows from Financing Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $8.7 million increase in net cash provided by financing activities in 2023 as compared to 2022 was primarily due to proceeds from issuance of common stock under the EDA and lower cash paid on taxes related to net share settlement of equity awards.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $4.3 million decrease in net cash provided by financing activities in 2022 as compared to 2021 was primarily due to higher cash paid on taxes related to net share settlement of equity awards and lower proceeds from exercises of stock options.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">56</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_55"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OFF-BALANCE SHEET ARRANGEMENTS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, we had no off-balance sheet arrangements as defined in Item&#160;303 of Regulation S-K as promulgated by the SEC.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_58"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CRITICAL ACCOUNTING POLICIES AND ESTIMATES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management&#8217;s discussion and analysis of our financial condition and results of operations are based upon our consolidated financial statements. The consolidated financial statements have been prepared in conformity with generally accepted accounting principles in the United States and include our accounts and the accounts of our wholly owned subsidiaries. The preparation of our consolidated financial statements requires our management to make estimates, assumptions, and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the applicable periods. Management bases its estimates, assumptions and judgments on historical experience and on various other factors that are believed to be reasonable under the circumstances. Different assumptions and judgments would change the estimates used in the preparation of our consolidated financial statements, which, in turn, could change the results from those reported. Our management evaluates its estimates, assumptions and judgments on an ongoing basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The critical accounting policies requiring estimates, assumptions, and judgments that we believe have the most significant impact on our consolidated financial statements are described below.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. The majority of our contracts with customers typically contain multiple products and services. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available under the Accounting Standards Codification (&#8220;ASC&#8221;) 606, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimate of future goods to be ordered by customers change. Estimating expected consideration to be received under the alternative approach involves significant judgment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue recognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">57</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. If we determine that the customer cannot benefit from the license without our services, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct, we would recognize an allocable portion of the transaction price when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> platform technology transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have an agreement under which we have granted a functional license to some elements of our biocatalyst technology. We will recognize revenues for the functional license at a point in time when the control of the license transfers to the customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us for which the license is the predominant item to which the royalty relates, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investment in Non-Marketable Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in other income (expense), net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in estimated fair value of the debt or equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">58</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with the future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measure by the amount by which the carrying amount of the asset exceeds the fair value of the asset.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recent Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 2, &#8220;Basis of Presentation and Summary of</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant Accounting Policies&#8221; in the Notes to the Consolidated Financial Statements set forth in Item 8 of this Annual Report on Form 10-K for a full description of recent accounting standards, including the respective dates of adoption and effects on our consolidated financial position, results of operations and cash flows.</span></div><div style="margin-top:9pt;text-align:justify;text-indent:18pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">59</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_61"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 7A. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Interest Rate Sensitivity</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our unrestricted cash and cash equivalents total $65.1 million at December&#160;31, 2023. We primarily invest these amounts in money market funds which are held for working capital purposes. We do not enter into investments for trading or speculative purposes. As of December&#160;31, 2023, the effect of a hypothetical 10% decrease in market interest rates would have an $0.3 million impact on a potential loss in future interest income and cash flows.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Foreign Currency Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our results of operations and cash flows are subject to fluctuations due to changes in foreign currency exchange rates. In periods when the United States dollar (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">USD&#8221;) declines in value as compared to the foreign currencies in which we incur expenses, our foreign-currency based expenses increase when translated into USD. Although substantially all of our sales are denominated in USD, future fluctuations in the value of the USD may affect the price competitiveness of our products outside the United States. Our most significant foreign currency exposure is due to non-functional currency denominated monetary assets, primarily currencies denominated in other than their functional currency. These non-functional currency denominated monetary assets are subject to re-measurement which may create fluctuations in other expense, net, a component in our consolidated statement of operations and in the fair value of the assets in the consolidated balance sheets. As of December&#160;31, 2023, the effect of a hypothetical 10% unfavorable change in exchange rates on currencies denominated in other than their functional currency would result in a potential loss in future earnings in our consolidated statement of operations and a reduction in the fair value of the assets of approximately $41 thousand.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We own investments in non-marketable equity securities without readily determinable fair values. We may value these equity securities based on significant recent arms-length equity transactions with sophisticated non-strategic unrelated investors, providing the terms of these security transactions are substantially similar to the security transactions terms between the investors and us. The impact of the difference in transaction terms on the market value of the portfolio company may be difficult or impossible to quantify.</span></div><div style="margin-top:9pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">60</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_64"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 8. FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="margin-bottom:9pt;margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INDEX TO CONSOLIDATED FINANCIAL STATEMENTS</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:93.783%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.017%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_67">Reports of Independent Registered Public Accounting Firm</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (<ix:nonNumeric contextRef="c-1" name="dei:AuditorName" id="f-36">BDO USA, P.C.</ix:nonNumeric>; <ix:nonNumeric contextRef="c-1" name="dei:AuditorLocation" id="f-37">San Francisco, CA</ix:nonNumeric>; PCAOB ID: <ix:nonNumeric contextRef="c-1" name="dei:AuditorFirmId" id="f-38">243</ix:nonNumeric>)</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_67">62</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_70">Consolidated Balance Sheets</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_70">65</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_73">Consolidated Statements of Operations</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_73">66</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_76">Consolidated Statements of Stockholders' Equity</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_76">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_79">Consolidated Statements of Cash Flows</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_79">68</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_82">Notes to Consolidated Financial Statements</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i70607d03f9f5419aaea4a3a37e686ae9_82">69</a></span></div></td></tr></table></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">61</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_67"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Report of Independent Registered Public Accounting Firm</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shareholders and Board of Directors</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Codexis, Inc.</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Redwood City, California</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Opinion on the Consolidated Financial Statements </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the accompanying consolidated balance sheets of Codexis, Inc. (the "Company") as of December&#160;31, 2023 and 2022, the related consolidated statements of operations, stockholders&#8217; equity, and cash flows for each of the three years in the period ended December&#160;31, 2023, and the related notes (collectively referred to as the &#8220;consolidated financial statements&#8221;). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company at December&#160;31, 2023 and 2022, and the results of its operations and its cash flows for each of the three years in the period ended December&#160;31, 2023, in conformity with accounting principles generally accepted in the United States of America.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the Company's internal control over financial reporting as of December&#160;31, 2023, based on criteria established in Internal Control &#8211; Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;) and our report dat</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed February&#160;28, 2024 expressed an unqualified opinion thereon.</span></div><div style="margin-top:9pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis for Opinion</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These consolidated financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on the Company&#8217;s consolidated financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Critical Audit Matter</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of a critical audit matter does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing separate opinions on the critical audit matter or on the accounts or disclosures to which it relates.</span></div><div style="margin-top:9pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As described in Notes 2, 3 and 5 to the consolidated financial statements, the Company enters into contracts with customers that include enzyme supply, licensing, and collaborative research and development agreements. Certain contracts with customers may contain multiple performance obligations, options, up-front and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage. The Company recognizes revenue in a manner that best depicts the transfer of promised goods or services to the customer when control of the product or service is transferred to a customer. The Company makes significant judgments in determining revenue recognition for certain customer contracts. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We identified the evaluation of management&#8217;s accounting for revenue from certain new and amended contracts with customers as a critical audit matter due to significant judgments and estimates involved in the identification of distinct performance obligations, allocation of transaction price to distinct performance obligations, determination and estimation of material rights, determination of the pattern of transfer of control for each distinct performance obligation and estimation of variable consideration. Auditing these elements involved especially subjective and complex auditor judgments due to the nature and extent of audit effort required. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">62</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The primary procedures we performed to address this critical audit matter included: </span></div><div style="margin-top:9pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Testing the design, implementation and operating effectiveness of internal controls relating to the Company's accounting for certain new and amended revenue contracts, including controls over identification of distinct performance obligations and material rights, the determination of the timing of revenue recognition, allocation of transaction price to distinct performance obligations, and the estimation of variable consideration. </span></div><div style="margin-top:3pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Examining a sample of these contracts to test management's identification of significant terms for completeness, including the identification of distinct performance obligations, material rights and variable consideration.</span></div><div style="margin-top:3pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Evaluating the reasonableness and accuracy of management&#8217;s judgments and estimates used in identification and accounting for material rights.</span></div><div style="margin-top:3pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Assessing the reasonableness of management&#8217;s judgments and estimates to calculate variable consideration, and the timing of recognizing the related revenue subject to any constraints.</span></div><div style="margin-top:3pt;padding-left:54pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Evaluating the appropriateness of management&#8217;s allocation of the transaction price to the distinct performance obligations and determination of whether identified performance obligations meet the criteria for over-time revenue recognition.</span></div><div style="margin-top:9pt;text-align:justify"><span><br/></span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ BDO USA, P.C.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have served as the Company's auditor since 2013.</span></div><div style="margin-top:9pt;text-align:justify"><span><br/></span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">San Francisco, California</span></div><div style="margin-top:3pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;28, 2024 </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">63</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Report of Independent Registered Public Accounting Firm</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shareholders and Board of Directors </span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Codexis, Inc.</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Redwood City, California</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Opinion on Internal Control over Financial Reporting</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited Codexis, Inc.&#8217;s (the &#8220;Company&#8217;s&#8221;) internal control over financial reporting as of December&#160;31, 2023, based on criteria established in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control &#8211; Integrated Framework (2013)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by the Committee of Sponsoring Organizations of the Treadway Commission (the &#8220;COSO criteria&#8221;). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December&#160;31, 2023, based on the COSO criteria</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the consolidated balance sheets of the Company as of December&#160;31, 2023 and 2022, the related consolidated statements of operations, stockholders&#8217; equity, and cash flows for each of the three years in the period ended December&#160;31, 2023, and the related notes and our report dated February&#160;28, 2024 expressed an unqualified opinion thereon.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis for Opinion</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s management is responsible for maintaining effective internal control over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying &#8220;Item 9A, Controls and Procedures&#8221;. Our responsibility is to express an opinion on the Company&#8217;s internal control over financial reporting based on our audit. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We conducted our audit of internal control over financial reporting in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial reporting was maintained in all material respects. Our audit included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, and testing and evaluating the design and operating effectiveness of internal control based on the assessed risk. Our audit also included performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Definition and Limitations of Internal Control over Financial Reporting</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A company&#8217;s internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles. A company&#8217;s internal control over financial reporting includes those policies and procedures that (1) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors of the company; and (3) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company&#8217;s assets that could have a material effect on the financial statements.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate. </span></div><div style="margin-top:9pt;text-align:justify"><span><br/></span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ BDO USA, P.C.</span></div><div style="margin-top:3pt;text-align:justify"><span><br/></span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">San Francisco, California</span></div><div style="margin-top:3pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;28, 2024</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">64</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_70"></div><hr style="page-break-after:always"/><div style="min-height:0pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:3pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consolidated Balance Sheets</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands, Except Per Share Amounts)</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:72.761%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.675%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.387%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.677%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Assets</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current assets:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-39">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-40">113,984</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restricted cash, current</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestrictedCash" scale="3" id="f-41">519</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestrictedCash" scale="3" id="f-42">521</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Financial assets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-43">10,036</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-44">31,904</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" scale="3" id="f-45">815</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" format="ixt:num-dot-decimal" scale="3" id="f-46">2,116</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-47">9,142</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnbilledContractsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-48">7,016</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 43pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total financial assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NotesReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-49">19,993</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NotesReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-50">41,036</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 55pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: allowances</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-51">65</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-52">163</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 43pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total financial assets, net</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsNotesAndLoansReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-53">19,928</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsNotesAndLoansReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-54">40,873</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-55">2,685</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-56">2,029</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-57">5,218</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-58">5,487</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total current assets</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-59">93,466</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-60">162,894</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restricted cash</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestrictedCashNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-61">1,062</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestrictedCashNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-62">1,521</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investment in non-marketable equity securities ($<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="0" id="f-63">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-64">13,921</ix:nonFraction> with a related party)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-65">9,700</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-66">20,510</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-67">13,137</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-68">39,263</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-69">15,487</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-70">22,614</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-71">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-72">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other non-current assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-73">1,246</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="f-74">350</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-75">136,561</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-76">250,393</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liabilities and Stockholders&#8217; Equity</span></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-77">5,947</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-78">3,246</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-79">11,246</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-80">11,453</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other accrued liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-81">4,735</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-82">15,279</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-83">3,781</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-84">5,360</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-85">10,121</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-86">13,728</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total current liabilities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-87">35,830</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-88">49,066</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred revenue, net of current portion</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" scale="3" id="f-89">640</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-90">16,881</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-91">12,243</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-92">38,278</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other long-term liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-93">1,233</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-94">1,371</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total liabilities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-95">49,946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-96">105,596</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Commitments and contingencies (Note 13)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-4" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-97"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-5" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-98"></ix:nonFraction></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stockholders&#8217; equity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Preferred stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-99"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-100">0.0001</ix:nonFraction></ix:nonFraction> par value per share; <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-101"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-102">5,000</ix:nonFraction></ix:nonFraction> shares authorized, <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt:fixed-zero" scale="3" id="f-103"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt:fixed-zero" scale="3" id="f-104"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt:fixed-zero" scale="3" id="f-105"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt:fixed-zero" scale="3" id="f-106">none</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> issued and outstanding</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PreferredStockValue" format="ixt:fixed-zero" scale="3" id="f-107">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PreferredStockValue" format="ixt:fixed-zero" scale="3" id="f-108">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Common stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-109"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-110">0.0001</ix:nonFraction></ix:nonFraction> par value per share; <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-111"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-112">200,000</ix:nonFraction></ix:nonFraction> shares authorized; <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-113"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-114">69,905</ix:nonFraction></ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-115"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-116">65,811</ix:nonFraction></ix:nonFraction> shares issued and outstanding at December&#160;31, 2023 and December&#160;31, 2022, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CommonStockValue" scale="3" id="f-117">7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CommonStockValue" scale="3" id="f-118">6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additional paid-in capital</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AdditionalPaidInCapital" format="ixt:num-dot-decimal" scale="3" id="f-119">584,138</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AdditionalPaidInCapital" format="ixt:num-dot-decimal" scale="3" id="f-120">566,081</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accumulated deficit</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-121">497,530</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-122">421,290</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total stockholders&#8217; equity</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-123">86,615</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-124">144,797</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total liabilities and stockholders&#8217; equity</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-125">136,561</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-126">250,393</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="padding-left:36pt;padding-right:36pt;text-align:center;text-indent:4.5pt"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="height:27pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">65</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_73"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.<br/>Consolidated Statements of Operations</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands, Except Per Share Amounts)</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Product revenue </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">($<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-127">0</ix:nonFraction>,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> $<ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-128">514</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-129">0</ix:nonFraction> from a related party)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-130">42,906</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-12" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-131">116,676</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-132">70,657</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development revenue ($<ix:nonFraction unitRef="usd" contextRef="c-14" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-133">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-134">1,245</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-135">1,955</ix:nonFraction> from a related party)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-136">27,237</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-137">21,914</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-138">34,097</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-139">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-140">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-141">104,754</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Costs and operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-142">12,809</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-143">38,033</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-144">22,209</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-145">58,885</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-146">80,099</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-147">55,919</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-148">53,250</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-149">52,172</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-150">49,323</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-151">3,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-152">3,167</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-153">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:AssetImpairmentAndOtherCharges" format="ixt:num-dot-decimal" scale="3" id="f-154">9,984</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="cdxs:AssetImpairmentAndOtherCharges" format="ixt:fixed-zero" scale="3" id="f-155">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="cdxs:AssetImpairmentAndOtherCharges" format="ixt:fixed-zero" scale="3" id="f-156">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total costs and operating expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostsAndExpenses" format="ixt:num-dot-decimal" scale="3" id="f-157">138,212</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:CostsAndExpenses" format="ixt:num-dot-decimal" scale="3" id="f-158">173,471</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:CostsAndExpenses" format="ixt:num-dot-decimal" scale="3" id="f-159">127,451</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss from operations</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-160">68,069</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-161">34,881</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-162">22,697</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Interest income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InvestmentIncomeInterest" format="ixt:num-dot-decimal" scale="3" id="f-163">4,172</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:InvestmentIncomeInterest" format="ixt:num-dot-decimal" scale="3" id="f-164">1,441</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:InvestmentIncomeInterest" scale="3" id="f-165">459</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other income (expense), net ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-166">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-167">208</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-168">983</ix:nonFraction> from a related party)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" format="ixt:num-dot-decimal" scale="3" id="f-169">12,274</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-170">124</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" format="ixt:num-dot-decimal" scale="3" id="f-171">1,148</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-172">76,171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-173">33,316</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-174">21,090</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-175">69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-176">276</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-177">189</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-178">76,240</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-179">33,592</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-180">21,279</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss per share, basic and diluted</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-181"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-182">1.12</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-20" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-183"><ix:nonFraction unitRef="usdPerShare" contextRef="c-20" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-184">0.51</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-21" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-185"><ix:nonFraction unitRef="usdPerShare" contextRef="c-21" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-186">0.33</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted average common stock shares used in computing net loss per share, basic and diluted</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-187"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-188">68,131</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-20" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-189"><ix:nonFraction unitRef="shares" contextRef="c-20" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-190">65,344</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-21" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-191"><ix:nonFraction unitRef="shares" contextRef="c-21" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-192">64,568</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="height:42.7pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">66</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_76"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.<br/>Consolidated Statements of Stockholders&#8217; Equity</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands)</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:41.151%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.987%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.987%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.449%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.449%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.457%"/><td style="width:0.1%"/></tr><tr style="height:18pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common Stock</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Additional<br/>Paid-in<br/>Capital</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated<br/>Deficit</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total<br/>Stockholders&#8217;<br/>Equity&#160;</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Shares</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2020</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-25" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-193">64,283</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-194">6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-26" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-195">536,516</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-27" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-196">366,419</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-197">170,103</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercise of stock options</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-29" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-198">699</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-30" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-199">5,180</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-200">5,180</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Release of stock awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-29" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesOther" scale="3" id="f-201">181</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Employee stock-based compensation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-31" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-202">11,346</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-203">11,346</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-employee stock-based compensation</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="f-204">247</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-34" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="f-205">247</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-29" decimals="-3" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="3" id="f-206">54</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-30" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-207">1,206</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-208">1,206</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-209">21,279</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-210">21,279</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-36" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-211">65,109</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-36" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-212">6</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-213">552,083</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-38" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-214">387,698</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-215">164,391</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercise of stock options</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-40" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-216">410</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-41" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-217">955</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-218">955</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Release of stock awards</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-40" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesOther" scale="3" id="f-219">373</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Employee stock-based compensation</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-42" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-220">14,398</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-43" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-221">14,398</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-employee stock-based compensation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="f-222">133</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-45" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="f-223">133</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-40" decimals="-3" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="3" id="f-224">81</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-41" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-225">1,488</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-226">1,488</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-46" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-227">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-228">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-47" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-229">65,811</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-230">6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-48" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-231">566,081</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-49" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-232">421,290</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-233">144,797</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercise of stock options</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-50" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-234">283</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-51" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-235">559</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-236">559</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Release of stock awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-50" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesOther" scale="3" id="f-237">796</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Employee stock-based compensation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-52" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-238">9,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-53" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-239">9,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-employee stock-based compensation</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-54" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="f-240">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-55" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="f-241">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock, net of issuance costs of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsOfStockIssuanceCosts" scale="3" id="f-242">721</ix:nonFraction></span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-50" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-243">3,080</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-50" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" scale="3" id="f-244">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-51" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-245">7,931</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-246">7,932</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-50" decimals="-3" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="3" id="f-247">65</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-51" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="f-248">404</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="f-249">404</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-250">76,240</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-251">76,240</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-57" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-252">69,905</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-253">7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-254">584,138</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-255">497,530</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-256">86,615</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;padding-left:7.87pt;padding-right:7.87pt;text-align:center;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements </span></div><div style="text-align:center"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">67</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_79"></div><hr style="page-break-after:always"/><div style="min-height:40.5pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consolidated Statements of Cash Flows</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands)</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:58.750%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.885%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.885%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.886%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Operating activities:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-257">76,240</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-258">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-259">21,279</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Adjustments to reconcile net loss to net cash provided by (used in) operating activities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-260">5,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-261">5,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-262">3,113</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Amortization expense - right-of-use assets - operating and finance leases</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-263">4,405</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-264">4,849</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-265">2,834</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-266">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-267">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-268">11,593</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Provision (recovery) for credit losses</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-269">65</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-270">4</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-271">342</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Equity securities earned from research and development activities ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:OtherNoncashIncome" scale="3" id="f-272">0</ix:nonFraction>, ($<ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:num-dot-decimal" scale="3" id="f-273">1,245</ix:nonFraction>), and ($<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:num-dot-decimal" scale="3" id="f-274">1,955</ix:nonFraction>) from a related party)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherNoncashIncome" scale="3" id="f-275">213</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:num-dot-decimal" scale="3" id="f-276">1,245</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:num-dot-decimal" scale="3" id="f-277">1,955</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Unrealized gain on non-marketable securities ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-278">0</ix:nonFraction>, ($<ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" sign="-" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-279">208</ix:nonFraction>), and ($<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" sign="-" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-280">983</ix:nonFraction>) from a related party)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" format="ixt:fixed-zero" scale="3" id="f-281">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-282">208</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" format="ixt:num-dot-decimal" scale="3" id="f-283">1,272</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:AssetImpairmentAndOtherCharges" format="ixt:num-dot-decimal" scale="3" id="f-284">9,984</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="cdxs:AssetImpairmentAndOtherCharges" format="ixt:fixed-zero" scale="3" id="f-285">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="cdxs:AssetImpairmentAndOtherCharges" format="ixt:fixed-zero" scale="3" id="f-286">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Impairment of investment in non-marketable securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="3" id="f-287">12,215</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:fixed-zero" scale="3" id="f-288">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:fixed-zero" scale="3" id="f-289">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Other non-cash items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" scale="3" id="f-290">4</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" scale="3" id="f-291">29</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" scale="3" id="f-292">19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Changes in operating assets and liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Financial assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInFinanceReceivables" format="ixt:num-dot-decimal" scale="3" id="f-293">20,247</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncreaseDecreaseInFinanceReceivables" format="ixt:num-dot-decimal" scale="3" id="f-294">3,225</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncreaseDecreaseInFinanceReceivables" format="ixt:num-dot-decimal" scale="3" id="f-295">9,156</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="f-296">656</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="f-297">869</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="f-298">196</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Prepaid expenses and other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="f-299">865</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="f-300">181</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-301">2,268</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-302">2,287</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="f-303">207</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="f-304">268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Accrued compensation and other accrued liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-305">14,041</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-306">5,983</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-307">6,575</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Other long-term liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-308">5,341</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-309">5,223</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-310">4,147</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:30pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Deferred revenue ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="f-311">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="f-312">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="f-313">245</ix:nonFraction> to a related party)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-314">19,848</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-315">24,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-316">1,300</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net cash provided by (used in) operating activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-317">52,638</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-318">11,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-319">14,267</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Investing activities:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Purchase of property and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-320">4,418</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-321">8,307</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-322">13,828</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from sale of property and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="f-323">751</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="f-324">29</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="f-325">36</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Investment in non-marketable securities ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" scale="3" id="f-326">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" scale="3" id="f-327">0</ix:nonFraction>, and ($<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="3" id="f-328">7,630</ix:nonFraction>) in a related party)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="3" id="f-329">1,191</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="3" id="f-330">5,300</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="3" id="f-331">7,630</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net cash used in investing activities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-332">4,858</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-333">13,578</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-334">21,422</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Financing activities:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from exercises of stock options</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="f-335">422</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="f-336">955</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-337">5,180</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from issuance of common stock in connection with public offering</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-338">8,652</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfCommonStock" format="ixt:fixed-zero" scale="3" id="f-339">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfCommonStock" format="ixt:fixed-zero" scale="3" id="f-340">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Costs incurred in connection with issuance of common stock at public offering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsOfFinancingCosts" scale="3" id="f-341">503</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:PaymentsOfFinancingCosts" scale="3" id="f-342">42</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:PaymentsOfFinancingCosts" scale="3" id="f-343">207</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="f-344">404</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-345">1,488</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-346">1,206</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net cash provided by (used in) financing activities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-347">8,167</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="f-348">575</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-349">3,767</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net decrease in cash, cash equivalents and restricted cash</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-350">49,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-351">2,869</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-352">31,922</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Cash, cash equivalents and restricted cash at the beginning of the year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-353">116,026</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-354">118,895</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-355">150,817</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Cash, cash equivalents and restricted cash at the end of the year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-356">66,697</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-357">116,026</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-358">118,895</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Supplemental disclosure of cash flow information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Interest paid</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InterestPaidNet" scale="3" id="f-359">44</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:InterestPaidNet" scale="3" id="f-360">34</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:InterestPaidNet" scale="3" id="f-361">14</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Income taxes</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="f-362">194</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="f-363">100</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="f-364">102</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Supplemental non-cash investing and financing activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Capital expenditures incurred but not yet paid</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" format="ixt:num-dot-decimal" scale="3" id="f-365">1,068</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" scale="3" id="f-366">897</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" format="ixt:num-dot-decimal" scale="3" id="f-367">2,533</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides a reconciliation of cash, cash equivalents and restricted cash reported within the consolidated balance sheets to the total of the same such amounts shown above (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-368">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-369">113,984</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-370">116,797</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restricted cash, current and non-current </span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-371">1,581</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-372">2,042</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-373">2,098</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total cash, cash equivalents and restricted cash at the end of the period</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-374">66,697</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-375">116,026</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-376">118,895</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="height:40.5pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">68</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_82"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="margin-top:5pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Consolidated Financial Statements</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_85"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 1. <ix:nonNumeric contextRef="c-1" name="us-gaap:NatureOfOperations" id="f-377" continuedAt="f-377-1" escape="true">Description of Business </ix:nonNumeric></span></div><ix:continuation id="f-377-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In these notes to the consolidated financial statements, the &#8220;Company,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;we,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;us,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and &#8220;our</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> refers to Codexis, Inc. and its subsidiaries on a consolidated basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins leveraging our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">directed evolution technology platform. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as <ix:nonFraction unitRef="segment" contextRef="c-20" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-378">two</ix:nonFraction> business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our Chief Executive Officer (&#8220;CEO&#8221;), our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocates resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-379">one</ix:nonFraction> reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous <ix:nonFraction unitRef="segment" contextRef="c-20" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-380">two</ix:nonFraction> segments' information have been revised to conform to this change in our reportable segment.</span></div></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_88"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 2. <ix:nonNumeric contextRef="c-1" name="us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" id="f-381" continuedAt="f-381-1" escape="true">Basis of Presentation and Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="f-381-1" continuedAt="f-381-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" id="f-382" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) and the applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:UseOfEstimates" id="f-383" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="f-384" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Foreign Currency Translation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="f-385" continuedAt="f-385-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. The majority of our contracts with customers typically contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">69</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-385-1" continuedAt="f-385-2"><ix:continuation id="f-381-2" continuedAt="f-381-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a description of principal activities from which we generate revenue:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer typically upon shipment or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#8217;s use. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">70</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-385-2" continuedAt="f-385-3"><ix:continuation id="f-381-3" continuedAt="f-381-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success. For licenses that have been previously sold to other customers, we use historical information to determine SSP.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Practical Expedients, Elections, and Exemptions</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to treat shipping and handling activities as fulfillment costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to record revenue net of sales and other similar taxes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Assets </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. </span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">71</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-381-4" continuedAt="f-381-5"><ix:continuation id="f-385-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Costs</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:ShippingAndDistributionCost" format="ixt:num-dot-decimal" scale="6" id="f-386">1.0</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="cdxs:ShippingAndDistributionCost" format="ixt:num-dot-decimal" scale="6" id="f-387">3.0</ix:nonFraction>&#160;million, and $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-5" name="cdxs:ShippingAndDistributionCost" format="ixt:num-dot-decimal" scale="6" id="f-388">1.8</ix:nonFraction>&#160;million for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Research and Development Services</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ResearchAndDevelopmentExpensePolicy" id="f-389" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="f-390" continuedAt="f-390-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Advertising</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-390-1">Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations.</ix:continuation> Advertising costs were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="6" id="f-391"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-5" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="6" id="f-392"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="6" id="f-393">0.3</ix:nonFraction></ix:nonFraction></ix:nonFraction> million for each of the years ended December 31, 2023, 2022 and 2021.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="f-394" continuedAt="f-394-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">72</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-381-5" continuedAt="f-381-6"><ix:continuation id="f-394-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restricted Stock Units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSUs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), Restricted Stock Awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs&#8221;) and performance-contingent restricted stock units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PSUs&#8221;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PBOs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" id="f-395" continuedAt="f-395-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash and Cash Equivalents</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-395-1">We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" id="f-396" continuedAt="f-396-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Cash</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-396-1" continuedAt="f-396-2">In 2016, we began the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations.</ix:continuation> This balance is recorded as current restricted cash on the consolidated balance sheets of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:RestrictedCashCurrent" format="ixt:num-dot-decimal" scale="6" id="f-397"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:RestrictedCashCurrent" format="ixt:num-dot-decimal" scale="6" id="f-398">0.5</ix:nonFraction></ix:nonFraction> million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2023 and 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-396-2">Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-5" name="us-gaap:RestrictedCashNoncurrent" format="ixt:num-dot-decimal" scale="6" id="f-399">1.1</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-5" name="us-gaap:RestrictedCashNoncurrent" format="ixt:num-dot-decimal" scale="6" id="f-400">1.5</ix:nonFraction>&#160;million as of&#160;December&#160;31, 2023 and 2022, respectively. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets.</ix:continuation> For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221; </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="f-401" continuedAt="f-401-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fair Value Measurements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#8217;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life. </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">73</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-381-6" continuedAt="f-381-7"><ix:continuation id="f-401-1"><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#8217;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ConcentrationRiskCreditRisk" id="f-402" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Credit Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2023, we h</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ad four customers that accounted for <ix:nonFraction unitRef="number" contextRef="c-62" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-403">58</ix:nonFraction>% of our ac</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">counts receivable balance. As of December&#160;31, 2022, two customers accounted for <ix:nonFraction unitRef="number" contextRef="c-63" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-404">63</ix:nonFraction>% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" id="f-405" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Financial Assets and Allowances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#8220;current expected credit loss model&#8221; or &#8220;CECL&#8221;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#8220;ACL&#8221;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" id="f-406" continuedAt="f-406-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unbilled Receivable</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-406-1">The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryPolicyTextBlock" id="f-407" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="cdxs:ConcentrationRiskSupplyRiskPolicyTextBlock" id="f-408" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Supply Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">-</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">74</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-381-7" continuedAt="f-381-8"><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="f-409" continuedAt="f-409-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="f-410" continuedAt="f-410-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:1.979%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.820%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.820%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.981%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-64" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-411">5</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-65" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-412">3</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-66" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-413">5</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div></ix:nonNumeric><ix:continuation id="f-409-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" id="f-414" continuedAt="f-414-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><ix:continuation id="f-414-1" continuedAt="f-414-2"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span></ix:continuation><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-414-2">ee Note 8, &#8220;Balance Sheets Details&#8221; and Note 13, &#8220;Commitments and Contingencies.&#8221;</ix:continuation> <ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="us-gaap:ImpairmentOfLongLivedAssetsHeldForUse" format="ixt:fixed-zero" scale="0" id="f-415">No</ix:nonFraction> impairment charges for long-lived assets were recorded during the year ended December 31, 2022.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentPolicyTextBlock" id="f-416" continuedAt="f-416-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in other income (expense), net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an "other-than-temporary&#8221; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-416-1">The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.</ix:continuation> For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 6, &#8220;Investments in Non-Marketable Securities.&#8221;</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">75</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-381-8" continuedAt="f-381-9"><ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="f-417" continuedAt="f-417-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment considering amongst other things, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="6" id="f-418">2.5</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="6" id="f-419">3.2</ix:nonFraction>&#160;million as of December&#160;31, 2023 and 2022, respectively. </span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><ix:continuation id="f-417-1" continuedAt="f-417-2"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative "Step 0" assessment based on reviewing relevant events and circumstances; or a quantitative "Step 1" assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. We recorded impairment charges related to goodwill of $<ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="6" id="f-420">0.8</ix:nonFraction>&#160;million, <ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-421">nil</ix:nonFraction>, and <ix:nonFraction unitRef="usd" contextRef="c-69" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-422">nil</ix:nonFraction> for the years ended December&#160;31, 2023, 2022, and 2021, respectively. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span></ix:continuation><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-417-2">ee Note 8, &#8220;Balance Sheets Details.&#8221;</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeLeasesPolicyTextBlock" id="f-423" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease Accounting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxPolicyTextBlock" id="f-424" continuedAt="f-424-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. We have recorded a valuation allowance against these deferred tax assets in jurisdictions where ultimate realization of deferred tax assets is more likely than not to occur. As of December&#160;31, 2023 and 2022, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">76</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-381-9"><ix:continuation id="f-424-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) 2009-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#8217;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#8220;NOL</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="f-425" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aside from those recently issued accounting pronouncements not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2023 that are of significance or potential significance to us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, the Financial Accounting Standards Board (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">FASB</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) issued ASU No. 2023-09,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to benefit investors by providing more detailed income tax disclosures that would be useful in making capital allocation decisions. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, FASB issued ASU No. 2023-07,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2023, FASB issued ASU No. 2023-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Disclosure Improvements: Codification Amendments in Response to the SEC&#8217;s Disclosure Update and Simplification Initiative</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the Accounting Standards Codification (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#8217;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_91"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 3.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="f-426" continuedAt="f-426-1" escape="true"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></ix:nonNumeric></div><ix:continuation id="f-426-1" continuedAt="f-426-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Disaggregation of Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China). </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">77</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-426-2" continuedAt="f-426-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="f-427" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disaggregated information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-428">42,906</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-12" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-429">116,676</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-430">70,657</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-431">27,237</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-432">21,914</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-433">34,097</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-434">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-435">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-436">104,754</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-437">13,733</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-438">17,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-439">23,481</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-440">22,907</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-441">56,540</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-442">20,187</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-443">33,503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-444">65,050</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-445">61,086</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-446">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-447">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-448">104,754</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For additional information regarding revenue disaggregated by geography, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Balances</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="f-449" continuedAt="f-449-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" scale="3" id="f-450">815</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" format="ixt:num-dot-decimal" scale="3" id="f-451">2,116</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnbilledContractsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-452">9,904</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnbilledContractsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-453">7,016</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract costs</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CapitalizedContractCostNetCurrent" format="ixt:fixed-zero" scale="3" id="f-454">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CapitalizedContractCostNetCurrent" scale="3" id="f-455">19</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-456">10,761</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-457">30,609</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable when we have an unconditional right to recognize revenue and have issued an invoice to the customer. Our payment terms are generally between <ix:nonNumeric contextRef="c-79" name="cdxs:RevenueFromContractWithCustomerPaymentTerms" format="ixt-sec:durday" id="f-458">30</ix:nonNumeric> and <ix:nonNumeric contextRef="c-80" name="cdxs:RevenueFromContractWithCustomerPaymentTerms" format="ixt-sec:durday" id="f-459">90</ix:nonNumeric> days. We recognize unbilled receivables when we have an unconditional right to recognize revenue and have not issued an invoice to our customer. Unbilled receivables are transferred to accounts receivable on issuance of an invoice. Unbilled receivables are classified separately on the consolidated balance sheets as an asset. We maintain a valuation allowance on accounts receivables and unbilled receivables. As of December 31, 2023, we have $<ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" format="ixt:num-dot-decimal" scale="6" id="f-460">9.1</ix:nonFraction> million of short-term unbilled receivables presented as unbilled receivables within current assets and $<ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" format="ixt:num-dot-decimal" scale="6" id="f-461">0.8</ix:nonFraction> million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. As of December 31, 2022, we had $<ix:nonFraction unitRef="usd" contextRef="c-83" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" format="ixt:num-dot-decimal" scale="6" id="f-462">7.0</ix:nonFraction> million of short-term unbilled receivables presented as unbilled receivables within current asset. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets represent our right to recognize revenue for custom products with no alternate use and under binding non-cancellable contracts and are largely related to our procurement of product. We recognize contract assets when we have a conditional right to recognize revenue. The transfer of control of certain products occurs in advance of the invoicing process, which generates contract assets. In addition, we recognize a contract asset related to milestones not eligible for royalty accounting when we assess it is probable of being achieved and there will be no significant reversal of cumulative revenues. Contract assets are classified separately on the consolidated balance sheets as an asset and transferred to accounts receivables when our rights to payment become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities, or deferred revenue, represent our obligation to transfer a product or service to the customer, and for which we have received consideration from the customer. We recognize a contract liability when we receive advance customer payments under development agreements for research and development services, upfront license payments, and from upfront customer payments received under product supply agreements. Contract liabilities are classified as a liability on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract costs relate to incremental costs of obtaining a contract with a customer. Contract costs are amortized along with the associated revenue over the term of the contract. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2023, 2022 and 2021, we had <ix:nonFraction unitRef="usd" contextRef="c-1" decimals="INF" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" format="ixt:fixed-zero" scale="0" id="f-463"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="INF" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" format="ixt:fixed-zero" scale="0" id="f-464"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="INF" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" format="ixt:fixed-zero" scale="0" id="f-465">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> asset impairment charges related to contract assets. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">78</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-426-3"><ix:continuation id="f-449-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized the following revenues (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-466">17,937</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-467">2,038</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" format="ixt:num-dot-decimal" scale="3" id="f-468">4,165</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" scale="3" id="f-469">279</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" format="ixt:num-dot-decimal" scale="3" id="f-470">48,041</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" format="ixt:num-dot-decimal" scale="3" id="f-471">136,273</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-472">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-473">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance Obligations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of December&#160;31, 2023.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" id="f-474" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:32.964%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.624%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2026</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2027 and Thereafter</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" format="ixt:num-dot-decimal" scale="3" id="f-475">10,121</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" scale="3" id="f-476">140</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" scale="3" id="f-477">140</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" scale="3" id="f-478">360</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-90" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" format="ixt:num-dot-decimal" scale="3" id="f-479">10,761</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_97"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 4. <ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerShareTextBlock" id="f-484" continuedAt="f-484-1" escape="true">Net Loss per Share</ix:nonNumeric></span></div><ix:continuation id="f-484-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, diluted and basic net loss per share are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Anti-Dilutive Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" id="f-485" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plans and ESPP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-91" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-486">9,028</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-92" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-487">7,442</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-93" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-488">5,215</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Included <ix:nonFraction unitRef="shares" contextRef="c-94" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-489">568,224</ix:nonFraction> of anti-dilutive potential common shares from ESPP for the year ended December&#160;31, 2023.</span></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_100"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 5. <ix:nonNumeric contextRef="c-1" name="us-gaap:CollaborativeArrangementDisclosureTextBlock" id="f-490" continuedAt="f-490-1" escape="true">Collaborative Arrangements</ix:nonNumeric></span></div><ix:continuation id="f-490-1" continuedAt="f-490-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">GSK Platform Technology Transfer, Collaboration and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2014, we entered into a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Platform Technology Transfer, Collaboration and License agreement (the &#8220;GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement&#8221;) with GSK. Pursuant to the terms of the agreement, we granted GSK a non-exclusive license to use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop novel enzymes for use in the manufacture of GSK's pharmaceutical and health care products. We completed the transfer of the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform to GSK in April 2016 and all revenues relating to the technology transfer have been recognized as of April 2016. Depending upon GSK's successful application of the licensed technology, we have the potential to receive additional contingent payments that range from $<ix:nonFraction unitRef="usd" contextRef="c-95" decimals="-5" name="cdxs:RevenueFromCollaborativeArrangementContingentAmounts" format="ixt:num-dot-decimal" scale="6" id="f-491">5.8</ix:nonFraction> million to $<ix:nonFraction unitRef="usd" contextRef="c-96" decimals="-5" name="cdxs:RevenueFromCollaborativeArrangementContingentAmounts" format="ixt:num-dot-decimal" scale="6" id="f-492">38.5</ix:nonFraction> million per project. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">79</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-490-2" continuedAt="f-490-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, we received a $<ix:nonFraction unitRef="usd" contextRef="c-97" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-493">2.0</ix:nonFraction>&#160;million milestone payment relating to the advancement of an enzyme developed by GSK using our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform. In 2021, we received <ix:nonFraction unitRef="payment" contextRef="c-98" decimals="0" name="cdxs:CollaborativeArrangementNumberOfMilestonePayments" format="ixt-sec:numwordsen" scale="0" id="f-494">two</ix:nonFraction> additional milestone payments from GSK under the agreement. In 2023, we received an additional milestone payment from GSK under the agreement. We recognized research and development revenue of $<ix:nonFraction unitRef="usd" contextRef="c-99" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-495">1.3</ix:nonFraction>&#160;million, <ix:nonFraction unitRef="usd" contextRef="c-100" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:fixed-zero" scale="6" id="f-496">nil</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-101" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-497">4.3</ix:nonFraction> million in the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Merck Platform Technology Transfer and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2015, we entered into a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform transfer collaboration and license agreement (the &#8220;Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement&#8221;) with Merck, Sharp &amp; Dohme (&#8220;Merck&#8221;) which allows Merck to use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform in the field of human and animal healthcare. In 2016, we completed the final phase in the transfer of the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform to Merck under the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized research and development revenues of <ix:nonFraction unitRef="usd" contextRef="c-102" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-498">nil</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-103" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-499">40</ix:nonFraction> thousand, and $<ix:nonFraction unitRef="usd" contextRef="c-104" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-500">0.6</ix:nonFraction> million in the years ended December 31, 2023, 2022 and 2021, respectively, for various research projects under our collaborative arrangement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have the potential to receive payments of up to a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-501">15.0</ix:nonFraction>&#160;million for each commercial active pharmaceutical ingredient ("API") that is manufactured by Merck using one or more novel enzymes developed by Merck using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform. The API payments, which are currently not recognized in revenue, are based on the quantity of API developed and manufactured by Merck and will be recognized as usage-based royalties.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2018, we entered into an amendment to the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement which amended certain licensing provisions and one exhibit. In January 2019, we amended the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement to install certain CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform upgrades into Merck&#8217;s platform license installation and maintain those upgrades for a multi-year term that expired in January 2022. The license installation was completed in 2019. <ix:nonFraction unitRef="usd" contextRef="c-106" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-502"><ix:nonFraction unitRef="usd" contextRef="c-107" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-503">No</ix:nonFraction></ix:nonFraction> research and development revenues were recognized in the years ended December 31, 2023 and 2022. We recognized $<ix:nonFraction unitRef="usd" contextRef="c-108" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-504">0.1</ix:nonFraction> million in research and development revenues under the terms of the amendment in the year ended December 31, 2021. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Merck Sitagliptin Catalyst Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In February 2012, we entered into a <ix:nonNumeric contextRef="c-109" name="cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement" format="ixt-sec:durwordsen" id="f-505">five-year</ix:nonNumeric> Sitagliptin Catalyst Supply Agreement (&#8220;Sitagliptin Supply Agreement&#8221;) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its options under the terms of the Sitagliptin Supply Agreement to extend the agreement for an additional <ix:nonNumeric contextRef="c-110" name="cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement" format="ixt-sec:durwordsen" id="f-506">five years</ix:nonNumeric> through February 2022. In September 2021, the Sitagliptin Supply Agreement was amended to extend the agreement through December 2026. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized $<ix:nonFraction unitRef="usd" contextRef="c-111" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-507">4.4</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-112" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-508">5.9</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-113" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-509">9.8</ix:nonFraction> million in product revenue under this agreement in the years ended December 31, 2023, 2022 and 2021, respectively. This represented <ix:nonFraction unitRef="number" contextRef="c-114" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-510">6</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-115" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-511">4</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="c-116" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-512">9</ix:nonFraction>% of our total revenues in the years ended December 31, 2023, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, we recorded revenue of $<ix:nonFraction unitRef="usd" contextRef="c-117" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-513">0.7</ix:nonFraction> million from sitagliptin enzyme sales that were recognized over time based on the progress of the manufacturing process. These products will be </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shipped within the three-month period following the end of 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2016, we entered into a supply agreement whereby our customer may purchase quantities of one of our proprietary enzymes for use in its commercial manufacture of a product. Pursuant to the supply agreement, we received an upfront payment in December 2016 which was recorded as deferred revenue.&#160;Such upfront payment will be recognized over the period of the supply agreement as the customer purchases our proprietary enzyme. We additionally have determined that the volume discounts under the supply agreement provide the customer material rights and we are recognizing revenues using the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">alternative method. In 2023, due to the early termination of the enzyme supply agreement with the customer, we recognized $<ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-514">3.2</ix:nonFraction>&#160;million of product revenue from the release of prior periods' product revenue deferrals and also recognized $<ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-5" name="cdxs:RevenueFromContractWithCustomerSettlementFee" format="ixt:num-dot-decimal" scale="6" id="f-515">1.3</ix:nonFraction>&#160;million of product revenue as settlement fee pursuant to the enzyme supply agreement with the same customer. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">80</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-490-3" continuedAt="f-490-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023 and 2022, we had deferred revenue balances from the supply agreement of <ix:nonFraction unitRef="usd" contextRef="c-119" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:fixed-zero" scale="6" id="f-516">nil</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-120" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-517">3.3</ix:nonFraction> million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Commercial Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2019, we entered into </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a multi-year commercial agreement with Tate &amp; Lyle under which Tate &amp; Lyle has received an exclusive license to use a suite of Codexis novel performance enzymes in the manufacture of Tate &amp; Lyle&#8217;s zero-calorie stevia sweetener, TASTEVA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> M, and other stevia products. Under the agreement, we will supply Tate &amp; Lyle with its requirements for these enzymes over a multiple year period and receive royalties on stevia products. In November 2020, we amended the commercial agreement based on Tate &amp; Lyle's intent to use a specific Codexis novel performance enzyme in its production of TASTEVA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> M Stevia Sweetener and became eligible to receive milestone payments of up to $<ix:nonFraction unitRef="usd" contextRef="c-121" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-518">1.1</ix:nonFraction> million. In the fourth quarter of 2020, we became eligible to receive a milestone payment of $<ix:nonFraction unitRef="usd" contextRef="c-122" decimals="-5" name="cdxs:ReceivableFromCollaborativeArrangement" format="ixt:num-dot-decimal" scale="6" id="f-519">0.4</ix:nonFraction> million which we subsequently received in February 2021.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> The commercial agreement with Tate &amp; Lyle was terminated in 2023.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Global Development, Option and License Agreement and Strategic Collaboration Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2017, we entered into the Nestl&#233; License Agreement with Nestl&#233; Health Science and, solely for the purpose of the integration and the dispute resolution clauses of the Nestl&#233; License Agreement, Nestl&#233; Health Science S.A., to advance CDX-6114, our enzyme biotherapeutic product candidate for the potential treatment of PKU.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2019, we received notice from the U.S. Food and Drug Administration (&#8220;FDA&#8221;) that it had completed its review of our IND for CDX-6114 and concluded that we may proceed with the proposed Phase 1b multiple ascending dose study in healthy volunteers in the United States. In February 2019, Nestl&#233; Health Science exercised its option to obtain an exclusive, worldwide, royalty-bearing, sub-licensable license for the global development and commercialization of CDX-6114 for the management of PKU. Upon exercising its option, Nestl&#233; Health Science made an option payment and assumed all responsibilities for future clinical development and commercialization of CDX-61</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14. In October 2023, we provided notice pursuant to Nestl&#233; License Agreement of our intent to abandon or transfer to Nestl&#233; Health Science (at their option) the patents and patent applications related to CDX-6114 as of December 5, 2023, and Nestl&#233; Health Science notified us that they did not exercise their right to assume responsibility of such patents and patent applications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2017, we entered into the Nestl&#233; SCA pursuant to which we and Nestl&#233; Health Science are collaborating to leverage the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop novel enzymes for Nestl&#233; Health Science&#8217;s established Consumer Care and Medical Nutrition business areas. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The term of the Nestl&#233; SCA has expired in December 2023, as we opted out of a renewal period through December 2024. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2020, we entered into a development agreement with Nestl&#233; Health Science pursuant to which we and Nestl&#233; Health Science are collaborating to advance a lead candidate discovered through our Nestl&#233; SCA, CDX-7108, targeting exocrine pancreatic insufficiency, into preclinical and early clinical studies. We, together with Nestl&#233; Health Science, initiated a Phase 1 clinical trial of CDX-7108 in the fourth quarter of 2021, and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on February 23, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we and Nestl&#233; Health Science announced interim results. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced plans to discontinue our development support of CDX-7108.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Nestl&#233; SCA and the development agreement, we recognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-123" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-520">4.1</ix:nonFraction>&#160;million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-124" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-521">7.1</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-125" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-522">6.9</ix:nonFraction>&#160;million in research and development revenue in the years ended December&#160;31, 2023, 2022 and 2021, respectively. Both the Nestl&#233; SCA and the development agreement were terminated in January 2024</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Acquisition Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we entered into an acquisition agreement (the &#8220;Acquisition Agreement&#8221;) with Nestl&#233; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Health Science</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#233; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Health Science</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Under the terms of the Acquisition Agreement, Nestl&#233; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Health Science </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, and Codexis will receive upfront payment, future potential milestone payments and net-sales based royalties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized research and development revenue of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-126" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-523">5.0</ix:nonFraction>&#160;million f</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023 related to the Acquisition Agreement. We received the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-127" decimals="-5" name="cdxs:CollaborativeArrangementUpfrontFeeAmount" format="ixt:num-dot-decimal" scale="6" id="f-524">5.0</ix:nonFraction>&#160;million upfront fee in January 2024.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">81</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-490-4" continuedAt="f-490-5"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2018, we entered into the Porton Agreement with Porton to license key elements of our biocatalyst technology for use in Porton&#8217;s global custom intermediate and API development and manufacturing business. Under the Porton Agreement, we are eligible to receive annual collaboration fees and research and development revenues. We received the initial collaboration payments of $<ix:nonFraction unitRef="usd" contextRef="c-128" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-525">0.5</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-129" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-526">0.5</ix:nonFraction> million within <ix:nonNumeric contextRef="c-130" name="cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" format="ixt-sec:durday" id="f-527">30</ix:nonNumeric> days of the effective date and on the first anniversary of the effective date of the Porton Agreement, respectively. We also received annual collaboration payments of $<ix:nonFraction unitRef="usd" contextRef="c-131" decimals="-5" name="us-gaap:ProceedsFromCollaborators" format="ixt:num-dot-decimal" scale="6" id="f-528">1.0</ix:nonFraction>&#160;million each during the first through fourth anniversaries of the effective date of the Porton Agreement. We completed the technical transfer in the fourth quarter of 2018 and recognized the related revenue in 2018. We recognized revenue related to the functional license provided to Porton at a point in time when control of the license was transferred to the customer. The initial term of the Porton Agreement expired in April 2023 and was not renewed for an extended term. We recognized research and development revenue related to the Porton Agreement of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="usd" contextRef="c-132" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:fixed-zero" scale="6" id="f-529">nil</ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-133" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-530">0.1</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-134" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-531">1.1</ix:nonFraction> million in the years ended December 31, 2023, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Platform Technology Transfer and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2019, we entered into the Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement with Novartis. The Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement allows Novartis to use our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to Novartis (the &#8220;Technology Transfer Period&#8221;). As a part of this technology transfer, we provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform at its designated laboratory.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the agreement, we received an upfront payment of $<ix:nonFraction unitRef="usd" contextRef="c-135" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-532">5.0</ix:nonFraction>&#160;million shortly after the effective date of the Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $<ix:nonFraction unitRef="usd" contextRef="c-136" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-533">4.0</ix:nonFraction>&#160;million. We have also received an aggregate of $<ix:nonFraction unitRef="usd" contextRef="c-137" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-534">5.0</ix:nonFraction> million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#8220;Improvements Term&#8221;), Novartis will pay Codexis annual payments over <ix:nonNumeric contextRef="c-138" name="cdxs:RevenueRecognitionContingentAnnualPaymentsTerm" format="ixt-sec:durwordsen" id="f-535">four years</ix:nonNumeric> which amount to an additional $<ix:nonFraction unitRef="usd" contextRef="c-139" decimals="-5" name="cdxs:RevenueRecognitionContingentAnnualReceivableIncrease" format="ixt:num-dot-decimal" scale="6" id="f-536">8.0</ix:nonFraction>&#160;million in aggregate. We received an aggregate of $<ix:nonFraction unitRef="usd" contextRef="c-140" decimals="-5" name="cdxs:RevenueRecognitionAnnualPayment" format="ixt:num-dot-decimal" scale="6" id="f-537"><ix:nonFraction unitRef="usd" contextRef="c-141" decimals="-5" name="cdxs:RevenueRecognitionAnnualPayment" format="ixt:num-dot-decimal" scale="6" id="f-538">4.0</ix:nonFraction></ix:nonFraction>&#160;million for the first <ix:nonFraction unitRef="payment" contextRef="c-141" decimals="INF" name="cdxs:RevenueRecognitionNumberOfAnnualPayment" format="ixt-sec:numwordsen" scale="0" id="f-539"><ix:nonFraction unitRef="payment" contextRef="c-140" decimals="INF" name="cdxs:RevenueRecognitionNumberOfAnnualPayment" format="ixt-sec:numwordsen" scale="0" id="f-540">two</ix:nonFraction></ix:nonFraction> annual payments in 2022 and 2023. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized overtime based on hours incurred. Revenue allocated to improvements made during the Improvements Term is being recognized during the Improvements Term. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-142" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-541">1.1</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-143" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-542">1.0</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-144" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-543">1.6</ix:nonFraction> million in research and development revenue in the years ended December&#160;31, 2023, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In December 2019, we entered a license agreement with Roche Sequencing Solutions, Inc. (&#8220;Roche&#8221;) to provide Roche with our evolved T4 DNA ligase high-performance molecular diagnostic enzyme. The royalty bearing license grants Roche worldwide rights to include the evolved T4 DNA ligase in its nucleic acid sequencing products and workflows. Under the license agreement, we received an initial collaboration fee payment of $<ix:nonFraction unitRef="usd" contextRef="c-145" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-544">0.8</ix:nonFraction> million within <ix:nonNumeric contextRef="c-146" name="cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" format="ixt-sec:durday" id="f-545">45</ix:nonNumeric> days of the effective date of the agreement, and we received an additional $<ix:nonFraction unitRef="usd" contextRef="c-147" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-546">0.9</ix:nonFraction> million milestone payment after the completion of technology transfer in October 202</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">0. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior agreement in December 2019 for our evolved T4 DNA ligase. We are eligible to receive an aggregate of mid-single digit millions in upfront and technical milestones payments. <ix:nonFraction unitRef="usd" contextRef="c-148" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-547"><ix:nonFraction unitRef="usd" contextRef="c-149" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-548">No</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"> research and development revenues were recognized in the years ended December 31, 2023 and 2022. We recognized research and development fees </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">of $<ix:nonFraction unitRef="usd" contextRef="c-150" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-549">0.9</ix:nonFraction> million in the year ended December 31,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"> 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, we entered into a Strategic Collaboration and License Agreement (the &#8220;Takeda Agreement&#8221;) with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (&#8220;Takeda&#8221;), pursuant to which we have collaborated with Takeda to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">82</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-490-5" continuedAt="f-490-6"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $<ix:nonFraction unitRef="usd" contextRef="c-151" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-550">8.5</ix:nonFraction>&#160;million and we initiated activities under three program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the &#8220;Initial Programs&#8221;). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. We completed the research and development services relating to the fourth program with Takeda during the second quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the Takeda Agreement, we are eligible to receive other payments that include (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">i) clinical development and commercialization-based milestones, per target gene, of up to $<ix:nonFraction unitRef="usd" contextRef="c-152" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-551">104.0</ix:nonFraction> million and (ii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits. Takeda announced in April 2023 the discontinuation of these development programs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $<ix:nonFraction unitRef="usd" contextRef="c-153" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" format="ixt:num-dot-decimal" scale="6" id="f-552">2.0</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-154" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" format="ixt:num-dot-decimal" scale="6" id="f-553">4.9</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-155" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" format="ixt:num-dot-decimal" scale="6" id="f-554">7.4</ix:nonFraction> million in the years ended December 31, 2023, 2022, and 2021, respectively. As of December&#160;31, 2023 and 2022, we had deferred revenue balances of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="usd" contextRef="c-156" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:fixed-zero" scale="6" id="f-555">nil</ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and $<ix:nonFraction unitRef="usd" contextRef="c-157" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-556">0.9</ix:nonFraction> million, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with Molecular Assemblies, Inc. (&#8220;MAI&#8221;) in which we purchased <ix:nonFraction unitRef="shares" contextRef="c-158" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-557">1,587,050</ix:nonFraction> shares of MAI's Series A preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-159" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="6" id="f-558">1.0</ix:nonFraction> million. In connection with the June 2020, transaction, John Nicols, our former President and Chief Executive Officer, joined MAI&#8217;s board of directors. See Note 14, &#8220;Related Party Transactions&#8221; for additional information on our investment in MAI.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Concurrently with our initial equity investment, we entered into the MAI Agreement, pursuant to which we performed services utilizing our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which are valued based on the observed transaction price of similar securities of MAI issued to third parties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the MAI Agreement, we will have the right to use and sell the engineered enzymes to third parties for any purpose other than for the synthesis of native DNA. Under the MAI Agreement, we would make a $<ix:nonFraction unitRef="usd" contextRef="c-160" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-559">0.5</ix:nonFraction>&#160;million payment to MAI upon our achievement of a milestone of $<ix:nonFraction unitRef="usd" contextRef="c-161" decimals="-5" name="cdxs:ContractWithCustomerSalesMilestone" format="ixt:num-dot-decimal" scale="6" id="f-560"><ix:nonFraction unitRef="usd" contextRef="c-161" decimals="-5" name="cdxs:ContractWithCustomerSalesMilestone" format="ixt:num-dot-decimal" scale="6" id="f-561">5.0</ix:nonFraction></ix:nonFraction>&#160;million in aggregate commercial sales to third parties of the engineered enzymes or any product incorporating or derived from the engineered enzymes for any purpose other than the synthesis of native DNA. As contemplated in the MAI Agreement, we executed the Commercial License and Enzyme Supply Agreement with MAI (&#8220;MAI Supply Agreement&#8221;) in July 2022 following the completion of certain timelines specified in the SOW.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $<ix:nonFraction unitRef="usd" contextRef="c-162" decimals="-5" name="cdxs:RelatedPartyTransactionMilestonePaymentReceived" format="ixt:num-dot-decimal" scale="6" id="f-562">1.0</ix:nonFraction> million in the form of an additional <ix:nonFraction unitRef="shares" contextRef="c-163" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" format="ixt:num-dot-decimal" scale="0" id="f-563">1,587,049</ix:nonFraction> shares of MAI Series B preferred stock. Upon execution of the MAI Supply Agreement in July 2022, we received the commercialization and enzyme supply agreement milestone payment pursuant to the MAI Agreement of $<ix:nonFraction unitRef="usd" contextRef="c-164" decimals="-5" name="cdxs:RelatedPartyTransactionMilestonePaymentReceived" format="ixt:num-dot-decimal" scale="6" id="f-564">1.0</ix:nonFraction> million in the form of an additional <ix:nonFraction unitRef="shares" contextRef="c-165" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" format="ixt:num-dot-decimal" scale="0" id="f-565">1,587,049</ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shares of MAI Series B preferred stock. Pursuant to the MAI Agreement, we recognized $<ix:nonFraction unitRef="usd" contextRef="c-166" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-566">1.2</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-167" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-567">2.0</ix:nonFraction> million in research and development revenue from transactions with MAI in the years ended December 31, 2022 and 2021, respectively. Payment for the services rendered was received in the form of additional MAI Series A and Series B preferred stock. We received an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-168" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-568">1,587,049</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-169" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-569">3,491,505</ix:nonFraction> shares of MAI's Series A and B preferred stock in the years ended December 31, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase (&#8220;TdT&#8221;) enzyme in MAI&#8217;s Fully Enzymatic Synthesis&#8482; (&#8220;FES&#8482;&#8221;) technology. We recognized </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-170" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-570">0.2</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-171" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-571">0.5</ix:nonFraction>&#160;million in product revenue in the years ended December&#160;31, 2023 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2022, respectively</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pfizer Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2021 and 2022, we received purchase orders from Pfizer, Inc. (&#8220;Pfizer&#8221;) for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID&#8482; (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a party to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#8220;Pfizer Supply Agreement&#8221;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-572">25.9</ix:nonFraction>&#160;million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, <ix:nonFraction unitRef="number" contextRef="c-173" decimals="2" name="cdxs:ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" scale="-2" id="f-573">90</ix:nonFraction>% of the fee ($<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="-5" name="cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-574">23.3</ix:nonFraction>&#160;million) is creditable against (i) future orders of CDX-616 used to manufacture its PAXLOVID&#8482; with shipment dates prior to December 31, 2023, and (ii) fees associated with </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">83</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-490-6" continuedAt="f-490-7"><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $<ix:nonFraction unitRef="usd" contextRef="c-174" decimals="-5" name="cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-575">23.3</ix:nonFraction>&#160;million credit towards a license to develop future product candidates, for which we recognized $<ix:nonFraction unitRef="usd" contextRef="c-175" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-576">5.0</ix:nonFraction>&#160;million as non-cash research and development revenue in the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April 4, 2023. We also recognized $<ix:nonFraction unitRef="usd" contextRef="c-176" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-577">2.0</ix:nonFraction>&#160;million of non-cash research and development revenue, and credited against the $<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-578">25.9</ix:nonFraction>&#160;million fee, for other services provided to Pfizer during the year ended December 31, 2023. Up to <ix:nonFraction unitRef="number" contextRef="c-177" decimals="2" name="cdxs:ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" scale="-2" id="f-579">50</ix:nonFraction>% of any portion of the $<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-580">25.9</ix:nonFraction>&#160;million which has not been credited under items (i) and (ii) is creditable against future orders of CDX-616 used to manufacture PAXLOVID&#8482; with shipment dates in 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the fourth quarter of 2023, and pursuant to the Pfizer Supply Agreement, we released the prior year deferrals for the unused portion of the retainer fee that is not creditable beyond 2023 and we recognized product revenue of $<ix:nonFraction unitRef="usd" contextRef="c-178" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-581">8.2</ix:nonFraction> million in the year ended December&#160;31, 2023. We recognized product revenue of $<ix:nonFraction unitRef="usd" contextRef="c-179" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-582">75.4</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-180" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-583">34.5</ix:nonFraction>&#160;million in the years ended December 31, 2022 and 2021, respectively, from the sale of quantities of CDX-616 to Pfizer. Product revenues recognized by us from the Pfizer Supply Agreement represented <ix:nonFraction unitRef="number" contextRef="c-181" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-584">12</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-182" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-585">54</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="c-183" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-586">33</ix:nonFraction>% of our total revenues for the years ended December&#160;31, 2023, 2022, and 2021 respectively.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-490-7">As of December&#160;31, 2023 and 2022, we had $<ix:nonFraction unitRef="usd" contextRef="c-184" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-587">9.5</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-185" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-588">24.4</ix:nonFraction>&#160;million, respectively, in deferred revenue related to the $<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-589">25.9</ix:nonFraction>&#160;million fee received from Pfizer.</ix:continuation> </span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_106"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 6. <ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="f-590" continuedAt="f-590-1" escape="true">Investments in Non-Marketable Securities</ix:nonNumeric></span></div><ix:continuation id="f-590-1" continuedAt="f-590-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Debt Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We classify non-marketable debt securities, which are accounted for as available-for-sale, within Level 3 in the fair value hierarchy because we estimate the fair value based on a qualitative analysis using the most recent observable transaction price and other significant unobservable inputs including volatility, rights, and obligations of the securities we hold.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine gains or losses on the sale or extinguishment of non-marketable debt securities using a specific identification method. Unrealized gains and losses from bifurcated embedded derivatives, which represent share-settled redemption features, are recorded as other expense, net, in the consolidated statements of operations. Unrealized gains and losses on non-marketable debt securities are recorded as a component of other comprehensive loss until realized. Realized gains or losses are recorded as a component of other income (expense), net. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2020, we purchased convertible subordinated notes issued by Arzeda Corp. (&#8220;Arzeda&#8221;), an early-stage computational protein design company, for $<ix:nonFraction unitRef="usd" contextRef="c-186" decimals="-5" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="6" id="f-591">1.0</ix:nonFraction>&#160;million and the investment was classified as available-for-sale non-marketable interest-bearing debt securities. In July 2021, we converted the non-marketable debt security with a carrying value of $<ix:nonFraction unitRef="usd" contextRef="c-187" decimals="-5" name="us-gaap:ConvertibleDebt" format="ixt:num-dot-decimal" scale="6" id="f-592">1.3</ix:nonFraction> million into <ix:nonFraction unitRef="shares" contextRef="c-188" decimals="0" name="us-gaap:DebtConversionConvertedInstrumentSharesIssued1" format="ixt:num-dot-decimal" scale="0" id="f-593">207,070</ix:nonFraction> shares of Series B-2 preferred stock of Arzeda. During the year ended December 31, 2021, we recognized $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-5" name="us-gaap:InvestmentIncomeAmortizationOfDiscount" format="ixt:num-dot-decimal" scale="6" id="f-594">0.3</ix:nonFraction> million in interest income from interest earned on our investment in this debt security.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were <ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="0" id="f-595"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="0" id="f-596">no</ix:nonFraction></ix:nonFraction> investments in non-marketable debt securities as of December&#160;31, 2023 and 2022.</span><span style="color:#008080;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in MAI, seqWell and Arzeda. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy when we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. The fair value of non-marketable equity securities are classified within Level 3 when we estimate fair value using unobservable inputs such as when we remeasure due to impairment and we use discount rates, market data of comparable companies, and rights and obligations of the securities the Company holds, among others. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component of other income (expense), net in the consolidated statements of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the <ix:nonFraction unitRef="shares" contextRef="c-189" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-597">207,070</ix:nonFraction> shares of Arzeda&#8217;s Series B preferred stock were converted into <ix:nonFraction unitRef="shares" contextRef="c-190" decimals="0" name="us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion" format="ixt:num-dot-decimal" scale="0" id="f-598">41,414</ix:nonFraction> common stock pursuant to the Stock Purchase Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2023, we purchased an additional</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> <ix:nonFraction unitRef="shares" contextRef="c-191" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-599">985,545</ix:nonFraction> shares of Series B preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-192" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="6" id="f-600">0.8</ix:nonFraction> million in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">MAI, a privately held life sciences company</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. As of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we held an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-193" decimals="0" name="us-gaap:NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" format="ixt:num-dot-decimal" scale="0" id="f-601">19,277,914</ix:nonFraction> shares of MAI's Series A and B preferred stock that we have earned or purchased from MAI. See Note 14, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Related Party Transactions&#8221; for additional information on our investment in MAI.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">84</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-590-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell Inc. (&#8220;seqWell&#8221;), a privately held life sciences company, pursuant to which we purchased <ix:nonFraction unitRef="shares" contextRef="c-194" decimals="-6" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-602">1,000,000</ix:nonFraction> shares of seqWell's Series C preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-194" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="6" id="f-603">5.0</ix:nonFraction> million. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#8220;seqWell Agreement&#8221;), pursuant to which we are providing research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional <ix:nonFraction unitRef="shares" contextRef="c-195" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-604">88,256</ix:nonFraction> shares of seqWell's Series C-1 preferred stock and <ix:nonFraction unitRef="shares" contextRef="c-196" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-605">44,128</ix:nonFraction> common stock warrants for $<ix:nonFraction unitRef="usd" contextRef="c-196" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="6" id="f-606">0.4</ix:nonFraction> million. We received <ix:nonFraction unitRef="shares" contextRef="c-197" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" format="ixt:num-dot-decimal" scale="0" id="f-607">205,279</ix:nonFraction> shares of seqWell's common stock from research and development services with seqWell and we recognized $<ix:nonFraction unitRef="usd" contextRef="c-198" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-608">0.2</ix:nonFraction>&#160;million in research and development revenue from these services in the year ended December&#160;31, 2023. As of December&#160;31, 2023, we held an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-199" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-609">1,088,256</ix:nonFraction> shares of Series C and C-1 preferred stock, <ix:nonFraction unitRef="shares" contextRef="c-200" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-610">205,279</ix:nonFraction> shares of common stock and <ix:nonFraction unitRef="shares" contextRef="c-201" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-611">44,128</ix:nonFraction> of common stock warrants that we have earned or purchased from seqWell.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2023, we recognized an impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-612">12.2</ix:nonFraction> million and included this as adjustment to the carrying value of our investments in seqWell, Arzeda and MAI. This adjustment, which is presented within other income (expense), net in the consolidated statements of operations, included the write-down of the carrying value of our investment in seqWell by $<ix:nonFraction unitRef="usd" contextRef="c-202" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-613">3.0</ix:nonFraction> million during the third quarter of 2023 to its estimated fair value as determined based on valuation methods using the recent transaction price of similar preferred stock securities issued by seqWell and adjusted for the rights and obligations of the preferred stock securities the Company holds. The $<ix:nonFraction unitRef="usd" contextRef="c-203" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-614">1.2</ix:nonFraction> million of impairment charge on our investment in Arzeda is related to the write-down to its estimated fair value based on the latest observed transaction price of Arzeda's preferred stock securities issued during the fourth quarter of 2023 and the subsequent conversion of our existing Series B preferred stock into Arzeda's common stock during the fourth quarter of 2023. The other $<ix:nonFraction unitRef="usd" contextRef="c-204" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-615">8.0</ix:nonFraction>&#160;million of impairment charge represents the difference between the estimated fair value and carrying value of our investment in MAI as of December 31, 2023 based on quantitative and qualitative analysis. This analysis involved use of judgment, estimates and assumptions, such as the near-term prospects of the investee in the market in which it operates, evaluation of the investee&#8217;s financial condition in relation to its outstanding obligations, and probabilities of securing additional capital through various alternative scenarios.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December 31, 2022, we recogniz</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed a $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-616">0.2</ix:nonFraction> million u</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nrealized gain in other income, net, and included as adjustment to the carrying value of our investment in MAI, for the remeasurement of the additional <ix:nonFraction unitRef="shares" contextRef="c-165" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" format="ixt:num-dot-decimal" scale="0" id="f-617">1,587,049</ix:nonFraction> shares of Series B preferred stock received as a milestone payment during the third quarter of 2022 based on the latest observed transaction price of MAI's preferred stock.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other than as disclosed above, there were no remeasurement events for our investments in non-marketable equity securities in 2023 and 2022</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We recognized <ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" format="ixt-sec:numwordsen" id="f-618"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" format="ixt-sec:numwordsen" id="f-619">no</ix:nonFraction></ix:nonFraction> realized gains or losses during the years ended December&#160;31, 2023 and 2022.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" id="f-620" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">MAI</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-205" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-621">6,693</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-206" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-622">13,921</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">seqWell</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-623">2,625</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-208" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-624">5,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Arzeda</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-209" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="3" id="f-625">82</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-210" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-626">1,289</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other investments in non-marketable equity securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-211" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="3" id="f-627">300</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-212" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="3" id="f-628">300</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-629">9,700</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-630">20,510</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_109"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 7. <ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueMeasurementInputsDisclosureTextBlock" id="f-631" continuedAt="f-631-1" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock" id="f-632" escape="true"><ix:continuation id="f-631-1" continuedAt="f-631-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables present the financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.268%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-213" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-633">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-214" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-634">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-215" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-635">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-636">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.268%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;2</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;3</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-217" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-637">77,309</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-218" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-638">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-219" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-639">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-640">77,309</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-631-2">During the years ended December&#160;31, 2023 and 2022, we did <ix:nonFraction unitRef="usd" contextRef="c-221" decimals="INF" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" format="ixt:fixed-zero" scale="0" id="f-641"><ix:nonFraction unitRef="usd" contextRef="c-222" decimals="INF" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" format="ixt:fixed-zero" scale="0" id="f-642">no</ix:nonFraction></ix:nonFraction>t recognize any significant credit losses <ix:nonFraction unitRef="usd" contextRef="c-222" decimals="INF" name="us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" format="ixt:fixed-zero" scale="0" id="f-643"><ix:nonFraction unitRef="usd" contextRef="c-221" decimals="INF" name="us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" format="ixt:fixed-zero" scale="0" id="f-644">no</ix:nonFraction></ix:nonFraction>r other-than-temporary impairment losses on non-marketable securities.</ix:continuation> </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">85</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_112"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 8. <ix:nonNumeric contextRef="c-1" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" id="f-645" continuedAt="f-645-1" escape="true">Balance Sheet Details </ix:nonNumeric></span></div><ix:continuation id="f-645-1" continuedAt="f-645-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Equivalents</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock" id="f-646" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:46.268%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-647">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-648">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-649">77,309</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-3" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-650">77,309</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Money market funds are classified in cash and cash equivalents on our consolidated balance sheets. Average contractual maturities (in days) is not applicable.</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the total cash and cash equivalents balance of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="6" id="f-651">65.1</ix:nonFraction> million consisted of money market funds of $<ix:nonFraction unitRef="usd" contextRef="c-216" decimals="-5" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="6" id="f-652">56.4</ix:nonFraction> million and cash of $<ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-5" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="6" id="f-653">8.7</ix:nonFraction> million held w</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ith major financial institutions. As of December&#160;31, 2022, the total cash and cash equivalents balance of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="6" id="f-654">114.0</ix:nonFraction> million consisted of money market funds of $<ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-5" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="6" id="f-655">77.3</ix:nonFraction> million and cash of $<ix:nonFraction unitRef="usd" contextRef="c-224" decimals="-5" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="6" id="f-656">36.7</ix:nonFraction> million held with major financial institutions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="f-657" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryRawMaterials" scale="3" id="f-658">108</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryRawMaterials" scale="3" id="f-659">108</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work in process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryWorkInProcess" scale="3" id="f-660">7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryWorkInProcess" scale="3" id="f-661">91</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods </span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryFinishedGoods" format="ixt:num-dot-decimal" scale="3" id="f-662">2,570</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryFinishedGoods" format="ixt:num-dot-decimal" scale="3" id="f-663">1,830</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total inventories</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-664">2,685</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-665">2,029</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Prepaid expenses and other current assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, prepaid expenses and other current assets consists of prepaid expenses of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:PrepaidExpenseCurrent" format="ixt:num-dot-decimal" scale="6" id="f-666">4.6</ix:nonFraction> million and other current assets of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:OtherAssetsCurrent" format="ixt:num-dot-decimal" scale="6" id="f-667">0.6</ix:nonFraction> million.  As of December&#160;31, 2022, prepaid expenses and other current assets consists of prepaid expenses of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:PrepaidExpenseCurrent" format="ixt:num-dot-decimal" scale="6" id="f-668">4.8</ix:nonFraction> million and other current assets of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:OtherAssetsCurrent" format="ixt:num-dot-decimal" scale="6" id="f-669">0.7</ix:nonFraction> million.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment, net</span></div><ix:continuation id="f-410-1" continuedAt="f-410-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-670">37,216</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-671">39,679</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-227" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-672">11,912</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-228" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-673">16,633</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-229" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-674">2,565</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-230" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-675">3,039</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-676">1,469</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-677">1,345</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-232" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-678">1,636</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-233" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-679">1,739</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-680">54,798</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-681">62,435</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-682">39,311</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-683">39,821</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-684">15,487</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-685">22,614</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $<ix:nonFraction unitRef="usd" contextRef="c-234" decimals="-5" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="6" id="f-686">3.0</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-235" decimals="-5" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="6" id="f-687">1.5</ix:nonFraction> million were retired during the years ended December&#160;31, 2023 and 2022, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">86</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-645-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. As part of this plan, we entered into agreements to sell certain laboratory equipment located in our San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos Space to Vaxcyte (see further discussion at Note 13, &#8220;Commitments and Contingencies&#8221;). These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based of Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeds fair value less costs to sell, which resulted in a write-down o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="6" id="f-688">1.5</ix:nonFraction>&#160;million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, the Company recorded a n</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on-cash impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-236" decimals="-5" name="us-gaap:ImpairmentOfLeasehold" format="ixt:num-dot-decimal" scale="6" id="f-689">4.7</ix:nonFraction> million associated with the San Carlos facility leasehold improvements. For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221; </span></div><ix:continuation id="f-410-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation expense</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-690">5,518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-691">5,402</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-692">3,113</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfGoodwillTextBlock" id="f-693" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-694">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-695">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GoodwillImpairmentLoss" scale="3" id="f-696">778</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="3" id="f-697">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-698">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-699">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill was previously allocated to each of the Company's reporting units. In July 2023, we announced a restructuring of our business and that we are discontinuing investment in certain development programs, primarily in Novel Biotherapeutics. As a result of this plan, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="6" id="f-700">0.8</ix:nonFraction> million to write off all of the associated goodwill. The impairment charge is recorded within the asset impairment and other charges in the condensed consolidated statements of operation in the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Goodwill had a carrying </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">value </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="6" id="f-701">2.5</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="6" id="f-702">3.2</ix:nonFraction>&#160;million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Accrued Liabilities</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="f-703" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-704">2,330</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-705">3,495</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued purchases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PurchaseObligation" format="ixt:num-dot-decimal" scale="3" id="f-706">1,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PurchaseObligation" format="ixt:num-dot-decimal" scale="3" id="f-707">10,852</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-708">1,003</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" scale="3" id="f-709">932</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other accrued liabilities</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-710">4,735</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-711">15,279</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_115"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 9. <ix:nonNumeric contextRef="c-1" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="f-712" continuedAt="f-712-1" escape="true">Stock-based Compensation</ix:nonNumeric></span></div><ix:continuation id="f-712-1" continuedAt="f-712-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Incentive Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2023, our board of directors (the &#8220;Board&#8221;) approved the 2022 Employment Inducement Award Plan (the &#8220;2022 Inducement Plan&#8221;) which provides for the grant of non-qualified stock options, restricted stock awards (&#8220;RSAs&#8221;), restricted stock units (&#8220;RSUs&#8221;), performance awards, other stock awards and dividend equivalents to eligible employees with respect to an aggregate of up to <ix:nonFraction unitRef="shares" contextRef="c-237" decimals="-6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-713">2,000,000</ix:nonFraction> shares of our common stock. In June 2023, the 2022 Inducement Plan was terminated upon the approval of an amendment to the Company's 2019 Incentive Award Plan (the &#8220;2019 Plan&#8221;) at the annual meeting of the Company's stockholders (the &#8220;Annual Meeting&#8221;) in June 2023.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">87</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-2" continuedAt="f-712-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Board and stockholders approved the 2019 Plan. The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the &#8220;2010 Plan&#8221;) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder. The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants. The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, RSA, RSUs, performance-contingent restricted stock units (&#8220;PSUs&#8221;), performance based options (&#8220;PBOs&#8221;), other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares of our common stock that were initially available for issuance under the 2019 Plan is equal to the sum of (i) <ix:nonFraction unitRef="shares" contextRef="c-238" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-714">7,897,144</ix:nonFraction> shares, and (ii)&#160;any shares subject to awards granted under the 2010 Plan that were outstanding as of April&#160;22, 2019 and thereafter terminate, expire, lapse or are forfeited. In June 2019, <ix:nonFraction unitRef="shares" contextRef="c-239" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="6" id="f-715">8.1</ix:nonFraction>&#160;million shares authorized for issuance under the 2019 Plan were registered under the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;). In April 2023, the Board approved an amendment to the 2019 Plan (the &#8220;2019 Amended Plan&#8221;) which became effective upon stockholders' approval at the Annual Meeting in June 2023. The 2019 Amended Plan included the (i) increase in the number of shares available by <ix:nonFraction unitRef="shares" contextRef="c-240" decimals="-6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-716">8,000,000</ix:nonFraction> shares, such that an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-241" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-717">15,897,144</ix:nonFraction> shares are reserved for issuance under the 2019 Amended Plan and any shares subject to awards granted under the 2010 Plan, and (ii) increase in the number of shares that may be granted as incentive stock options under the 2019 Amended Plan such that an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-241" decimals="-6" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" format="ixt:num-dot-decimal" scale="0" id="f-718">22,000,000</ix:nonFraction> shares of common stock may be granted as incentive stock options under the 2019 Amended Plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, total shares remaining available for issuance under the 2019 Plan were</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> <ix:nonFraction unitRef="shares" contextRef="c-242" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="6" id="f-719">9.1</ix:nonFraction> million s</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">hares.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2023, the Board approved an employee stock purchase plan (the &#8220;ESPP&#8221;) which became effective upon approval at the Annual Meeting in June 2023. The ESPP allows eligible employees of the Company to purchase shares of our common stock through payroll deductions over <ix:nonNumeric contextRef="c-243" name="cdxs:ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" format="ixt-sec:durmonth" id="f-720">24</ix:nonNumeric>-month offering periods. The per share purchase price will be the lower of <ix:nonFraction unitRef="number" contextRef="c-243" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" scale="-2" id="f-721">85</ix:nonFraction>% of the closing trading price per share of our common stock on the first trading date of an offering period in which a participant is enrolled or <ix:nonFraction unitRef="number" contextRef="c-243" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" scale="-2" id="f-722">85</ix:nonFraction>% of the closing trading price per share on the purchase date. Participant purchases are limited to a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-243" decimals="INF" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" format="ixt:num-dot-decimal" scale="0" id="f-723">25,000</ix:nonFraction> of fair value of our stock per calendar year. The Company is authorized to grant up to <ix:nonFraction unitRef="shares" contextRef="c-244" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-724">2,000,000</ix:nonFraction> shares of common stock under the ESPP. The first offering period of the ESPP commenced in December 2023 and as of December&#160;31, 2023, the Company had not issued any shares of common stock under the ESPP. We recognized $<ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-725">25</ix:nonFraction>&#160;thousand of stock-based compensation expenses related to the ESPP in the year ended December&#160;31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock Options</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The option exercise price for incentive stock options must be at least <ix:nonFraction unitRef="number" contextRef="c-246" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" scale="-2" id="f-726">100</ix:nonFraction>% of the fair value of our common stock on the date of grant and the option exercise price for non-statutory stock options is at least <ix:nonFraction unitRef="number" contextRef="c-247" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" scale="-2" id="f-727">85</ix:nonFraction>% of the fair value of our common stock on the date of grant, as determined by the Board. If, at the time of a grant, the optionee directly or by attribution owns stock possessing more than <ix:nonFraction unitRef="number" contextRef="c-248" decimals="2" name="cdxs:PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" scale="-2" id="f-728">10</ix:nonFraction>% of the total combined voting power of all of our outstanding capital stock, the exercise price for these options must be at least <ix:nonFraction unitRef="number" contextRef="c-248" decimals="2" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" scale="-2" id="f-729">110</ix:nonFraction>% of the fair value of the underlying common stock. Stock options granted to employees generally have a maximum term of <ix:nonNumeric contextRef="c-248" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" format="ixt-sec:durwordsen" id="f-730">ten years</ix:nonNumeric> and vest over <ix:nonNumeric contextRef="c-248" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-731">four years</ix:nonNumeric> from the date of grant, of which <ix:nonFraction unitRef="number" contextRef="c-249" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-732">25</ix:nonFraction>% vest at the end of <ix:nonNumeric contextRef="c-249" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-733">one year</ix:nonNumeric>, and <ix:nonFraction unitRef="number" contextRef="c-250" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-734">75</ix:nonFraction>% vest monthly over the remaining <ix:nonNumeric contextRef="c-250" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-735">three years</ix:nonNumeric>. We may grant options with different vesting terms from time to time. Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of <ix:nonNumeric contextRef="c-248" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" format="ixt-sec:durwordsen" id="f-736">three months</ix:nonNumeric> or the expiration of the option, whichever is earlier.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Stock Units (&#8220;RSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also grant employees RSUs, which generally vest over either a <ix:nonNumeric contextRef="c-251" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-737">three year</ix:nonNumeric> period with <ix:nonFraction unitRef="number" contextRef="c-251" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-738">33</ix:nonFraction>% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a <ix:nonNumeric contextRef="c-252" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-739">four-year</ix:nonNumeric> period with <ix:nonFraction unitRef="number" contextRef="c-252" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-740">25</ix:nonFraction>% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee&#8217;s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">88</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-3" continuedAt="f-712-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance-contingent Restricted Stock Units (&#8220;PSUs&#8221;) and Performance Based Options (&#8220;PBOs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In prior years, the compensation committee of the Board approved grants of PBOs and PSUs to our executives, and solely in respect of non-executive employees, delegated to our CEO the authority to approve grants of PSUs. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in <ix:nonFraction unitRef="installment" contextRef="c-253" decimals="INF" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" format="ixt-sec:numwordsen" scale="0" id="f-741">two</ix:nonFraction> equal installments with <ix:nonFraction unitRef="number" contextRef="c-254" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-742">50</ix:nonFraction>% vesting upon achievement, as determined by the compensation committee of the Board, and the remaining <ix:nonFraction unitRef="number" contextRef="c-255" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-743">50</ix:nonFraction>% vesting on the first anniversary of achievement, in each case, subject to the recipient&#8217;s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to <ix:nonFraction unitRef="number" contextRef="c-256" decimals="INF" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" format="ixt-sec:numwordsen" scale="0" id="f-744">two</ix:nonFraction> times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in <ix:nonFraction unitRef="number" contextRef="c-257" decimals="INF" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" format="ixt:fixed-zero" scale="0" id="f-745">no</ix:nonFraction> shares being eligible to vest in respect of the PSUs and PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="shares" contextRef="c-258" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:fixed-zero" scale="0" id="f-746"><ix:nonFraction unitRef="shares" contextRef="c-256" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:fixed-zero" scale="0" id="f-747">No</ix:nonFraction></ix:nonFraction> PSUs and PBOs were granted in 2023. In 2022, we awarded PSUs (&#8220;2022 PSUs&#8221;) and PBOs (&#8220;2022 PBOs&#8221;), each of which commence vesting based upon the achievement of various weighted performance go</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">als, including finance and corporate strategy, performance enzymes and biotherapeutics deliverables, research plans, and organizational development. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the first quarter of 2023, the compensation committee of the Board determined that the 2022 PSUs and 2022 PBOs performance goals had been achieved at</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> <ix:nonFraction unitRef="number" contextRef="c-259" decimals="3" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" scale="-2" id="f-748">85.0</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-260" decimals="3" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" scale="-2" id="f-749">42.5</ix:nonFraction>% of the target level, respectively, and recognized stock-based compensation expenses accordingly. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, <ix:nonFraction unitRef="number" contextRef="c-261" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-750">50</ix:nonFraction>% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2023 and <ix:nonFraction unitRef="number" contextRef="c-262" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-751">50</ix:nonFraction>% of the shares underlying the 2022 PSUs and PBOs will vest in the first quarter of 2024, in each case, subject to the recipient&#8217;s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2021, we awarded PSUs (&#8220;2021 PBOs&#8221;) and PBOs (&#8220;2021 PBOs&#8221;), each of which commence vesting based upon the determination of the compensation committee of the Board of the achievement of various weighted performance goals, including total revenues, product revenue, performance enzymes pipeline advancements, biotherapeutics pipeline advancements, organization and infrastructure upgrades, and significant events that can be publicly announced. In the first quarter of 2022, we determined that the 2021 PSUs and 2021 PBOs performance goals had been achieved at <ix:nonFraction unitRef="number" contextRef="c-263" decimals="2" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" scale="-2" id="f-752">146</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-264" decimals="2" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" scale="-2" id="f-753">73</ix:nonFraction>% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, <ix:nonFraction unitRef="number" contextRef="c-265" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-754">50</ix:nonFraction>% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2022 and <ix:nonFraction unitRef="number" contextRef="c-266" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-755">50</ix:nonFraction>% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2023, in each case, subject to the recipient&#8217;s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation Expense</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="f-756" continuedAt="f-756-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-267" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-757">354</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-268" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-758">452</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-759">224</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-760">2,631</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-761">3,907</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-272" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-762">2,663</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-763">6,986</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-274" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-764">10,172</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-275" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-765">8,706</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-766">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-767">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-768">11,593</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">89</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-4" continuedAt="f-712-5"><ix:continuation id="f-756-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-769">3,962</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-770">4,167</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-277" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-771">2,764</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-278" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-772">4,447</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-279" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-773">4,807</ix:nonFraction></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-280" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-774">2,768</ix:nonFraction></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-281" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-775">1,649</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-282" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-776">3,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-283" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-777">2,333</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-258" decimals="-3" sign="-" name="us-gaap:ShareBasedCompensation" scale="3" id="f-778">112</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-284" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-779">2,289</ix:nonFraction></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-285" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-780">3,728</ix:nonFraction></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">ESPP</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-781">25</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-286" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:fixed-zero" scale="3" id="f-782">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-287" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:fixed-zero" scale="3" id="f-783">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-784">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-785">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-786">11,593</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the retirement of John Nicols, our former President and Chief Executive Officer, in August 2022, and the Transition and Separation Agreement between Mr. Nicols and the Company, certain supplementary modifications were made to Mr. Nicols' vested and unvested stock option and PBOs awards including voluntary forfeiture of certain unvested stock option and PBOs awards and the extension of the post-termination exercise period of certain vested stock option and PBOs awards. During the year ended December 31, 2022, we recorded a one-time, non-cash incremental compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="6" id="f-787">1.0</ix:nonFraction> million, net of the required reversal of previously recognized stock-based compensation expenses attributed to unvested shares, in selling, general and administrative expenses related to these stock option award modifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Grant Award Activities:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock Option Awards</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of stock options using the Black-Scholes-Merton option-pricing model based on the date of grant. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="f-788" continuedAt="f-788-1" escape="true">The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:</ix:nonNumeric></span><ix:continuation id="f-788-1" continuedAt="f-788-2"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-248" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-789">5.8</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-276" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-790">5.7</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-277" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-791">5.6</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-248" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-792">66.2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-276" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-793">62.1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-277" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-794">52.5</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-248" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-795">4.0</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-276" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-796">3.1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-277" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-797">0.8</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-248" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-798">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-276" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-799">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-277" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-800">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></ix:continuation></div><ix:continuation id="f-788-2" continuedAt="f-788-3"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes the weighted-average assumptions used to estimate the fair value of <ix:nonFraction unitRef="shares" contextRef="c-55" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-801">50,000</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-45" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:fixed-zero" scale="0" id="f-802">nil</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-34" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-803">9,000</ix:nonFraction> shares of stock options granted to non-employees for services valued at $<ix:nonFraction unitRef="usd" contextRef="c-55" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-804">0.1</ix:nonFraction>&#160;million, <ix:nonFraction unitRef="usd" contextRef="c-45" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:fixed-zero" scale="0" id="f-805">nil</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-34" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-806">0.1</ix:nonFraction> million during the years ended December&#160;31, 2023, 2022, and 2021 respectively:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-288" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-807">5.8</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-289" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-808">0.0</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-290" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-809">5.6</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-288" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-810">70.1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-289" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" format="ixt:fixed-zero" scale="-2" id="f-811">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-290" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-812">54.1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-288" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-813">4.7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-289" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" format="ixt:fixed-zero" scale="-2" id="f-814">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-290" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-815">0.9</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-288" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-816">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-289" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-817">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-290" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-818">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of non-employee stock options granted respectively in 2023, 2022, and 2021 was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-55" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-819">1.05</ix:nonFraction>, <ix:nonFraction unitRef="usdPerShare" contextRef="c-45" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="f-820">nil</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-34" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-821">11.29</ix:nonFraction>, respectively.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">90</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-5" continuedAt="f-712-6"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="f-822" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s stock option activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-28" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-823">3,385</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-28" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-824">7.19</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-21" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="3" id="f-825">286</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-21" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-826">26.85</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-21" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-827">664</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-21" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-828">6.96</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-21" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-829">72</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-21" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-830">17.99</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-39" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-831">2,935</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-39" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-832">8.90</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-20" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="3" id="f-833">2,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-20" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-834">8.90</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-20" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-835">410</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-20" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-836">2.33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-20" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-837">275</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-20" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-838">19.01</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-839">4,250</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-840">8.88</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="3" id="f-841">2,046</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-842">5.23</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-843">283</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-844">1.97</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-845">839</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-846">12.08</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-847"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-848"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-849">5,174</ix:nonFraction></ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-850">7.31</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:42.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.520%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average Remaining Contractual Term</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-851">5,174</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-852">7.31</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="f-853">6.7</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="3" id="f-854">198</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-855">2,231</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-856">8.61</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-857">3.6</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="3" id="f-858">79</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-859">4,748</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-860">7.42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-861">6.4</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="3" id="f-862">170</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of employee stock options granted in 2023, 2022, and 2021 were $<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-863">3.31</ix:nonFraction>, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-20" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-864">4.99</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-21" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-865">12.80</ix:nonFraction>, respectively. The total intrinsic value of options exercised in 2023, 2022, and 2021 were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-866">0.7</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-867">3.1</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-868">14.9</ix:nonFraction>&#160;million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">re was $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" format="ixt:num-dot-decimal" scale="6" id="f-869">8.2</ix:nonFraction> million of unrecognized stock-based compensation, net of expected forfeitures, related to unvested stock options, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-248" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-870">2.9</ix:nonNumeric> years. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Awards (&#8220;RSAs&#8221;)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" id="f-871" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSA activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-291" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-872">96</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-291" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-873">11.44</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-292" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-874">46</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-292" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-875">21.91</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-292" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-876">62</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-292" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-877">11.31</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-293" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-878">80</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-293" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-879">17.53</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-294" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-880">159</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-294" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-881">7.53</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-294" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-882">58</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-294" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-883">18.42</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-295" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-884">181</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-295" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-885">8.45</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-296" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-886">277</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-296" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-887">2.89</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-296" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-888">133</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-296" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-889">9.04</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-297" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-890">325</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-297" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-891">3.48</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">91</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-6" continuedAt="f-712-7"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSAs vested in fiscal years 2023, 2022 and 2021</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> were $<ix:nonFraction unitRef="usd" contextRef="c-296" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-892">0.4</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-294" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-893">0.5</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-292" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-894">1.3</ix:nonFraction> million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was $<ix:nonFraction unitRef="usd" contextRef="c-297" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" format="ixt:num-dot-decimal" scale="6" id="f-895">0.6</ix:nonFraction> million of unrecognized stock-based compensation cost related to non-vested RSAs, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-296" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-896">0.7</ix:nonNumeric> years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Units ("RSUs")</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="f-897" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-298" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-898">176</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-298" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-899">14.17</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-299" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-900">163</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-299" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-901">26.59</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-299" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-902">70</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-299" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-903">13.57</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-299" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-904">37</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-299" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-905">21.89</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-300" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-906">232</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-300" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-907">21.83</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-301" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-908">518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-301" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-909">17.46</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-301" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-910">106</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-301" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-911">21.21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-301" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-912">126</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-301" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-913">19.55</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-302" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-914">518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-302" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-915">18.15</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-303" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:num-dot-decimal" scale="3" id="f-916">1,049</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-303" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-917">5.24</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-303" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-918">204</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-303" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-919">18.42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-303" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-920">343</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-303" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-921">9.71</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-304" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-922">1,020</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-304" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-923">7.66</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSUs vested in fiscal years 2023, 2022 and 2021 were </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-303" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-924">1.1</ix:nonFraction> million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-301" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-925">1.8</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-299" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-926">1.8</ix:nonFraction> million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-304" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" format="ixt:num-dot-decimal" scale="6" id="f-927">4.1</ix:nonFraction> million of unrecognized stock-based compensation cost related to non-vested RSUs, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-303" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-928">2.0</ix:nonNumeric> years. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance-Contingent Restricted Stock Units (&#8220;PSUs&#8221;)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" id="f-929" continuedAt="f-929-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes PSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-305" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-930">131</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-305" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-931">15.34</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-283" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-932">82</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-283" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-933">26.16</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-283" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-934">66</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-283" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-935">16.14</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-283" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-936">19</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-283" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-937">19.38</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-306" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-938">128</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-306" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-939">21.24</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-282" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-940">686</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-282" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-941">9.55</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-282" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-942">107</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-282" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-943">20.52</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-282" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-944">40</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-282" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-945">19.93</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-307" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-946">667</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-307" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-947">9.41</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-281" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-948">315</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-281" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-949">11.02</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-281" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-950">75</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-281" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-951">12.49</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-281" decimals="-3" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" scale="3" id="f-952">15</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-281" decimals="2" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-953">25.05</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-308" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-954">292</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-308" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-955">7.69</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">92</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-7" continuedAt="f-712-8"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of PSUs vested in the years ended December 31, 2023, 2022, and 2021 were $<ix:nonFraction unitRef="usd" contextRef="c-281" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-956">1.6</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-282" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-957">2.1</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-283" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" format="ixt:num-dot-decimal" scale="6" id="f-958">1.3</ix:nonFraction> million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was $<ix:nonFraction unitRef="usd" contextRef="c-308" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" format="ixt:num-dot-decimal" scale="6" id="f-959">0.2</ix:nonFraction> million of unrecognized stock-based compensation cost related to non-vested PSUs, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-281" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-960">0.2</ix:nonNumeric> years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance Based Options (&#8220;PBOs&#8221;) </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of PBOs using the Black-Scholes-Merton option-pricing model based on the date of grant. <ix:nonFraction unitRef="shares" contextRef="c-258" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:fixed-zero" scale="0" id="f-961">No</ix:nonFraction> PBOs were granted to employees for their services during the year ended December&#160;31, 2023. <ix:continuation id="f-788-3" continuedAt="f-788-4">The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:</ix:continuation></span><ix:continuation id="f-788-4"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-284" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-962">5.6</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-285" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-963">5.5</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-284" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-964">54.9</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-285" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-965">51.9</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-284" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-966">1.8</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-285" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-967">0.7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-284" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-968">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-285" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-969">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></ix:continuation></div><ix:continuation id="f-929-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarizes PBOs activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number<br/>of<br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-309" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-970">1,560</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-309" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-971">5.05</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-285" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-972">433</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-285" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-973">12.23</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-310" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" scale="3" id="f-974">35</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-310" decimals="2" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" scale="0" id="f-975">9.02</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-285" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-976">118</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-285" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-977">12.23</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-311" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-978">1,840</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-311" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-979">4.11</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-284" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-980">733</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-284" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-981">9.89</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-284" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-982">747</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-284" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-983">8.29</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-312" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-984">1,826</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-312" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-985">4.70</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-258" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-986">178</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-258" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-987">9.73</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-313" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-988">1,648</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-313" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-989">5.64</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:42.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.520%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Remaining<br/>Contractual Term</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-313" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-990">1,627</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-313" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-991">10.96</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-258" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-992">4.4</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-313" decimals="-3" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" format="ixt:fixed-zero" scale="3" id="f-993">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-313" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-994">1,646</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-313" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-995">11.06</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-258" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-996">4.5</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-313" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" format="ixt:fixed-zero" scale="3" id="f-997">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value of e</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">xercised PBOs for 2023, 2022 and 2021, was <ix:nonFraction unitRef="usd" contextRef="c-258" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:fixed-zero" scale="0" id="f-998">nil</ix:nonFraction>, <ix:nonFraction unitRef="usd" contextRef="c-284" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:fixed-zero" scale="6" id="f-999">nil</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-285" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-1000">0.3</ix:nonFraction>&#160;million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-313" decimals="-2" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" format="ixt:num-dot-decimal" scale="3" id="f-1001">15.9</ix:nonFraction>&#160;thousand</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of unrecognized stock-based compensation cost related to non-vested PBOs, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-258" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-1002">0.2</ix:nonNumeric> years.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">93</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-712-8"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Employee Stock Purchase Plan (&#8220;ESPP&#8221;) </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" id="f-1003" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.584%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:25.216%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-245" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1004">0.4</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-245" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1005">89.6</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-245" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1006">5.3</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-245" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1007">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_118"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 10. <ix:nonNumeric contextRef="c-1" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="f-1008" continuedAt="f-1008-1" escape="true">Capital Stock</ix:nonNumeric></span></div><ix:continuation id="f-1008-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Distribution Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we filed a Registration Statement on Form S-3 with the SEC, that automatically became effective upon its filing, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to that Registration Statement on Form S-3. Pursuant to that post-effective amendment, we registered an aggregate $<ix:nonFraction unitRef="usd" contextRef="c-314" decimals="-5" name="cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount" format="ixt:num-dot-decimal" scale="6" id="f-1009">200.0</ix:nonFraction>&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement ("EDA&#8221;) with Piper Sandler &amp; Co (&#8220;PSC&#8221;), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a <ix:nonNumeric contextRef="c-315" name="cdxs:SaleOfStockPeriod" format="ixt-sec:durwordsen" id="f-1010">three-year</ix:nonNumeric> period from the execution of the EDA up to a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-316" decimals="-5" name="cdxs:SaleOfStockValueOfSharesForIssuance" format="ixt:num-dot-decimal" scale="6" id="f-1011">50.0</ix:nonFraction>&#160;million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an "at the market offering" as defined in Rule 415 under the Securities Act of 1933, as amended. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are not required to sell any shares at any time during the term of the EDA. The EDA will terminate upon the earlier of: (i) the issuance and sale of all shares through PSC on the terms and conditions of the EDA, or (ii) the termination of the EDA in accordance with its terms. Either party may terminate the EDA at any time upon written notification to the other party in accordance with the EDA, and upon such notification, the offering will terminate. Under no circumstances shall any shares be sold pursuant to the EDA after the date which is three years after the registration statement is first declared effective by the SEC. We agreed to pay PSC a commission of <ix:nonFraction unitRef="number" contextRef="c-315" decimals="2" name="cdxs:SaleOfStockCommissionsPercentageOfGrossSalesPrice" scale="-2" id="f-1012">3</ix:nonFraction>% of the gross sales price of any shares sold pursuant to the EDA. With the exception of certain expenses, we will pay PSC up to <ix:nonFraction unitRef="number" contextRef="c-317" decimals="2" name="cdxs:SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" scale="-2" id="f-1013">8</ix:nonFraction>% of the gross sales price of the shares sold pursuant to the EDA for a combined amount of commission and reimbursement of PSC's expenses and fees. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, <ix:nonFraction unitRef="shares" contextRef="c-318" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:num-dot-decimal" scale="0" id="f-1014">3,079,421</ix:nonFraction> shares of our common stock were issued and sold pursuant to the EDA. During the year ended December&#160;31, 2023, we received gross proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:SaleOfStockConsiderationReceivedOnTransactionGross" format="ixt:num-dot-decimal" scale="6" id="f-1015">8.7</ix:nonFraction>&#160;million or $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:SaleOfStockConsiderationReceivedOnTransaction" format="ixt:num-dot-decimal" scale="6" id="f-1016">7.9</ix:nonFraction>&#160;million in net proceeds after PSC's commissions and direct offering expenses of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:PaymentsOfStockIssuanceCosts" format="ixt:num-dot-decimal" scale="6" id="f-1017">0.7</ix:nonFraction>&#160;million. As of December&#160;31, 2023, $<ix:nonFraction unitRef="usd" contextRef="c-319" decimals="-5" name="cdxs:SaleOfStockValueOfSharesForIssuance" format="ixt:num-dot-decimal" scale="6" id="f-1018">41.3</ix:nonFraction> million of shares remained available for sale under the EDA. During the year ended December 31, 2022, no shares of our common stock were sold pursuant to the EDA.</span></div></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_121"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 11. <ix:nonNumeric contextRef="c-1" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="f-1019" continuedAt="f-1019-1" escape="true">401(k) Plan</ix:nonNumeric></span></div><ix:continuation id="f-1019-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2005, we implemented a 401(k) Plan covering certain employees. Currently, all of our United States based employees over the age of 18 are eligible to participate in the 401(k) Plan. Under the 401(k) Plan, eligible employees may elect to reduce their current compensation up to a certain annual limit and contribute these amounts to the 401(k) Plan. We may make matching or other contributions to the 401(k) Plan on behalf of eligible employees. We recorded employer matching contributions expense o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="6" id="f-1020">1.4</ix:nonFraction> million,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="6" id="f-1021">1.6</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-5" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="6" id="f-1022">1.1</ix:nonFraction> million in the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">94</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_124"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 12. <ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxDisclosureTextBlock" id="f-1023" continuedAt="f-1023-1" escape="true">Income Taxes</ix:nonNumeric></span></div><ix:continuation id="f-1023-1" continuedAt="f-1023-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" id="f-1024" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our loss before provision for income taxes were as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1025">76,169</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1026">33,269</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1027">21,037</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" id="f-1028">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" id="f-1029">47</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" id="f-1030">53</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1031">76,171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1032">33,316</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1033">21,090</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax provision for the years ended December&#160;31, 2023 and 2022 consists primarily of current year state and foreign income taxes. The tax provision for the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 2021 consists primarily of taxes attributable to foreign operations. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="f-1034" continuedAt="f-1034-1" escape="true">The components of the provision for income taxes are as follows (in thousands):&#160;</ix:nonNumeric><br/></span><ix:continuation id="f-1034-1"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current provision:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="f-1035">27</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="f-1036">141</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:fixed-zero" scale="3" id="f-1037">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" id="f-1038">42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" id="f-1039">142</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" id="f-1040">198</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current provision </span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="f-1041">69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="f-1042">283</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="f-1043">198</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred benefit:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:fixed-zero" scale="3" id="f-1044">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" id="f-1045">7</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" id="f-1046">9</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred benefit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:fixed-zero" scale="3" id="f-1047">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="f-1048">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="f-1049">9</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1050">69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1051">276</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1052">189</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></ix:continuation></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="f-1053" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax benefit at federal statutory rate</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="3" id="f-1054">15,995</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="3" id="f-1055">6,996</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="3" id="f-1056">4,429</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-1057">2,208</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" id="f-1058">494</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-1059">2,235</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="f-1060">925</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" format="ixt:num-dot-decimal" scale="3" id="f-1061">1,793</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" format="ixt:num-dot-decimal" scale="3" id="f-1062">1,132</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign operations taxed at different rates</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" format="ixt:fixed-zero" scale="3" id="f-1063">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" scale="3" id="f-1064">78</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" scale="3" id="f-1065">80</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1066">1,967</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" scale="3" id="f-1067">239</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1068">2,698</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other nondeductible items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" scale="3" id="f-1069">438</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" scale="3" id="f-1070">238</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" scale="3" id="f-1071">711</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" scale="3" id="f-1072">152</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" scale="3" id="f-1073">80</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" scale="3" id="f-1074">257</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1075">16,640</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1076">9,400</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1077">9,635</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1078">69</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1079">276</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1080">189</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred income taxes reflect the net tax effects of (a)&#160;temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes, and (b)&#160;operating losses and tax credit carryforwards.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">95</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1023-2" continuedAt="f-1023-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="f-1081" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1082">72,586</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1083">69,915</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1084">16,412</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1085">14,806</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenues</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsDeferredIncome" scale="3" id="f-1086">176</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsDeferredIncome" format="ixt:num-dot-decimal" scale="3" id="f-1087">1,123</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1088">4,445</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1089">4,967</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserves and accruals</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" format="ixt:num-dot-decimal" scale="3" id="f-1090">2,774</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" format="ixt:num-dot-decimal" scale="3" id="f-1091">2,487</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="f-1092">457</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" format="ixt:fixed-zero" scale="3" id="f-1093">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" scale="3" id="f-1094">532</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" scale="3" id="f-1095">866</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capital losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsCapitalLossCarryforwards" scale="3" id="f-1096">424</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsCapitalLossCarryforwards" scale="3" id="f-1097">413</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D Capitalization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" format="ixt:num-dot-decimal" scale="3" id="f-1098">26,821</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" format="ixt:num-dot-decimal" scale="3" id="f-1099">16,502</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease liability</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DeferredTaxAssetsLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1100">3,608</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cdxs:DeferredTaxAssetsLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1101">9,586</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsOther" format="ixt:num-dot-decimal" scale="3" id="f-1102">2,542</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsOther" scale="3" id="f-1103">125</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax assets:</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-1104">130,777</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-1105">120,790</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1106">127,835</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1107">111,183</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DeferredTaxLiabilitiesRightOfUseAssets" format="ixt:num-dot-decimal" scale="3" id="f-1108">2,958</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cdxs:DeferredTaxLiabilitiesRightOfUseAssets" format="ixt:num-dot-decimal" scale="3" id="f-1109">8,624</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:fixed-zero" scale="3" id="f-1110">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" scale="3" id="f-1111">736</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesOther" format="ixt:fixed-zero" scale="3" id="f-1112">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="f-1113">263</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax liabilities:</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1114">2,958</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1115">9,623</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net deferred tax liabilities</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxLiabilities" scale="3" id="f-1116">16</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxLiabilities" scale="3" id="f-1117">16</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC 740 requires that the tax benefit of NOLs, temporary differences and credit carryforwards be recorded as an asset to the extent that management assesses that realization is "more likely than not." Realization of the future tax benefits is dependent on our ability to generate sufficient taxable income within the carryforward period. Because of our history of operating losses, management believes that recognition of the deferred tax assets arising from the above-mentioned future tax benefits is currently not more likely than not to be realized and, accordingly, has provided a valuation allowance against our deferred tax assets. Accordingly, the net deferred tax assets in all our jurisdictions have been fully reserved by a valuation allowance. The net valuation allowance increased by</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" format="ixt:num-dot-decimal" scale="6" id="f-1118">16.7</ix:nonFraction> million d</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">uring the year ended December&#160;31, 2023, increased by $<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-5" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" format="ixt:num-dot-decimal" scale="6" id="f-1119">9.4</ix:nonFraction>&#160;million during the year ended December&#160;31, 2022, and increased by $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-5" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" format="ixt:num-dot-decimal" scale="6" id="f-1120">9.6</ix:nonFraction>&#160;million during the year ended December&#160;31, 2021. At such time as it is determined that it is more likely than not that the deferred tax assets are realizable, the valuation allowance will be reduced.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock" id="f-1121" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2023 (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Expiration<br/>Years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-320" decimals="-3" name="us-gaap:OperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1122">182,918</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026-2037</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-320" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" format="ixt:num-dot-decimal" scale="3" id="f-1123">118,569</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-321" decimals="-3" name="us-gaap:OperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1124">147,481</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028-2041</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-320" decimals="-3" name="us-gaap:TaxCreditCarryforwardAmount" format="ixt:num-dot-decimal" scale="3" id="f-1125">17,815</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2023-2041</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-321" decimals="-3" name="us-gaap:TaxCreditCarryforwardAmount" format="ixt:num-dot-decimal" scale="3" id="f-1126">19,223</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Current U.S. federal and California tax laws include substantial restrictions on the utilization of NOLs and tax credit carryforwards in the event of an ownership change of a corporation. Accordingly, the Company's ability to utilize NOLs and tax credit carryforwards may be limited as a result of such ownership changes</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We performed an analysis in 2023 and determined that there was not a limitation that would result in the expiration of carryforwards before they are utilized.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">96</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1023-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense or benefit from continuing operations is generally determined without regard to other categories of earnings, such as discontinued operations and other comprehensive income. An exception is provided in ASC 740 when there is aggregate income from categories other than continuing operations and a loss from continuing operations in the current year. In this case, the tax benefit allocated to continuing operations is the amount by which the loss from continuing operations reduces the tax expenses recorded with respect to the other categories of earnings, even when a valuation allowance has been established against the deferred tax assets. In instances where a valuation allowance is established against current year losses, income from other sources is considered when determining whether sufficient future taxable income exists to realize the deferred tax assets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2014, we determined that the undistributed earnings o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f our India subsidiary will be repatriated to the United States, and accordingly, we have provided a deferred tax liability totaling $<ix:nonFraction unitRef="usd" contextRef="c-322" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings" format="ixt:num-dot-decimal" scale="3" id="f-1127"><ix:nonFraction unitRef="usd" contextRef="c-323" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings" format="ixt:num-dot-decimal" scale="3" id="f-1128">16</ix:nonFraction></ix:nonFraction>&#160;thousand as of December&#160;31, 2023 and 2022, for local taxes that would be incurred upon repatriation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply the provisions of ASC 740 to account for uncertain income tax</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">es. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="f-1129" continuedAt="f-1129-1" escape="true">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;</ix:nonNumeric><br/></span><ix:continuation id="f-1129-1"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1130">18,571</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1131">15,261</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1132">12,683</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions based on tax positions related to current year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1133">2,164</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1134">3,553</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1135">2,206</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions to tax position of prior years</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:fixed-zero" scale="3" id="f-1136">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:fixed-zero" scale="3" id="f-1137">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1138">372</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reductions to tax position of prior years</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1139">531</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1140">243</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" format="ixt:fixed-zero" scale="3" id="f-1141">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1142">20,204</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1143">18,571</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1144">15,261</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></ix:continuation></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize interest and penalties as a co</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mponent of our income tax expense. Total interest and penalties recognized in the consolidated statements of operations were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="3" id="f-1145">42</ix:nonFraction> thousand, $<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="3" id="f-1146">42</ix:nonFraction> thousand and $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="3" id="f-1147">61</ix:nonFraction> thousand in 2023, 2022 and 2021, respectively. Total penalties and interest recognized in the balance sheet was $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="6" id="f-1148">0.6</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="6" id="f-1149">0.5</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="6" id="f-1150">0.5</ix:nonFraction> million as of December&#160;31, 2023, 2022 and 2021, respectively. The total unrecognized tax benefits that, if recognized currently, would impact our company&#8217;s effective tax rate were $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" format="ixt:num-dot-decimal" scale="6" id="f-1151"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" format="ixt:num-dot-decimal" scale="6" id="f-1152"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" format="ixt:num-dot-decimal" scale="6" id="f-1153">0.3</ix:nonFraction></ix:nonFraction></ix:nonFraction> million as of December&#160;31, 2023, 2022 and 2021. We do not expect any material changes to our uncertain tax positions within the next 12 months. We are not subject t</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">o examination by United States federal or state tax authorities for years prior to 2002 and foreign tax authorities for years prior to 2014.</span></div></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_127"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 13. <ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="f-1154" continuedAt="f-1154-1" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="f-1154-1" continuedAt="f-1154-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Operating Leases</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we occupy approximately <ix:nonFraction unitRef="sqft" contextRef="c-4" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1155">77,300</ix:nonFraction> square feet of office and laboratory space in multiple buildings within the same business park operated by Metropolitan Life Insurance Company (&#8220;MetLife&#8221;). Our lease agreement with MetLife (&#8220;RWC Lease&#8221;) includes approximately <ix:nonFraction unitRef="sqft" contextRef="c-324" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1156">28,200</ix:nonFraction> square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#8220;200/220 Penobscot Space&#8221;) and approximately <ix:nonFraction unitRef="sqft" contextRef="c-325" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1157">37,900</ix:nonFraction> square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#8220;400 Penobscot Space&#8221;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#8220;Penobscot Space&#8221;), and approximately <ix:nonFraction unitRef="sqft" contextRef="c-326" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1158">11,200</ix:nonFraction> square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#8220;501 Chesapeake Space&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In February 2019, we entered into an Eighth Amendment to the Lease (the &#8220;Eighth Amendment&#8221;) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have <ix:nonFraction unitRef="renewal_option" contextRef="c-324" decimals="INF" name="cdxs:LesseeOperatingLeaseOptionToExtendNumber" format="ixt-sec:numwordsen" scale="0" id="f-1159">one</ix:nonFraction> (1) option to extend the term of the lease for the Penobscot Space for five (<ix:nonNumeric contextRef="c-324" name="us-gaap:LesseeOperatingLeaseRenewalTerm" format="ixt-sec:duryear" id="f-1160">5</ix:nonNumeric>) years, and <ix:nonFraction unitRef="renewal_option" contextRef="c-326" decimals="INF" name="cdxs:LesseeOperatingLeaseOptionToExtendNumber" format="ixt-sec:numwordsen" scale="0" id="f-1161">one</ix:nonFraction> (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (<ix:nonNumeric contextRef="c-326" name="us-gaap:LesseeOperatingLeaseRenewalTerm" format="ixt-sec:duryear" id="f-1162">5</ix:nonNumeric>) years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of&#160;$<ix:nonFraction unitRef="usd" contextRef="c-327" decimals="-5" name="us-gaap:RestrictedCashAndInvestmentsNoncurrent" format="ixt:num-dot-decimal" scale="6" id="f-1163"><ix:nonFraction unitRef="usd" contextRef="c-328" decimals="-5" name="us-gaap:RestrictedCashAndInvestmentsNoncurrent" format="ixt:num-dot-decimal" scale="6" id="f-1164">1.1</ix:nonFraction></ix:nonFraction> million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of&#160;December&#160;31, 2023 and 2022, and are recorded as non-current restricted cash on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (&#8220;ARE&#8221;) to lease a portion of a facility consisted of approximately <ix:nonFraction unitRef="sqft" contextRef="c-329" decimals="0" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1165">36,593</ix:nonFraction> rentable square feet in San Carlos, California to serve as additional office and research and development laboratory space (the &#8220;San Carlos Space&#8221;). The lease had a <ix:nonNumeric contextRef="c-329" name="us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1" format="ixt-sec:duryear" id="f-1166">10</ix:nonNumeric>-year term from the lease commencement date of November 30, 2021 with <ix:nonFraction unitRef="option" contextRef="c-329" decimals="INF" name="cdxs:LesseeOperatingLeaseOptionToExtendNumber" format="ixt-sec:numwordsen" scale="0" id="f-1167">one</ix:nonFraction> option to extend the term for an additional period of <ix:nonNumeric contextRef="c-329" name="us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1" format="ixt-sec:duryear" id="f-1168">5</ix:nonNumeric> years.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">97</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1154-2" continuedAt="f-1154-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#8220;Assignment Agreement&#8221;) with Vaxcyte, Inc. (&#8220;Vaxcyte&#8221;) to assign to Vaxcyte all of the Company&#8217;s right, title and interest in, under and to the San Carlos Space and the Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE entered into a Consent to Assignment and First Amendment (the &#8220;Consent&#8221;) pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#8217;s interest as tenant in the lease and agreed to release the Company from all of its obligations under the lease that accrue from and after the assignment. Under the Assignment Agreement, the Company prepaid to ARE (i) the base rent, as defined in the lease agreement, and (ii) certain amounts payable to ARE in connection with tenant improvements completed by ARE pursuant to the lease, which a</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mounted to $<ix:nonFraction unitRef="usd" contextRef="c-330" decimals="-5" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="6" id="f-1169">3.1</ix:nonFraction> million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We provided ARE with a $<ix:nonFraction unitRef="usd" contextRef="c-330" decimals="-5" name="us-gaap:SecurityDeposit" format="ixt:num-dot-decimal" scale="6" id="f-1170">0.5</ix:nonFraction> million security deposit in the form of a letter of credit, which was released in November 2023 following the effectiveness of the lease assignment on October 1, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the Assignment Agreement, the Company remeasured the lease obligation for the San Carlos Space as $<ix:nonFraction unitRef="usd" contextRef="c-330" decimals="-5" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="6" id="f-1171">3.1</ix:nonFraction> million, or the present value of the remaining lease payments, which consist of the remaining rent through the effectiveness of the lease assignment and certain amounts payable to ARE pursuant to the Assignment Agreement, and wrote off the remaining lease liability of $<ix:nonFraction unitRef="usd" contextRef="c-331" decimals="-5" name="cdxs:OperatingLeaseWriteOffDueToLeaseModification" format="ixt:num-dot-decimal" scale="6" id="f-1172">19.6</ix:nonFraction> million and the corresponding right of use asset balance. Simultaneously, the Company determined that indicators of impairment existed because the lease assignment will impact the utilization of the related right of use assets and leasehold improvements in the San Carlos Space, and therefore performed a recoverability test by estimating future undiscounted net cash flows expected to be generated from the use of these assets. As there were no substantial future cash inflows associated with these assets, the carrying values of these assets were deemed unrecoverable. As a result, the Company recognized a non-cash impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-236" decimals="-5" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="6" id="f-1173">7.7</ix:nonFraction> million, of which $<ix:nonFraction unitRef="usd" contextRef="c-236" decimals="-5" name="us-gaap:ImpairmentOfLeasehold" format="ixt:num-dot-decimal" scale="6" id="f-1174">4.7</ix:nonFraction> million is related to leasehold improvements and $<ix:nonFraction unitRef="usd" contextRef="c-236" decimals="-5" name="us-gaap:OperatingLeaseImpairmentLoss" format="ixt:num-dot-decimal" scale="6" id="f-1175">3.0</ix:nonFraction> million for the right of use assets, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December&#160;31, 2023. </span></div><ix:nonNumeric contextRef="c-1" name="cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" id="f-1176" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2023 and the balance as of December&#160;31, 2023, including the changes during the period (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:77.701%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.369%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Right-of-use Assets - Operating Lease, net</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at January 1, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-1177">39,263</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1178">4,405</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:IncreaseDecreaseInOperatingLeaseRightOfUseAsset" scale="3" id="f-1179">898</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Remeasurement due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:OperatingLeaseWriteOffDueToLeaseModification" format="ixt:num-dot-decimal" scale="3" id="f-1180">19,622</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseImpairmentLoss" format="ixt:num-dot-decimal" scale="3" id="f-1181">2,997</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at December&#160;31, 2023</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-1182">13,137</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div><span><br/></span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:77.701%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.369%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Lease Obligations - Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at January 1, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1183">43,638</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1184">9,897</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest accretion</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:OperatingLeaseInterestAccretion" format="ixt:num-dot-decimal" scale="3" id="f-1185">1,905</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Remeasurement due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:OperatingLeaseWriteOffDueToLeaseModification" format="ixt:num-dot-decimal" scale="3" id="f-1186">19,622</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at December&#160;31, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1187">16,024</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to restore certain areas of the Redwood City facility that we are renting to its original form. We are expensing the asset retirement obligation over the term of the Redwood City lease. We review the estimated obligation each reporting period and make adjustments if our estimates change. As a result of the lease assignment for the San Carlos Space, discussed further above, we wrote off the related asset retirement obligation of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:AssetRetirementObligationWriteoff" format="ixt:num-dot-decimal" scale="6" id="f-1188">0.2</ix:nonFraction> million in 2023. We recorded asset retirement obligations of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:AssetRetirementObligation" format="ixt:num-dot-decimal" scale="6" id="f-1189">0.3</ix:nonFraction>&#160;million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:AssetRetirementObligation" format="ixt:num-dot-decimal" scale="6" id="f-1190">0.5</ix:nonFraction> million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2023 and 2022, respectively, which are included in other liabilities on the consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the years ended December&#160;31, 2023 and 2022.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">98</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1154-3" continuedAt="f-1154-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease and other information</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LeaseCostTableTextBlock" id="f-1191" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:FinanceLeaseCost" format="ixt:fixed-zero" scale="3" id="f-1192">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="cdxs:FinanceLeaseCost" scale="3" id="f-1193">18</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="cdxs:FinanceLeaseCost" scale="3" id="f-1194">106</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1195">6,310</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1196">7,321</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1197">4,396</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term lease costs</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShortTermLeaseCost" format="ixt:fixed-zero" scale="3" id="f-1198">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ShortTermLeaseCost" scale="3" id="f-1199">40</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ShortTermLeaseCost" scale="3" id="f-1200">70</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1201">6,310</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1202">7,379</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1203">4,572</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:3pt"><td colspan="12" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> The Company had <ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:VariableLeaseCost" format="ixt:fixed-zero" scale="0" id="f-1204"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:VariableLeaseCost" format="ixt:fixed-zero" scale="0" id="f-1205"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:VariableLeaseCost" format="ixt:fixed-zero" scale="0" id="f-1206">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> variable lease costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amounts included in measurement of lease obligations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1207">9,897</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1208">6,506</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1209">4,197</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Non-cash activity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating Lease - Right-of-use assets obtained in exchange for lease liabilities</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:fixed-zero" scale="3" id="f-1210">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:fixed-zero" scale="3" id="f-1211">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1212">25,445</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Lease</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-4" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-1213">3.8</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-1214">6.6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="f-1215" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:82.379%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.421%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ending December 31,</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2024</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="f-1216">4,727</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" scale="3" id="f-1217">4,868</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" scale="3" id="f-1218">5,014</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" scale="3" id="f-1219">2,533</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" scale="3" id="f-1220">760</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" scale="3" id="f-1221">318</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total minimum lease payments </span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="3" id="f-1222">18,220</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" format="ixt:num-dot-decimal" scale="3" id="f-1223">2,196</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1224">16,024</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reconciliation of operating lease liabilities as shown within the audited consolidated balance sheets:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-1225">3,781</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-1226">12,243</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1227">16,024</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">99</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1154-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Commitments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SupplyCommitmentTableTextBlock" id="f-1228" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:58.987%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.623%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Payments Due by Period</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025 and Thereafter</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Facility maintenance agreement</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-332" decimals="-3" name="us-gaap:OtherCommitment" scale="3" id="f-1229">701</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-332" decimals="-3" name="us-gaap:OtherCommitmentDueInNextTwelveMonths" scale="3" id="f-1230">701</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-332" decimals="-3" name="us-gaap:OtherCommitmentDueInSecondYear" format="ixt:fixed-zero" scale="3" id="f-1231">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Credit Facility</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 30, 2017, we entered into a credit facility (the &#8220;Credit Facility&#8221;) with Western Alliance Bank consisting of term loans (&#8220;Term Debt&#8221;) up to $<ix:nonFraction unitRef="usd" contextRef="c-333" decimals="-5" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" format="ixt:num-dot-decimal" scale="6" id="f-1232">10.0</ix:nonFraction> million, and advances (&#8220;Advances&#8221;) under a revolving line of credit (&#8220;Revolving Line of Credit&#8221;) up to $<ix:nonFraction unitRef="usd" contextRef="c-334" decimals="-5" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" format="ixt:num-dot-decimal" scale="6" id="f-1233">5.0</ix:nonFraction> million with an accounts receivable borrowing base of <ix:nonFraction unitRef="number" contextRef="c-335" decimals="2" name="cdxs:LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" scale="-2" id="f-1234">80</ix:nonFraction>% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2022. In March 2023, we terminated the Credit Facility with Western Alliance Bank. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024, we entered into the Loan Agreement with Innovatus. See further discussion at Note 18, &#8220;Subsequent Events.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Legal Proceedings</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we reached a settlement resolving a non-material dispute involving the Company's trademark. The terms of the settlement are not material to our business or the results of operations. We are currently not a party to any material pending litigation or other material proceedings.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Indemnifications</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were <ix:nonFraction unitRef="usd" contextRef="c-336" decimals="-5" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" format="ixt:fixed-zero" scale="0" id="f-1235"><ix:nonFraction unitRef="usd" contextRef="c-337" decimals="-5" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" format="ixt:fixed-zero" scale="0" id="f-1236"><ix:nonFraction unitRef="usd" contextRef="c-338" decimals="-5" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" format="ixt:fixed-zero" scale="0" id="f-1237">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> accruals for expenses related to indemnification issues for any periods presented.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">100</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_130"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 14. <ix:nonNumeric contextRef="c-1" name="us-gaap:RelatedPartyTransactionsDisclosureTextBlock" id="f-1238" continuedAt="f-1238-1" escape="true">Related Party Transactions </ix:nonNumeric></span></div><ix:continuation id="f-1238-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Molecular Assemblies, Inc.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with MAI, a privately held life sciences company, pursuant to which we purchased <ix:nonFraction unitRef="shares" contextRef="c-158" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-1239">1,587,050</ix:nonFraction> shares of MAI's Series A preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-159" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="6" id="f-1240">1.0</ix:nonFraction> million. Mr. Nicols, our former President and CEO until August 2022, also joined MAI&#8217;s board of directors in June 2020 and remained on MAI's board until September 2023. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the &#8220;MAI Agreement&#8221;), pursuant to which performed services utilizing our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock which are valued based on the observed transaction price of similar securities that MAI issued to third parties. We completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In addition to our initial equity investment and the shares we have received under the MAI Agreement, in April 2021, we purchased an additional <ix:nonFraction unitRef="shares" contextRef="c-339" decimals="INF" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-1241">1,000,000</ix:nonFraction> shares of MAI's Series A preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-340" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="6" id="f-1242">0.6</ix:nonFraction>&#160;million and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in September 2021, we purchased <ix:nonFraction unitRef="shares" contextRef="c-341" decimals="INF" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-1243">9,198,423</ix:nonFraction> shares of MAI's Series B preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-342" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="6" id="f-1244">7.0</ix:nonFraction>&#160;million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase (TdT) enzyme in MAI&#8217;s Fully Enzymatic Synthesis&#8482; (or FES&#8482;) technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues recognized from transactions with MAI in the year ended December 31, 2023, and subsequent to the related party period which ended in August 2022, are included in the consolidated statement of operations. We recogniz</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-166" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-1245">1.2</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-167" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-1246">2.0</ix:nonFraction>&#160;million in research and development revenue pursuant to the MAI Agreement in the years ended December&#160;31, 2022 and 2021, respectively. We recognized $<ix:nonFraction unitRef="usd" contextRef="c-171" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-1247">0.5</ix:nonFraction>&#160;million in product revenue from transactions with MAI in the year ended December&#160;31, 2022 and during the related party period.</span></div></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_133"></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 15. <ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingDisclosureTextBlock" id="f-1248" continuedAt="f-1248-1" escape="true">Segment, Geographical and Other Revenue Information</ix:nonNumeric></span></div><ix:continuation id="f-1248-1" continuedAt="f-1248-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingPolicyPolicyTextBlock" id="f-1249" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="INF" name="cdxs:NumberOfBusinessSegments" format="ixt-sec:numwordsen" scale="0" id="f-1250">two</ix:nonFraction> business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocated resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1251">one</ix:nonFraction> reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous <ix:nonFraction unitRef="segment" contextRef="c-343" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1252">two</ix:nonFraction> segments' information have been revised to conform to this change in our reportable segment.</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Customers</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" id="f-1253" continuedAt="f-1253-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues<br/>For the Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-344" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1254">22</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-345" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1255">56</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-346" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1256">33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-347" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1257">13</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-348" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1258">11</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:9pt;padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">101</span></div></div></div><hr style="page-break-after:always"/><div style="background-color:#ffffff"><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1248-2"><ix:continuation id="f-1253-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-349" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1259">53</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-350" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1260">10</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-351" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1261">12</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-352" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1262">21</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-353" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1263">13</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer F</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-354" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1264">12</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Geographical Information</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" id="f-1265" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1266">13,733</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1267">17,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1268">23,481</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)(3)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1269">22,907</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1270">56,540</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1271">20,187</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(4)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1272">33,503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1273">65,050</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1274">61,086</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1275">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1276">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1277">104,754</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> United States revenue was $<ix:nonFraction unitRef="usd" contextRef="c-355" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1278">13.7</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-356" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1279">17.0</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-357" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1280">23.4</ix:nonFraction> million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Ireland revenue was $<ix:nonFraction unitRef="usd" contextRef="c-358" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1281">0.5</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-359" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1282">37.2</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-360" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1283">1.4</ix:nonFraction> million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Switzerland revenue was $<ix:nonFraction unitRef="usd" contextRef="c-361" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1284">11.1</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-362" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1285">9.2</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-363" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1286">10.1</ix:nonFraction> million, for the for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> China revenue was $<ix:nonFraction unitRef="usd" contextRef="c-364" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1287">20.3</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-365" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1288">48.6</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-366" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-1289">43.5</ix:nonFraction> million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" id="f-1290" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-367" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1291">28,624</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-368" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1292">61,877</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" id="f-1293" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable goodwill was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-1294">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-1295">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GoodwillImpairmentLoss" scale="3" id="f-1296">778</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="3" id="f-1297">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-1298">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-1299">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_136"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 16. <ix:nonNumeric contextRef="c-1" name="us-gaap:CreditLossFinancialInstrumentTextBlock" id="f-1300" continuedAt="f-1300-1" escape="true">Allowance for Credit Losses</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" id="f-1301" escape="true"><ix:continuation id="f-1300-1" continuedAt="f-1300-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets allowance for credit losses (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-1302">163</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-1303">416</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-1304">74</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProvisionForLoanLossesExpensed" format="ixt:fixed-zero" scale="3" id="f-1305">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:ProvisionForLoanLossesExpensed" scale="3" id="f-1306">54</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:ProvisionForLoanLossesExpensed" scale="3" id="f-1307">342</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Write-offs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:AllowanceForCreditLossWriteOff" scale="3" id="f-1308">33</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="cdxs:AllowanceForCreditLossWriteOff" scale="3" id="f-1309">257</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="cdxs:AllowanceForCreditLossWriteOff" format="ixt:fixed-zero" scale="3" id="f-1310">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Adjustment to existing allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:AllowanceForCreditLossAdjustment" scale="3" id="f-1311">65</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="cdxs:AllowanceForCreditLossAdjustment" scale="3" id="f-1312">50</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="cdxs:AllowanceForCreditLossAdjustment" format="ixt:fixed-zero" scale="3" id="f-1313">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-1314">65</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-1315">163</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-1316">416</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:continuation></ix:nonNumeric><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">102</span></div></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:nonNumeric contextRef="c-1" name="us-gaap:PastDueFinancingReceivablesTableTextBlock" id="f-1317" escape="true"><ix:continuation id="f-1300-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize accounts receivable by aging category (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:18.487%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.719%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">91 Days and Over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total Balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-369" decimals="-3" name="us-gaap:AccountsReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-1318">9,583</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-370" decimals="-3" name="us-gaap:AccountsReceivableGross" scale="3" id="f-1319">209</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-371" decimals="-3" name="us-gaap:AccountsReceivableGross" scale="3" id="f-1320">77</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-372" decimals="-3" name="us-gaap:AccountsReceivableGross" scale="3" id="f-1321">167</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-373" decimals="-3" name="us-gaap:AccountsReceivableGross" scale="3" id="f-1322">453</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-1323">10,036</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:5pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">91 Days and Over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total Balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-374" decimals="-3" name="us-gaap:AccountsReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-1324">28,896</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-375" decimals="-3" name="us-gaap:AccountsReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-1325">1,747</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-376" decimals="-3" name="us-gaap:AccountsReceivableGross" scale="3" id="f-1326">469</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-377" decimals="-3" name="us-gaap:AccountsReceivableGross" scale="3" id="f-1327">792</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-378" decimals="-3" name="us-gaap:AccountsReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-1328">3,008</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-1329">31,904</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:continuation></ix:nonNumeric><div id="i70607d03f9f5419aaea4a3a37e686ae9_139"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 17. <ix:nonNumeric contextRef="c-1" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" id="f-1330" continuedAt="f-1330-1" escape="true">Restructuring Charges</ix:nonNumeric></span></div><ix:continuation id="f-1330-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, in alignment with our enhanced strategic focus, we announced a restructuring of our business, including a plan for a workforce reduction of approximately <ix:nonFraction unitRef="number" contextRef="c-379" decimals="2" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" scale="-2" id="f-1331">25</ix:nonFraction>%. During the year ended December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, w</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e recorded a restructuring charge related to this workforce reduction of $<ix:nonFraction unitRef="usd" contextRef="c-380" decimals="-5" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="6" id="f-1332">3.1</ix:nonFraction> million related to severance and related benefit costs. The plan was substantially completed in September 2023 and severance costs were paid through the fourth quarter of 2023. We do not expect to record any significant future charges related to the restructuring plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> In November 2022, we announced a plan for a workforce reduction of approximately <ix:nonFraction unitRef="number" contextRef="c-381" decimals="2" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" scale="-2" id="f-1333">18</ix:nonFraction>% to realign and optimize our workforce requirements in alignment with our refined corporate strategy. The plan was substantially completed in December 2022 and severance costs were paid through the third quarter of 2023. During the years ended December&#160;31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we recorded restructuring charges of $<ix:nonFraction unitRef="usd" contextRef="c-382" decimals="-5" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="6" id="f-1334">0.2</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-383" decimals="-5" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="6" id="f-1335">3.2</ix:nonFraction> million, respectively, related to severance, bonus and other termination benefits in connection with the workforce reduction announced in November 2022. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We do not expect to record any future charges related to the restructuring plans initiated in 2023 and 2022.</span></div></ix:continuation><div id="i70607d03f9f5419aaea4a3a37e686ae9_142"></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 18. <ix:nonNumeric contextRef="c-1" name="us-gaap:SubsequentEventsTextBlock" id="f-1336" continuedAt="f-1336-1" escape="true">Subsequent Events</ix:nonNumeric></span></div><ix:continuation id="f-1336-1"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February&#160;13, 2024, we entered into a <ix:nonNumeric contextRef="c-384" name="us-gaap:DebtInstrumentTerm" format="ixt-sec:durwordsen" id="f-1337">5-year</ix:nonNumeric> loan and security agreement (the &#8220;Loan Agreement&#8221;) with Innovatus Life Sciences Lending Fund I, LP (&#8220;Innovatus&#8221;), an affiliate of Innovatus Capital Partners, LLC, for an aggregate principal amount of up to $<ix:nonFraction unitRef="usd" contextRef="c-385" decimals="-5" name="us-gaap:DebtInstrumentFaceAmount" format="ixt:num-dot-decimal" scale="6" id="f-1338">40.0</ix:nonFraction> million (the &#8220;Term Loans&#8221;). The Term Loans consist of <ix:nonFraction unitRef="tranche" contextRef="c-386" decimals="INF" name="cdxs:DebtInstrumentNumberOfTranches" format="ixt-sec:numwordsen" scale="0" id="f-1339">two</ix:nonFraction> tranches, of which the first tranche of $<ix:nonFraction unitRef="usd" contextRef="c-387" decimals="-5" name="us-gaap:DebtInstrumentFaceAmount" format="ixt:num-dot-decimal" scale="6" id="f-1340">30.0</ix:nonFraction> million was completed on February&#160;13, 2024. We will be eligible to draw on the second tranche of $<ix:nonFraction unitRef="usd" contextRef="c-388" decimals="-5" name="us-gaap:DebtInstrumentFaceAmount" format="ixt:num-dot-decimal" scale="6" id="f-1341">10.0</ix:nonFraction> million upon achievement of certain milestones including certain pre-specified revenue thresholds. The </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Term Loan carries an interest-only period of <ix:nonNumeric contextRef="c-389" name="cdxs:DebtInstrumentInterestPeriod" format="ixt-sec:durmonth" id="f-1342">36</ix:nonNumeric> months and will bear an interest at a floating rate of the sum of (a) the greater of (i) prime rate and (ii) <ix:nonFraction unitRef="number" contextRef="c-390" decimals="4" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="f-1343">7.50</ix:nonFraction>%, plus (b) <ix:nonFraction unitRef="number" contextRef="c-391" decimals="4" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="f-1344">3.25</ix:nonFraction>%. In connection with the Term Loans, we are required to issue to Innovatus a warrant to purchase an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-392" decimals="0" name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" format="ixt:num-dot-decimal" scale="0" id="f-1345">424,028</ix:nonFraction> shares of the Company&#8217;s common stock at an exercise price of $<ix:nonFraction unitRef="usdPerShare" contextRef="c-392" decimals="2" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" scale="0" id="f-1346">2.83</ix:nonFraction> per share. The Loan Agreement contains customary representations and warranties and covenants, subject to customary carve outs, and includes financial covenants related to liquidity and net product revenue, with the latter beginning with the period ending September 30, 2024.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">103</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_145"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9. CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_148"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9A. CONTROLS AND PROCEDURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Evaluation of Disclosure Controls and Procedures</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our management, under the supervision of our Chief Executive Officer and Chief Financial Officer and with the participation of our disclosure committee, evaluated the effectiveness of the design and operation of our disclosure controls and procedures as of December&#160;31, 2023. The term "disclosure controls and procedures," as defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act, means controls and other procedures of a company that are designed to ensure that information required to be disclosed by us in the reports that we file or submit 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 us in the reports that we file or submit u</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nder the Exchange Act is accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, as appropriate, to allow timely decisions regarding required disclosure. Based on this evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective as of December&#160;31, 2023 at the reasonable assurance level.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Management&#8217;s Report on Internal Control over Financial Reporting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as such term is defined in Exchange Act Rules 13a-15(f) and 15d-15(f). Internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external reporting purposes in accordance with United States generally accepted accounting principles.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, we conducted an evaluation of the effectiveness of our internal control over financial reporting as of December&#160;31, 2023 based on the guidelines established in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control-Integrated Framework </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission ("COSO"). Based on the results of our evaluation, our management concluded that our internal control over financial reporting was effective as of December&#160;31, 2023. We reviewed the results of management&#8217;s assessment with our Audit Committee.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our internal control over financial reporting as of December&#160;31, 2023 has been audited by BDO USA, P.C., an independent registered public accounting firm, as stated in their report which is included in Item 8 of this Annual Report.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inherent Limitations on Effectiveness of Controls</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In designing and evaluating the disclosure controls and procedures, management recognizes that any controls and procedures, even if determined effective and no matter how well designed and operated, can provide only reasonable assurance of achieving the desired control objectives to prevent or detect misstatements. In addition, the design of disclosure controls and procedures must reflect the fact that there are resource constraints and that management is required to apply judgment in evaluating the benefits of possible controls and procedures relative to their costs. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Changes in Internal Control over Financial Reporting </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no changes in our internal control over financial reporting (as defined in Rule 13a-15(f) of the Exchange Act) identified in connection with the evaluation required by paragraph (d) of Rule 13a-15 or 15d-15 of the Exchange Act, which occurred during the fourth fiscal quarter of the year ended December&#160;31, 2023, which has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting. &#160;&#160;&#160;&#160;</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_151"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9B. OTHER INFORMATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Rule 10b5-1 Trading Arrangements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the three months ended December&#160;31, 2023, none of the directors or executive officers of the Company <ix:nonNumeric contextRef="c-84" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-1347"><ix:nonNumeric contextRef="c-84" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-1348">adopted</ix:nonNumeric></ix:nonNumeric> or <ix:nonNumeric contextRef="c-84" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1349"><ix:nonNumeric contextRef="c-84" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1350">terminated</ix:nonNumeric></ix:nonNumeric> any contracts, instructions, or written plans for the purchase or sale of our securities that were intended to meet the affirmative defense conditions of Rule 10b5-1(c) or any other &#8220;non-Rule 10b5-1 trading arrangement.&#8221;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">104</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_154"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9C. DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_157"></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART III</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_160"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;10. DIRECTORS, EXECUTIVE OFFICERS AND CORPORATE GOVERNANCE</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have adopted a code of ethics applicable to our principal executive, financial and accounting officers and all persons performing similar functions. A copy of our code of ethics is available on our principal corporate website at www.codexis.com in the Investors section under &#8220;Corporate Governance."</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2024 Proxy Statement.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_163"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;11. EXECUTIVE COMPENSATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2024 Proxy Statement.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_166"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;12. SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2024 Proxy Statement.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_169"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;13. CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS,</span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">AND DIRECTOR INDEPENDENCE</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2024 Proxy Statement.</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_172"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;14. PRINCIPAL ACCOUNTING FEES AND SERVICES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2024 Proxy Statement.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">105</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_175"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART IV</span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_178"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;15. EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></div><div style="margin-top:9pt;padding-left:27pt;text-indent:-27pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">1.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:20.25pt">Financial Statements: See "Index to Consolidated Financial Statements" in Part II, Item&#160;8 of this Annual Report on Form 10-K</span></div><div style="margin-top:9pt;padding-left:27pt;text-indent:-27pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:19.5pt">Exhibits: The exhibits listed in the accompanying index to exhibits are filed or incorporated by reference as part of this Annual Report on Form 10-K.</span></div><div style="margin-top:9pt"><span><br/></span></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">106</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_181"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="-sec-extract:summary;margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT INDEX</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.198%"><tr><td style="width:1.0%"/><td style="width:9.082%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.775%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.743%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312521155123/d207309dex11.htm">Equity Distribution Agreement, dated as of May 7, 2021, between Codexis, Inc. and Piper Sandler &amp; Co. (incorporated by reference to Exhibit 1.1 to the Company&#8217;s Current Report on Form 8-K, filed on May 7, 2021).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000095013010000138/dex31.htm">Amended and Restated Certificate of Incorporation of Codexis, Inc. filed with the Secretary of the State of the State of Delaware on April&#160;27, 2010 and effective as of April&#160;27, 2010 (incorporated by reference to Exhibit&#160;3.1 to the Company&#8217;s Quarterly Report on Form&#160;10-Q for the quarter ended March 31, 2010, filed on May&#160;28, 2010).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312512378221/d405085dex31.htm">Certificate of Designations of Series A Junior Participating Preferred Stock of Codexis, Inc., filed with the Secretary of State of the State of Delaware on September 4, 2012 (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on September 4, 2012).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.3</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312523168972/d522880dex31.htm">Certificate of Amendment to the Amended and Restated Certificate of Incorporation of Codexis, Inc., filed with the Secretary of the State of the State of Delaware on June 14, 2023 (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on June 16, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.4</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">Amended and Restated Bylaws of Codexis, Inc. effective as of </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">February </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">8</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm"> (incorporated by reference to Exhibit&#160;3.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">1</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm"> to the Company&#8217;s </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">Current </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">Report on Form&#160;</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">8-K</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">, filed on February 9, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524029929/d781967dex31.htm">).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reference is made to Exhibits 3.1 through 3.4.</span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312512347356/d351774dex41.htm">Form of the Company&#8217;s Common Stock Certificate (incorporated by reference to Exhibit 4.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended June 30, 2012, filed on August 9, 2012).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.3</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524033744/d787129dex41.htm">Form of Warrant to Purchase Common Stock for Codexis, Inc., issued pursuant to the Loan and Security Agreement by and between the Company and Innovatus Life Sciences Fund I, LP. (incorporated by reference to Exhibit 4.1 to the Company&#8217;s Current Report on Form 8-K, filed on February 13, 2024).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.4</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit44cdxs-20231231.htm">Description of Codexis' Securities Registered Pursuant to Section 12 of the Securities Exchange Act of 1934.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1A*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108a.htm">Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of February 1, 2004.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1B*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108b.htm">Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of June 1, 2004.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1C*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108c.htm">Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of March 9, 2007.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1D*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108d.htm">Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of March 31, 2008.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1E</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312510248333/dex101.htm">Fourth Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of September 17, 2010 (incorporated by reference to Exhibit&#160;10.1 to the Company&#8217;s Quarterly Report on Form&#160;10-Q for the quarter ended September 30, 2010, filed on November&#160;4, 2010).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1F</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312511130937/dex101.htm">Fifth Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of March 16, 2011 (incorporated by reference to Exhibit&#160;10.1 to the Company&#8217;s Quarterly Report on Form&#160;10-Q for the quarter ended March 31, 2011, filed on May 6, 2011).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1G</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312512457399/d398690dex106.htm">Sixth Amendment to Lease by and between the Company and Metropolitan Life Insurance Company dated as of September 27, 2012 (incorporated by reference to Exhibit 10.6 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2012, filed on November 7, 2012).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">107</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.198%"><tr><td style="width:1.0%"/><td style="width:9.082%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.775%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.743%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1H</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037516000079/a103seventhamendmenttolease.htm">Seventh Amendment to Lease by and between the Company and Metropolitan Life Insurance Company dated as of October 11, 2016 (incorporated by reference to Exhibit 10.3 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2016, filed on November 8, 2016).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1I***</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000014/a103leaseamendment8.htm">Eighth Amendment to Lease, dated as of February 8, 2019, by and between the Company and Metropolitan Life Insurance Company (incorporated by reference to Exhibit 10.3 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2019, filed on May 8, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.2+*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312510073393/dex1011.htm">Codexis, Inc. 2010 Equity Incentive Award Plan and Form of Stock Option Agreement.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3A+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex991.htm">Codexis, Inc. 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.1 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3B+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex992.htm">Form of Restricted Stock Unit Award Grant Notice and Restricted Stock Unit Award Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.2 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3C+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex993.htm">Form of Stock Option Grant Notice and Stock Option Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.3 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3D+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex994.htm">Form of Stock Option Grant Notice and Stock Option Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.4 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3E+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex995.htm">Form of Performance Stock Unit Award Grant Notice and Performance Stock Unit Award Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.5 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3F+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex996.htm">Form of Restricted Stock Award Grant Notice and Restricted Stock Award Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.6 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3G+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000029/codexisamendmentto2019ince.htm">Amendment to the Codexis, Inc. 2019 Incentive Award Plan (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on June 16, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex996.htm">Codexis, Inc. 2022 Employment Inducement Award Plan (incorporated by reference to Exhibit 99.1 to the Company's Registration Statement on Form S-8 (File No. 333-269163) filed with the SEC on January 9, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312523004729/d397354dex992.htm">Form of Stock Option Grant Notice and Stock Option Agreement under the 2022 Employment Inducement Award Plan (incorporated by reference to Exhibit 99.2 to the Company's Registration Statement on Form S-8 (File No. 333-269163) filed with the SEC on January 9, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4C+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312523004729/d397354dex993.htm">Form of Restricted Stock Unit Award Grant Notice and Restricted Stock Unit Award Agreement under the 2022 Employment Inducement Award Plan (incorporated by reference to Exhibit 99.3 to the Company's Registration Statement on Form S-8 (File No. 333-269163) filed with the SEC on January 9, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.5+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000029/codexis2023employeestockpu.htm">Codexis, Inc. 2023 Employee Stock Purchase Plan (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on June 16, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.6</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/formindemnificationagreeme.htm">Form of Indemnification Agreement between the Company and each of its directors, officers and certain employees (incorporated by reference to Exhibit 10.4 to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.7+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a102ccseveranceagree.htm">Form of Amended and Restated Change in Control Severance Agreement between the Company and certain of its officers (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2019, filed on November 6, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">108</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.198%"><tr><td style="width:1.0%"/><td style="width:9.082%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.775%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.743%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.8</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312510239748/dex21.htm">Asset Purchase Agreement, dated October 28, 2010, by and among the Company, Codexis Mayflower Holdings, LLC and Maxygen, Inc. (incorporated by reference to Exhibit&#160;2.1 to the Company&#8217;s Current Report on Form&#160;8-K, filed on October 28, 2010).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.9A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a103tayloremploymentltr.htm">Employment Agreement by and between the Company and Ross Taylor effective as of August 4, 2019 </a><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a103tayloremploymentltr.htm">(incorporated by reference to Exhibit 10.3 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2019, filed</a><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a103tayloremploymentltr.htm"> on</a><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a103tayloremploymentltr.htm"> November 6, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.9B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/rosstaylortransitionandsep.htm">Transition and Separation Agreement by and between the Company and Ross Taylor, dated as of February 3, 2023</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/rosstaylortransitionandsep.htm"> (incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/rosstaylortransitionandsep.htm">8B</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/rosstaylortransitionandsep.htm"> to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000119312512347356/d351774dex102.htm">Employment Agreement by and between the Company and John Nicols effective as of May 28, 2012 (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended June 30, 2012, filed on August 9, 2012).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037516000065/a101nicolsemploymentagreea.htm">Amendment to Employment Agreement between the Company and John Nicols, dated April 21, 2016 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended June 30, 2016, filed on August 9, 2016).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10C+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">Amendment to Employment Agreement between the Company and John Nicols, dated November 16, 2017 (incorporated by reference to Exhibit 10.8E to the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2017, filed on March 15, 2018).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10D+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a104nicolsemployagreem.htm">Amendment to Employment Agreement between the Company and John Nicols, effective as of June 28, 2019 (incorporated by reference to Exhibit 10.4 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2019, filed on November 6, 2019).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10E+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/nicolstransitionandseparat.htm">Transition and Separation Agreement by and between the Company and John Nicols, dated as of July 18, 2022 (incorporated by reference to Exhibit 10.1 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.11&#8224;</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm">Acquisition Agre</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm">ement </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm">by and among the Company, </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm">Societ&#233; des Produits Nestl&#233; S.A., formerly known as Nestec Ltd. ("Nestl&#233; Health Science"),</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm"> effective as of </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm">December 26, 2023</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1011codexis_nest.htm">.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12A</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037521000028/exhibit101codexisaresancar.htm">Lease Agreement by and between the Company and ARE-SAN FRANCISCO NO. 63, LLC dated as of January 29, 2021 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2021, filed on May 7, 2021).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12B&#8224;</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000033/codexis-ex101codexis_vaxcy.htm">Assignment and Assumption of Lease by and between the Company and Vaxcyte, Inc. dated as of September 1, 2023  (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2023, filed on November 3, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12C&#8224;</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000033/codexis-ex102landlordconse.htm">Consent to Assignment and First Amendment to Lease Agreement by and between the Company, Vaxcyte Inc. and ARE-San Francisco No. 63, LLC dated as of September 6, 2023 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2023, filed on November 3, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.13+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/dillyemploymentagreement_e.htm">Employment Agreement by and between the Company and Stephen Dilly dated as of August 9, 2022 (incorporated by reference to Exhibit 10.2 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.14A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/norrettofferletterandcda_e.htm">Offer Letter by and between the Company and Kevin Norrett dated as of September 12, 2022 (incorporated by reference to Exhibit 10.3 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.14B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/norrettccseveranceagreemen.htm">Change in Control Severance Agreement by and between the Company and Kevin Norrett dated September 12, 2022 (incorporated by reference to Exhibit 10.4 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">109</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.198%"><tr><td style="width:1.0%"/><td style="width:9.082%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.775%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.743%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.15A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/margaretfitzgeraldofferlet.htm">Offer Letter by and between the Company and Margaret Fitzgerald dated as of October 5, 2022</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/margaretfitzgeraldofferlet.htm"> (incorporated by reference to Exhibit 10.13A to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.15B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/margaret_fitzgeraldchangei.htm">Change in Control Severance Agreement by and between the Company and Margaret Fitzgerald dated October 10, 2022</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/margaret_fitzgeraldchangei.htm"> (incorporated by reference to Exhibit 10.13A to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.16A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryaliofferletter_ex1023a.htm">Offer Letter by and between the Company and Sriram Ryali dated as of December 30, 2023</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryaliofferletter_ex1023a.htm"> (incorporated by reference to Exhibit 10.13A to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.16B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryalichangeofctrlsevera.htm">Change in Control Severance Agreement by and between the Company and Sriram Ryali dated January 27, 2023</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryalichangeofctrlsevera.htm"> (incorporated by reference to Exhibit 10.13A to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.17</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1017codexis_inno.htm">Loan and Security Agreement </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1017codexis_inno.htm">by and between the Company and </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1017codexis_inno.htm">Innovatus Life Sciences Fund I, LP.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1017codexis_inno.htm">, </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1017codexis_inno.htm">e</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1017codexis_inno.htm">ffective as of February 13, 2024</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit231auditconsent2023.htm">Consent of BDO USA, P.C., independent registered public accounting firm.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Power of Attorney (see signature page to this Annual Report on Form 10-K).</span></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit311cdxs-20231231.htm">Certification of Principal Executive Officer Required Under Rule&#160;13a-14(a) and 15d-14(a) of the Securities Exchange Act of 1934, as amended.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit312cdxs-20231231.htm">Certification of Principal Financial Officer Required Under Rule&#160;13a-14(a) and 15d-14(a) of the Securities Exchange Act of 1934, as amended.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.1**</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0e32e1;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit321cdxs-20231231.htm">Certification of Principal Executive Officer and Principal Financial Officer Required Under Rule&#160;13a-14(b) of the Securities Exchange Act of 1934, as amended, and 18 U.S.C. &#167;1350.</a></span></div></td></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">97.1</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex971policyonrecou.htm">C</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex971policyonrecou.htm">odexis, Inc. Clawback Policy effective August</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex971policyonrecou.htm"> 24, 2023</a></span></div></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The following materials from Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2023 formatted in Inline Extensible Business Reporting Language (iXBRL) includes: (i)&#160;Consolidated Balance Sheets at December&#160;31, 2023 and December&#160;31, 2022, (ii)&#160;Consolidated Statements of Operations for the years ended December&#160;31, 2023, December&#160;31, 2022 and December&#160;31, 2021, (iii)&#160;Consolidated Statements of Cash Flows for the years ended December&#160;31, 2023, December&#160;31, 2022 and December&#160;31, 2021, (vi) Consolidated Statements of Stockholders&#8217; Equity for the years ended December 31, 2023, December&#160;31, 2022 and December&#160;31, 2021 and (vii)&#160;Notes to Consolidated Financial Statements.</span></div></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.SCH</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Schema Document</span></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.CAL</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Calculation Linkbase Document</span></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.DEF</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Definition Linkbase Document</span></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.LAB</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Label Linkbase Document</span></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.PRE</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Presentation Linkbase Document</span></td></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">110</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.198%"><tr><td style="width:1.0%"/><td style="width:9.082%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.775%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.743%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">104</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The cover page from the Company&#8217;s Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2023, formatted in Inline XBRL and contained in Exhibit 101.</span></div></td></tr></table></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">+&#160;&#160;&#160;&#160;Indicates a management contract or compensatory plan or arrangement.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8224;&#160;&#160;&#160;&#160;Confidential treatment has been granted for certain information contained in this exhibit. Such information has been omitted and filed separately with the Securities and Exchange Commission.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">*&#160;&#160;&#160;&#160;Filed as exhibits to the registrant&#8217;s Registration Statement on Form S-1 (File No.&#160;333-164044), effective April&#160;21, 2010, and incorporated herein by reference.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">**&#160;&#160;&#160;&#160;Pursuant to Item 601(b)(32) of Regulation S-K this exhibit is furnished rather than filed with this report.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">***&#160;&#160;&#160;&#160;Portions of the exhibit, marked by brackets, have been omitted because the omitted information is (i) not material and (ii) customarily and actually treated as private or confidential.</span></div><div><span><br/></span></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_184"></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;16. FORM 10-K SUMMARY</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</span></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="padding-left:27pt"><span><br/></span></div><div style="padding-left:27pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">111</span></div></div></div><div id="i70607d03f9f5419aaea4a3a37e686ae9_187"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SIGNATURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of Section&#160;13 or 15(d) 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></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%"><tr><td style="width:1.0%"/><td style="width:6.085%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:42.762%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.888%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:41.865%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CODEXIS, INC.</span></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By:</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Stephen Dilly</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Principal Executive Officer)</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-align:center"><span><br/></span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">POWER OF ATTORNEY</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each person whose individual signature appears below hereby authorizes and appoints Stephen Dilly, Sriram Ryali and Margaret Fitzgerald, and each of them, with full power of substitution and resubstitution and full power to act without the other, as his or her true and lawful attorney-in-fact and agent to act in his or her name, place and stead and to execute in the name and on behalf of each person, individually and in each capacity stated below, and to file any and all amendments to this annual report on Form 10-K and to file the same, with all exhibits thereto, and other documents in connection therewith, with the Securities and Exchange Commission, granting unto said attorneys-in-fact and agents, and each of them, full power and authority to do and perform each and every act and thing, ratifying and confirming all that said attorneys-in-fact and agents or any of them or their or his substitute or substitutes may lawfully do or cause to be done by virtue thereof.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the Registrant and in the capacities and on the dates indicated.</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:37.052%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.588%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:31.090%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.308%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.362%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">SIGNATURE</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">TITLE</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">DATE</span></td></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Stephen Dilly</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President, Chief Executive Officer and Director (Principal Executive Officer)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stephen Dilly</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Sriram Ryali</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief Financial Officer (Principal Financial and Accounting Officer)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sriram Ryali</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Byron L. Dorgan</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chairman of the Board of Directors</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Byron L. Dorgan</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Jennifer Aaker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Jennifer Aaker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Esther Martinborough</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Esther Martinborough</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Alison Moore</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Alison Moore</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;H. Stewart Parker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">H. Stewart Parker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Rahul Singhvi</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Rahul Singhvi</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 2.12pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ David V. Smith</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 2.12pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">David V. Smith</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Dennis P. Wolf</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 28, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dennis P. Wolf</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span><br/></span></div><div style="height:33.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">112</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-4.4
<SEQUENCE>2
<FILENAME>exhibit44cdxs-20231231.htm
<DESCRIPTION>EX-4.4
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="ib5ddf2180bdd4ab8b8adecc49a8008a3_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:12pt;padding-right:7.55pt;text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Exhibit&#160;4.4</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">DESCRIPTION OF THE REGISTRANT&#8217;S SECURITIES <br>REGISTERED PURSUANT TO SECTION 12 OF THE <br>SECURITIES EXCHANGE ACT OF 1934</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">As of February 28, 2024, Codexis, Inc. (&#8220;we,&#8221; &#8220;us&#8221; or &#8220;our&#8221;) had one class of securities registered under Section&#160;12 of the Securities Exchange Act of 1934, as amended&#58; our common stock, $0.0001 par value per share (&#8220;common stock&#8221;).</font></div><div style="margin-bottom:10pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Description of Common Stock</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The following description of our common stock is a summary and does not purport to be complete.  It is subject to and qualified in its entirety by reference to our amended and restated certificate of incorporation, our certificate of designations of Series A Junior Participating Preferred Stock and our amended and restated bylaws, each of which are incorporated by reference as an exhibit to the Annual Report on Form 10-K of which this Exhibit&#160;4.4 is a part.  We encourage you to read our amended and restated certificate of incorporation, our certificate of designations of Series A Junior Participating Preferred Stock, our amended and restated bylaws and the applicable provisions of the Delaware General Corporation Law for additional information.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Authorized Capital Stock</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our authorized capital stock consists of&#58;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">200,000,000 shares of common stock, $0.0001 par value per share&#59; and</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">5,000,000 shares of preferred stock, $0.0001 par value per share, of which 100,000 shares have been designated as Series A Junior Participating Preferred Stock.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Voting Rights</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Each holder of our common stock is entitled to one vote for each share on all matters submitted to a vote of the stockholders, including the election of directors.  Our stockholders do not have cumulative voting rights in the election of directors.  Accordingly, holders of a majority of the voting shares are able to elect all of the directors.  In addition, the affirmative vote of holders of 66 2&#47;3% of the voting power of all of the then outstanding voting stock will be required to take certain actions, including amending certain provisions of our amended and restated certificate of incorporation, such as the provisions relating to amending our amended and restated bylaws, the classified board and director liability.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Dividends</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Subject to preferences that may be applicable to any then outstanding preferred stock, holders of our common stock are entitled to receive dividends, if any, as may be declared from time to time by our board of directors out of legally available funds.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liquidation</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">In the event of our liquidation, dissolution or winding up, holders of our common stock will be entitled to share ratably in the net assets legally available for distribution to stockholders after the payment of all of our debts and other liabilities and the satisfaction of any liquidation preference granted to the holders of any then outstanding shares of preferred stock.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Rights and Preferences</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Holders of our common stock have no preemptive, conversion, subscription or other rights, and there are no redemption or sinking fund provisions applicable to our common stock.  The rights, preferences and privileges of the holders of our common stock are subject to and may be adversely affected by the rights of the holders of shares of any series of our preferred stock that we may designate in the future.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Preferred Stock &#8211; Limitations on Rights of Holders of Common Stock</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our board of directors has the authority, without further action by our stockholders, to issue up to 5,000,000 shares of preferred stock in one or more series and to fix the rights, preferences, privileges and restrictions thereof.  These rights, preferences and privileges could include dividend rights, conversion rights, voting rights, </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt"><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">terms of redemption, liquidation preferences, sinking fund terms and the number of shares constituting any series or the designation of such series, any or all of which may be greater than the rights of common stock.  The issuance of our preferred stock could adversely affect the voting power of holders of common stock and the likelihood that such holders will receive dividend payments and payments upon our liquidation.  In addition, the issuance of preferred stock could have the effect of delaying, deferring or preventing a change in control of our company or other corporate action.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Anti-Takeover Effects of Provisions of our Amended and Restated Certificate of Incorporation, our Amended and Restated Bylaws and Delaware Law</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Some provisions of Delaware law and our amended and restated certificate of incorporation and our amended and restated bylaws contain provisions that could make the following transactions more difficult&#58; acquisition of us by means of a tender offer&#59; acquisition of us by means of a proxy contest or otherwise&#59; or removal of our incumbent officers and directors.  It is possible that these provisions could make it more difficult to accomplish or could deter transactions that stockholders may otherwise consider to be in their best interest or in our best interests, including transactions that might result in a premium over the market price for our shares.</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">These provisions, summarized below, are expected to discourage coercive takeover practices and inadequate takeover bids.  These provisions are also designed to encourage persons seeking to acquire control of us to first negotiate with our board of directors.  We believe that the benefits of increased protection of our potential ability to negotiate with the proponent of an unfriendly or unsolicited proposal to acquire or restructure us outweigh the disadvantages of discouraging these proposals because negotiation of these proposals could result in an improvement of their terms.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Delaware Anti-Takeover Statute</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">We are subject to the provisions of Section&#160;203 of the Delaware General Corporation Law.  Under Section&#160;203, we would generally be prohibited from engaging in any business combination with any interested stockholder for a period of three years following the time that this stockholder became an interested stockholder unless&#58;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">prior to this time, the board of directors of the corporation approved either the business combination or the transaction that resulted in the stockholder becoming an interested stockholder&#59;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">upon consummation of the transaction that resulted in the stockholder becoming an interested stockholder, the interested stockholder owned at least 85% of the voting stock of the corporation outstanding at the time the transaction commenced, excluding shares owned by persons who are directors and also officers, and by employee stock plans in which employee participants do not have the right to determine confidentially whether shares held subject to the plan will be tendered in a tender or exchange offer&#59; or</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">at or subsequent to such time, the business combination is approved by the board of directors and authorized at an annual or special meeting of stockholders, and not by written consent, by the affirmative vote of at least 66 2&#47;3% of the outstanding voting stock that is not owned by the interested stockholder.</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Under Section&#160;203, a &#8220;business combination&#8221; includes&#58;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any merger or consolidation involving the corporation and the interested stockholder&#59;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any sale, transfer, pledge or other disposition of 10% or more of the assets of the corporation involving the interested stockholder&#59;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any transaction that results in the issuance or transfer by the corporation of any stock of the corporation to the interested stockholder, subject to limited exceptions&#59;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any transaction involving the corporation that has the effect of increasing the proportionate share of the stock of any class or series of the corporation beneficially owned by the interested stockholder&#59; or</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">the receipt by the interested stockholder of the benefit of any loans, advances, guarantees, pledges or other financial benefits provided by or through the corporation.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></div><div style="margin-bottom:6pt"><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">In general, Section&#160;203 defines an interested stockholder as an entity or person beneficially owning 15% or more of the outstanding voting stock of the corporation and any entity or person affiliated with or controlling or controlled by such entity or person.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Undesignated Preferred Stock</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The ability to authorize undesignated preferred stock makes it possible for our board of directors to issue preferred stock with voting or other rights or preferences that could impede the success of any attempt to change control of us.  These and other provisions may have the effect of deterring hostile takeovers or delaying changes in control or management of our company.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Special Stockholder Meetings</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our amended and restated certificate of incorporation provides that a special meeting of stockholders may be called only by our chairman of the board of directors, Chief Executive Officer or President, or by a resolution adopted by a majority of our board of directors.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Requirements for Advance Notification of Stockholder Nominations and Proposals</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our amended and restated bylaws establish advance notice procedures with respect to stockholder proposals and the nomination of candidates for election as directors, other than nominations made by or at the direction of the board of directors or a committee of the board of directors.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Elimination of Stockholder Action by Written Consent</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our amended and restated certificate of incorporation eliminates the right of stockholders to act by written consent without a meeting.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Classified Board&#59; Election and Removal of Directors&#59; Filling Vacancies</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our board of directors is divided into three classes.  The directors in each class will serve for a three-year term, one class being elected each year by our stockholders, with staggered three-year terms.  Only one class of directors will be elected at each annual meeting of our stockholders, with the other classes continuing for the remainder of their respective three-year terms.  Because our stockholders do not have cumulative voting rights, our stockholders holding a majority of the shares of common stock outstanding will be able to elect all of our directors. Our amended and restated certificate of incorporation provides for the removal of any of our directors (i) with cause by the affirmative vote of the holders of a majority of the voting power of all the then-outstanding shares of voting stock entitled to vote at an election of directors, or (ii) without cause by the affirmative vote of the holders of at least a 66 2&#47;3% of the voting power of all the then-outstanding shares of voting stock entitled to vote at an election of directors.  Furthermore, any vacancy on our board of directors, however occurring, including a vacancy resulting from an increase in the size of the board of directors, may only be filled by a resolution of the board of directors unless the board of directors determines that such vacancies shall be filled by the stockholders.  This system of electing and removing directors and filling vacancies may tend to discourage a third party from making a tender offer or otherwise attempting to obtain control of us, because it generally makes it more difficult for stockholders to replace a majority of the directors.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Amendment of Charter Provisions</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The amendment of any of the above provisions, except for the provision making it possible for our board of directors to issue preferred stock, would require approval by holders of at least 66-2&#47;3% of the voting power of our then outstanding voting stock.</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The provisions of the Delaware General Corporation Law, our amended and restated certificate of incorporation and our amended and restated bylaws could have the effect of discouraging others from attempting hostile takeovers and, as a consequence, they may also inhibit temporary fluctuations in the market price of our common stock that often result from actual or rumored hostile takeover attempts.  These provisions may also have the effect of preventing changes in our management.  It is possible that these provisions could make it more difficult to accomplish transactions that stockholders may otherwise deem to be in their best interests.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">Limitations of Liability and Indemnification Matters</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our amended and restated certificate of incorporation contains provisions that limit the liability of our directors for monetary damages to the fullest extent permitted by Delaware law.  Consequently, our directors will </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></div><div style="margin-bottom:6pt"><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">not be personally liable to us or our stockholders for monetary damages for any breach of fiduciary duties as directors, except liability for&#58;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any breach of the director&#8217;s duty of loyalty to us or our stockholders&#59;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any act or omission not in good faith or that involves intentional misconduct or a knowing violation of law&#59;</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">unlawful payments of dividends or unlawful stock repurchases or redemptions as provided in Section&#160;174 of the Delaware General Corporation Law&#59; or</font></div><div style="margin-bottom:10pt;margin-top:10pt;padding-left:54pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:14.5pt">any transaction from which the director derived an improper personal benefit.</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our amended and restated certificate of incorporation provides that we may, and our amended and restated bylaws provide that we are required to, indemnify our directors and officers, in each case to the fullest extent permitted by Delaware law.  Our amended and restated bylaws also provide that we shall advance expenses incurred by a director or officer in advance of the final disposition of any action or proceeding, and permit us to secure insurance on behalf of any officer, director, employee or other agent for any liability arising out of his or her actions in that capacity regardless of whether we would otherwise be permitted to indemnify him or her under Delaware law.  We have entered and expect to continue to enter into agreements to indemnify our directors, executive officers and other employees as determined by our board of directors.  With specified exceptions, these agreements provide for indemnification for related expenses including, among other things, attorneys&#8217; fees, judgments, fines and settlement amounts incurred by any of these individuals in any action or proceeding.  We believe that these bylaw provisions and indemnification agreements are necessary to attract and retain qualified persons as directors and officers.  We also maintain directors&#8217; and officers&#8217; liability insurance.</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The limitation of liability and indemnification provisions in our amended and restated certificate of incorporation and amended and restated bylaws may discourage stockholders from bringing a lawsuit against our directors and officers for breach of their fiduciary duty.  They may also reduce the likelihood of derivative litigation against our directors and officers, even though an action, if successful, might benefit us and our stockholders.  Further, a stockholder&#8217;s investment may be adversely affected to the extent that we pay the costs of settlement and damage.</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">The Nasdaq Global Select Market Listing</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Our common stock is listed on The Nasdaq Global Select Market under the symbol &#8220;CDXS.&#8221;</font></div><div style="margin-bottom:10pt;margin-top:10pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Transfer Agent and Registrar</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The transfer agent and registrar for our common stock is EQ Shareowner Services.</font></div><div style="margin-bottom:10pt;margin-top:10pt;text-indent:36pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:6pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></div><div style="margin-bottom:6pt"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.11
<SEQUENCE>3
<FILENAME>codexis-ex1011codexis_nest.htm
<DESCRIPTION>EX-10.11
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i873312b938d24f41912d41175fac5420_166"></div><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:90.865%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr style="height:225pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ACQUISITION AGREEMENT</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">between</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">SOCI&#201;T&#201; DES PRODUITS NESTL&#201; S.A.</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">and</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CODEXIS, INC.</font></div><div style="margin-bottom:12pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:90.865%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_161"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:5pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">TABLE OF CONTENTS</font></div><div style="margin-bottom:5pt"><font><br></font></div><div style="margin-bottom:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:95.053%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.747%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE I PURCHASE AND SALE</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">2</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.01 Purchase and Sale of Assets </font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">2</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.02 Excluded Assets</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">2</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.03 Assumed Liabilities</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">2</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.04 Purchase Price</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">3</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.05 Milestone Earnout</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">3</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.06 Sales Earnout</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">4</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.07 Reports and Reporting</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">6</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.08 Allocation of Purchase Price</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.09 Non-Assignable Assets&#59; Previously Transferred Assets</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.10 Withholding Taxes</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 1.11 Exploitation of Products</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE II CLOSING</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 2.01 Closing</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 2.02 Closing Deliverables</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 2.03 Delivery of Records</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE III REPRESENTATIONS AND WARRANTIES OF SELLER</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.01 Organization and Authority of Seller</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.02 No Conflicts or Consents</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">10</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.03 Intellectual Property</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">10</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.04 Assigned Contracts</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">10</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.05 Title to Inventory</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">11</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.06 Legal Proceedings&#59; Governmental Orders</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">11</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.07 Brokers</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">11</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 3.08 No Other Representations and Warranties</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">11</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE IV REPRESENTATIONS AND WARRANTIES OF BUYER</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">11</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.01 Organization and Authority of Buyer</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.02 No Conflicts&#59; Consents</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.03 Solvency&#59; Sufficiency of Funds</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.04 Legal Proceedings</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.05 Brokers</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.06 Independent Investigation</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 4.07 Other Representations and Warranties</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">13</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:95.053%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.747%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE V COVENANTS</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.01 Certain Activities Prior to the Closing</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.02 Supplement to Disclosure Schedules</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.03 Confidentiality</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.04 Public Announcements</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.05 Exclusivity</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.06 Patent Prosecution and Maintenance</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.07 Patent Enforcement</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.08 Bulk Sales Laws</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.09 VAT</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.10 Further Assurances</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.11 Books and Records&#59; Audit</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.12 Termination of the Existing Agreements</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.13 License to Know-How</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">19</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 5.14 &#91;***&#93;</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">19</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE VI CONDITIONS TO CLOSING</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">20</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 6.01 Conditions on Obligations of Buyer</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">20</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 6.02 Conditions on Obligations of Seller</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">20</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE VII INDEMNIFICATION</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">20</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.01 Survival</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">20</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.02 Indemnification by Seller</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">21</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.03 Indemnification by Buyer</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">21</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.04 Certain Limitations</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">21</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.05 Indemnification Procedures</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">22</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.06 Tax Treatment of Indemnification Payments</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">22</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.07 Exclusive Remedies</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 7.08 Right to Set-Off</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE VIII TERM AND TERMINATION</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 8.01 Term</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 8.02 Termination</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 8.03 Effect of Termination</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE IX AMYLASE AND PROTEASE OPTION</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 9.01 Option</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 9.02 Notice of Exercise</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 9.03 Closing</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 9.04 Patent Prosecution and Costs</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">25</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:95.053%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.747%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 9.05 Limited Right to Continue A&#38;P Enzyme Development Work</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 9.06 Status Quo</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE X DISPUTE RESOLUTION</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 10.01 Elevation of Issues for Resolution</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 10.02 Arbitration</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">ARTICLE XI MISCELLANEOUS</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.01 Definitions</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.02 Construction</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.03 Expenses</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">29</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.04 Severability</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">29</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.05 Notices</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">29</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.06 Assignment</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">30</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.07 Waivers, Modifications, and Amendments</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">30</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.08 Choice of Law</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">31</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.09 Injunctive Relief</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">31</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.10 Relationship of the Parties</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">31</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.11 Entire Agreement</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">31</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.12 Cooperation</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">31</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.13 Counterparts</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">31</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 31pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Section 11.14 Non-Recourse</font></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:100%">32</font></td></tr></table></div><div style="margin-bottom:5pt"><font><br></font></div><div style="margin-bottom:5pt"><font><br></font></div><div style="margin-bottom:5pt"><font><br></font></div><div style="margin-bottom:5pt;padding-left:36pt"><font><br></font></div><div style="margin-bottom:5pt"><font><br></font></div><div style="margin-bottom:5pt"><font><br></font></div><div style="margin-bottom:5pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_35"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:11pt;padding-left:18pt;padding-right:18pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ACQUISITION AGREEMENT</font></div><div style="margin-bottom:11pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Acquisition Agreement (this &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">dated as of December 26, 2023 (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Effective Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">is entered into between CODEXIS, INC., a corporation incorporated and existing under the laws of the State of Delaware, having an office located at 200 Penobscot Drive, Redwood City, CA 94063, USA </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Codexis</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and Soci&#233;t&#233; des Produits Nestl&#233; S.A., a </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">soci&#233;t&#233; anonyme </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">organized and existing under the laws of Switzerland, having an office located at 55 Avenue Nestl&#233;, 1800 Vevey, Switzerland </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">NHSc</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:11pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">RECITALS</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer (as successor in interest to Nestec Ltd.), and Seller are parties to that certain Strategic Collaboration Agreement, dated as of October 12, 2017 (as amended through the date hereof, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Strategic Collaboration Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">SCA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to which the parties agreed to collaborate to discover enzymes as candidates for use as healthcare products and to perform initial preclinical evaluation of the efficacy of such enzymes&#59;</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer and Seller are parties to that certain Development Agreement, dated as of January 1, 2020 (as amended through the date hereof, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Development Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and, together with the Strategic Collaboration Agreement and including, if either or both such agreements expire or are otherwise terminated, all terms, conditions, and obligations in each that survive such expiration or other termination, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Existing Agreements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to which the parties agreed to conduct certain development activities with respect to certain enzymes discovered pursuant to the Strategic Collaboration Agreement&#59;</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">the parties desire for Buyer to have the right to further develop and commercialize those certain lipase enzymes that were discovered under the Strategic Collaboration Agreement and that were further developed pursuant to the Development Agreement, including that certain lipase enzyme currently identified as CDX-7108 </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CDX-7108</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and, together with &#91;***&#93;, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Lipase Project Enzyme</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to the terms of the Existing Agreements, each party has agreed not to Develop or Commercialize the Lipase Project Enzyme, including the use of any Jointly Owned Invention in connection therewith, unless agreed by the parties in a separate written agreement&#59;</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller wishes to sell and assign to Buyer certain identified Patent Rights, Contracts, and other assets related to the Lipase Project Enzyme, and Buyer wishes to purchase and assume from Seller such assets and certain corresponding liabilities, and Seller otherwise wishes to authorize Buyer&#8217;s Development and Commercialization of, the Lipase Project Enzyme, in each case, subject to the terms and conditions set forth herein&#59;</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer and Seller have also developed the A&#38;P Enzymes (as defined below) under the Existing Agreements&#59; and</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller has agreed to grant Buyer an option to acquire certain assets related to the A&#38;P Enzymes and the right to Develop and Commercialize the A&#38;P Enzymes upon the payment of an agreed upon purchase price, in each case, subject to the terms and conditions set forth herein&#59;</font></div><div style="margin-bottom:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">NOW</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> THEREFORE</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in consideration of the mutual covenants and agreements hereinafter set forth and for other good and valuable consideration, the receipt and sufficiency of which are hereby acknowledged, the parties hereto agree as follows&#58;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_40"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE I</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">PURCHASE AND SALE</font></div><div style="text-align:center;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.01&#160;&#160;&#160;&#160;Purchase and Sale of Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the terms and conditions set forth herein, at the Closing, Seller shall, and shall cause its Affiliates to, sell, convey, assign, transfer, and deliver to Buyer (or its designated Affiliate), and Buyer shall purchase from Seller and its Affiliates, all of Seller&#8217;s (or its applicable Affiliate&#8217;s) right, title, and interest in, to, and under all of the following (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchased Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;the patents and patent applications set forth on Section 1.01(a) of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchased Patents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and all of Seller&#8217;s and its Affiliates interest in, to and under the Purchased Patents, including the right to sue for past infringement&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;all Contracts set forth on Section 1.01(b) of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Assigned Contracts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and the rights to assert claims and take other actions in respect of breaches or other violations of the foregoing occurring after the Closing&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;the inventory and other materials set forth on Section 1.01(c) of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Inventory</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;all Jointly Owned Inventions relating &#91;***&#93; to the Lipase Project Enzyme (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchased Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;all Regulatory Documentation owned &#91;***&#93; by Seller and its Affiliates &#91;***&#93; relating to the other Purchased Assets (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Acquired Regulatory Documentation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;all other Books and Records owned &#91;***&#93; by Seller and its Affiliates relating &#91;***&#93; to the other Purchased Assets, &#91;***&#93; (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Acquired Books and Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For clarity, Acquired Books and Records shall specifically exclude all Tax Returns and related workpapers including or relating to the Purchased Assets. Books and Records that do not relate &#91;***&#93; to the other Purchased Assets may be redacted to exclude information that does not relate to the other Purchased Assets.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.02&#160;&#160;&#160;&#160;Excluded Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Other than the Purchased Assets, Buyer expressly understands and agrees that it is not purchasing or acquiring, and Seller is not selling or assigning, any other assets or properties of Seller or its Affiliates, and all such other assets and properties shall be excluded from the Purchased Assets and remain the sole and exclusive property of Seller and&#47;or its Affiliates (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Excluded Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Excluded Assets include, but are not limited to, the assets, properties and rights specifically set forth on Section 1.02 of the Disclosure Schedules.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.03&#160;&#160;&#160;&#160;Assumed Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Subject to the terms and conditions set forth herein, including Section 1.03(b), at the Closing, Buyer shall assume and agree to pay, perform, and discharge when due any and all Liabilities of Seller arising out, of or relating to, ownership of the Purchased Assets or operation of the Business on or after the Closing (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Assumed Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">including, but not limited to, the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;all Liabilities arising under the Assigned Contracts from and after the Closing Date (but, for clarity, this does not limit any Liabilities under any Assigned </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Contract (or portion thereof) that is or was a Liability of Buyer or any of its Affiliates prior to the Closing Date pursuant to any Existing Agreement or other agreement between the parties)&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;all Liabilities for (A) Taxes relating to the Purchased Assets for any taxable period (or any portion thereof) beginning on or after the Closing Date (&#91;***&#93;) and (B) Taxes for which Buyer is liable pursuant to Section 5.09.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Buyer shall not assume and shall not be responsible to pay, perform or discharge any Liabilities of Seller or its Affiliates other than the Assumed Liabilities (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Excluded Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">which Excluded Liabilities shall include, but not necessarily be limited to&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;any Liabilities arising out of or relating to Seller&#8217;s ownership of the Purchased Assets prior to the Closing Date or attributable to any breach of any Assigned Contract on the part of Seller or its Affiliate prior to the Closing Date (but excluding all Liabilities under any Assigned Contract (or portion thereof) that is or was a Liability of Buyer or any of its Affiliates pursuant to any Existing Agreement or other agreement between the parties hereto)&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;any Liabilities &#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;any Liabilities &#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;any Liabilities arising out of or relating to the Excluded Assets&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;any Liabilities (A) for Taxes relating to the Purchased Assets for any taxable period (or any portion thereof) ending on or prior to the Closing Date&#59; (B) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.04&#160;&#160;&#160;&#160;Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The aggregate purchase price for the Purchased Assets shall be the sum of (a) $5,000,000 (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Initial Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">plus </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b) the amount of any Milestone Earnout Payments due and payable under Section </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">1.05, plus </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c) the amount of any Sales Earnout Payments due and payable under Section 1.06 (such sum, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.05&#160;&#160;&#160;&#160;Milestone Earnout</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer shall pay to Seller the following one-time, non-refundable, non-creditable milestone payments (each, a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Milestone Earnout Payment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">upon and subject to the achievement of each identified event below (each, a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Milestone</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;upon &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">&#91;***&#93; Milestone</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">$&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;upon &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">&#91;***&#93; Milestone</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">$&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;upon &#91;***&#93;&#58; $&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;upon &#91;***&#93;&#58; $&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;upon consummation of any Sell-On Transaction &#91;***&#93;&#58; an amount equal to &#91;***&#93; of all Sell-On Transaction Profits&#59;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">3</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;upon consummation of any Sell-On Transaction &#91;***&#93;&#58; an amount equal to &#91;***&#93; of all Sell-On Transaction Profits&#59; and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(g)&#160;&#160;&#160;&#160;upon consummation of any Sell-On Transaction &#91;***&#93;&#58; an amount equal to &#91;***&#93; of all Sell-On Transaction Profits.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For the avoidance of doubt, each of the Milestone Earnout Payments set forth above will be payable only one time, upon the first occurrence of the corresponding Milestone, and no additional payment will be due in the event of any repeated occurrence of such Milestone, including in relation to more than one Product. Under no circumstances shall Buyer be obligated to pay Seller more than $&#91;***&#93; in the aggregate pursuant to subsections (a) through (d) of this Section 1.05.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer shall provide Seller with &#91;***&#93; notice of the achievement of any Milestone, as well as &#91;***&#93; notice after each time Buyer or any of its Affiliates actually receives any Sell-On Transaction Profits (including pursuant to the release of any proceeds from escrow or provided as part of an earnout). Following the receipt of such notice of achievement of a Milestone or notice of receipt of Sell-On Transaction Profits, Seller shall issue an invoice to Buyer for the corresponding Milestone Earnout Payment or documenting that portion of the Sell-On Transaction Profits owed by Buyer to Seller (each such amount, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sell-On Transaction Payment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Each Milestone Earnout Payment or Sell-On Transaction Payment owing pursuant to this Section 1.05 shall be due by Buyer within &#91;***&#93; following Buyer&#8217;s receipt of an invoice therefor. Buyer shall pay each Milestone Earnout Payment and Sell-On Transaction Payment by wire transfer of immediately available funds to Seller in accordance with the wire transfer instructions provided by Seller in writing prior to the due date for such payment.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">In the event that Buyer consummates any Sell-On Transaction, Buyer shall remain responsible for the payment of the Earnout Payments to Seller &#91;***&#93; in accordance with the terms of this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.06&#160;&#160;&#160;&#160;Sales Earnout</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Base Line Calculation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Within &#91;***&#93; after the Launch Date, Buyer shall provide to Seller a report detailing the aggregate Net Sales of Zenpep (including Combination Products with Zenpep as the Covered Component) during the &#91;***&#93; period &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Baseline Zenpep &#91;***&#93; Sales</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer shall include in such report sufficient details to show Buyer&#8217;s calculation of such Net Sales, including each subpart thereof. Buyer shall also provide Seller with all supporting documentation &#91;***&#93; requested by Seller &#91;***&#93; to confirm such calculations and amounts. If Seller does not dispute in writing the Baseline Zenpep &#91;***&#93; Sales amount set forth in Buyer&#8217;s report within &#91;***&#93; after the delivery thereof, such Baseline Zenpep &#91;***&#93; Sales amount shall be deemed final and binding on the parties. If Seller disagrees with the Baseline Zenpep &#91;***&#93; Sales amount as set forth in Buyer&#8217;s report, Seller shall deliver a written notice of dispute to Buyer setting forth in reasonable detail the specific amount(s) disputed, &#91;***&#93;, and its proposed calculation of such disputed amount(s), together with reasonable supporting documentation (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Baseline Disputed Items</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">within &#91;***&#93; after the delivery of Buyer&#8217;s report and the parties shall negotiate in good faith a mutually agreeable final Baseline Zenpep &#91;***&#93; Sales amount to be used by the parties. If the parties are not able to agree upon the Baseline Zenpep &#91;***&#93; Sales amount within &#91;***&#93; after Seller provides Buyer with such notice of the dispute, then Seller shall engage an independent certified public accounting firm of internationally recognized standing that is reasonably acceptable to Buyer to audit the calculations. The audit shall be limited to the Baseline Disputed Items that remain unresolved after the parties&#8217; good faith negotiations (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Unresolved Baseline Disputed Items</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">4</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">accounting firm shall be required to enter into a reasonable and customary confidentiality and non-use agreement with Buyer to protect the confidentiality of Buyer&#8217;s books and records. Buyer and its Affiliates shall make the relevant books and records available during normal business hours for examination by the accounting firm. Except as may otherwise be agreed, the accounting firm shall be provided access to such books and records at Buyer&#8217;s or its Affiliates&#8217; facilities where such books and records are normally kept. Upon completion of the audit, the accounting firm shall provide both parties a written report disclosing (i) whether or not Buyer&#8217;s report is correct with respect to the Unresolved Baseline Disputed Items, (ii) if any Unresolved Baseline Disputed Item is not correct, the auditor&#8217;s determination of the value for such Unresolved Baseline Disputed Item, and (iii) the specific details concerning any discrepancies. The decision of the accounting firm shall be final and binding on the parties absent manifest error. The parties shall initially share the costs of the auditor equally&#59; following completion of the auditor, if (1) the value of the Baseline Zenpep &#91;***&#93; Sales determined by the auditor is &#91;***&#93; than the value of the Baseline Zenpep &#91;***&#93; Sales as put forth by Buyer in its initial report on the Baseline Zenpep &#91;***&#93; Sales, then Buyer shall pay the entire costs of the auditor, including reimbursing Seller for any amounts paid to such auditor by Seller or its Affiliates and (2) the value of the Baseline Zenpep &#91;***&#93; Sales Items determined by the auditor is &#91;***&#93; of the value of the Baseline Zenpep &#91;***&#93; Sales as put forth by Buyer in its initial report on the Baseline Zenpep &#91;***&#93; Sales, &#91;***&#93;. The accounting firm shall not provide Seller with &#91;***&#93; access to Buyer&#8217;s confidential information. The &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">&#91;***&#93; Baseline</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">is equal to the product of (i) the Baseline Zenpep &#91;***&#93; Sales as determined pursuant to this Section 1.06(a)&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">multiplied by</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> (ii) &#91;***&#93;. The &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Quarterly Baseline</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">is equal to the quotient of (A) the &#91;***&#93; Baseline&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">divided by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(B) four.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Sales Earnout Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. For each Calendar Quarter, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Earnout Sales</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the difference of (i) the Net Sales for such Calendar Quarter, less (ii) the Quarterly Baseline, provided that if such amount is less than $0, the Earnout Sales for the Calendar Quarter will be deemed to be $0. During the Earnout Period, for each Calendar Quarter occurring on or after the Launch Date (including the Calendar Quarter in which the Launch Date occurs), Buyer shall pay to Seller an amount equal to &#91;***&#93; of the Earnout Sales (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sales Earnout Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and, collectively with the Milestone Earnout Payments, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Earnout Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in accordance with Section 1.06(d).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Combination Products</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. If Buyer, any of its Affiliates, or any Licensee sells any Earnout Product in the form of a Combination Product, Net Sales of such Combination Product for the purpose of determining the Baseline Zenpep &#91;***&#93; Sales pursuant to Section 1.06(a) and Sales Earnout Payments due to Seller pursuant to Section 1.06(b) will be calculated as follows&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; or</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Payment Terms and Earnout Statements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">5</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;Buyer shall pay all Sales Earnout Payments due under this Agreement for each Calendar Quarter within &#91;***&#93; after the end of such Calendar Quarter. Buyer shall make all payments in U.S. dollars by wire transfer of immediately available funds to bank account(s) as designated in writing by Seller from time to time. For the purpose of converting the local currency in which any Net Sales arise into U.S. dollars, the rate of exchange to be applied will be the rate of exchange &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;If any Earnout Payment is not received by Seller when due, Buyer shall pay to Seller interest on the overdue payment from the date such payment was due to the date of actual payment at an annual rate equal to &#91;***&#93; percentage points above the U.S. prime interest rate, as reported by The Wall Street Journal (New York edition) for the first Business Day of the month in which such due date occurs, or if lower, the maximum amount permitted under applicable Law.</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii) On or before the due date for all payments to Seller pursuant to Section 1.06(d)(i), Buyer shall provide Seller with a statement (an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Earnout Statement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">showing for the relevant Calendar Quarter on an Earnout Product-by-Earnout Product basis&#58;</font></div><div style="margin-bottom:12pt;padding-left:108pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(A)&#160;&#160;&#160;&#160;the Gross Sales for the sale of Earnout Products&#59; and</font></div><div style="margin-bottom:12pt;padding-left:108pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(B)&#160;&#160;&#160;&#160;the calculation of Deductions, Net Sales, and Sales Earnout Payments with respect to such Earnout Products, subject to Section 1.06(c) with respect to Combination Products&#59; and</font></div><div style="margin-bottom:12pt;padding-left:108pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(C)&#160;&#160;&#160;&#160;the exchange rate used for calculating any Sales Earnout Payments.</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Upon Seller&#8217;s request, Buyer shall provide Seller with such additional documentation as may be reasonably requested by Seller that is &#91;***&#93; for the information included in each Earnout Statement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.07&#160;&#160;&#160;&#160;Reports and Reporting</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No later than &#91;***&#93; following the end of each Calendar Quarter, Buyer shall provide Seller with a report of Net Sales booked by Buyer on an Earnout Product-by-Earnout Product basis, during such Calendar Quarter ended (each, a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Quarterly Estimate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For the avoidance of doubt, the Quarterly Estimates are provided for informational purposes only and shall be subject in all respects to the Earnout Statements provided for the applicable Calendar Quarter. No later than &#91;***&#93; after the expiration of each Calendar Year, Buyer shall furnish Seller with a written report (each, an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Annual Report</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">setting forth&#58; (a) through and including the Calendar Year in which the first Launch Date occurs, &#91;***&#93; its, its Affiliates,&#8217; and its Licensees&#8217; progress on the Development, Manufacture, and Commercialization of all Products for the Calendar Year just ended, including &#91;***&#93; their progress and efforts towards the achievement of each Milestone&#59; (b) Buyer&#8217;s then-current estimates as to the date of achievement for the &#91;***&#93; Milestone and the &#91;***&#93; Milestone&#59; and (c) its, its Affiliates,&#8217; and its Licensees&#8217; projections of Net Sales and Sales Earnout Payments for the then-current Calendar Year&#59; provided &#91;***&#93;. &#91;***&#93;. Upon Seller&#8217;s reasonable advance notice (which in no event shall be less than &#91;***&#93;), Buyer shall make its relevant management personnel reasonably available to Seller&#8217;s personnel to discuss in greater detail each Annual Report, the information therein, and related questions Seller may have&#59; provided that such access shall be during normal local business hours &#91;***&#93;.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">6</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.08&#160;&#160;&#160;&#160;Allocation of Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The Purchase Price and the Assumed Liabilities (and any other amounts, if any, properly included for Tax purposes) shall be allocated in accordance with Section 1060 of the Internal Revenue Code of 1986, as amended (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Code</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">among the Purchased Assets for all U.S. federal income tax purposes as shown on the allocation schedule set forth on Section 1.08 of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Allocation Schedule</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Neither the parties nor any of their respective Affiliates shall take any position on any Tax Return or in any Tax contest, proceeding, audit, appeals or litigation which is inconsistent with the agreed upon allocation unless otherwise required by a final determination within the meaning of Section 1313(a) of the Code (or any similar provision of state, local or non-U.S. Tax Law).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.09&#160;&#160;&#160;&#160;Non-Assignable Assets&#59; Previously Transferred Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Notwithstanding anything to the contrary in this Agreement, this Agreement shall not constitute a sale, assignment, or transfer of any Purchased Asset if such sale, assignment, or transfer&#58; (i) violates applicable Law&#59; or (ii) without the consent or waiver of a Person who is not a party to this Agreement or an Affiliate of a party to this Agreement would result in a breach or violation of an Assigned Contract, result in the termination, cancellation, or revocation of an Assigned Contract, or result in the creation of any lien on any Purchased Asset, and such consent or waiver has not been obtained prior to the Closing.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Following the Closing, Seller and Buyer shall use &#91;***&#93; efforts, and shall cooperate with each other, to obtain any such required consent or waiver, or any release, substitution, or amendment required to assign all Liabilities under any and all Assigned Contracts or other Liabilities that constitute Assumed Liabilities&#59; &#91;***&#93;. Once such consent, waiver, release, substitution, or amendment is obtained, Seller shall promptly sell, assign, and transfer to Buyer the relevant Purchased Asset to which such consent, waiver, release, substitution, or amendment relates &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;To the extent that any Purchased Asset or Assumed Liability cannot be transferred to Buyer pursuant to this Section 1.09, Buyer and Seller shall use &#91;***&#93; efforts to enter into such arrangements (such as subleasing, sublicensing, or subcontracting) to provide to the parties the economic and, to the extent permitted under applicable Law, operational equivalent of the transfer of such Purchased Asset or Assumed Liability to Buyer as of the Closing. Buyer shall, to the extent it receives the benefits of the applicable Purchased Asset, as agent or subcontractor for Seller, pay, perform, and discharge fully the liabilities and obligations related to such Purchased Asset or Assumed Liability from and after the Closing Date. To the extent permitted under applicable Law, Seller shall, at Buyer&#8217;s expense, hold in trust for and pay to Buyer promptly upon receipt thereof, all income, proceeds, and other monies received by Seller from and after the Closing Date, to the extent related to such Purchased Asset in connection with the arrangements under this Section 1.09. &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;The Parties acknowledge that the Assigned Contracts and Inventory set forth in Section 1.09(d) of the Disclosure Schedules, and Assumed Liabilities specifically related thereto were assigned and transferred to, and assumed by, Buyer prior to the date of this Agreement (such Assigned Contracts and Inventory, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Previously Transferred Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and such Assumed Liabilities, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Previously Assumed Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Such Previously Transferred Assets shall be Purchased Assets and, as applicable, Assigned Contracts and Inventory for all purposes of this Agreement, other than the obligation of Seller to assign and transfer the same at Closing, and </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">7</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">such Previously Assumed Liabilities shall be Assumed Liabilities for all purposes of this Agreement, other than the obligation of Buyer to assume the same at Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.10&#160;&#160;&#160;&#160;Withholding Taxes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;. &#91;***&#93;. The parties shall use &#91;***&#93; efforts to cooperate to mitigate or eliminate any such withholding. To the extent that amounts are so withheld and paid over to the appropriate Tax authority by Buyer, such withheld amounts shall be treated for all purposes of this Agreement as having been paid to the person in respect of which such deduction and withholding was made.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.11&#160;&#160;&#160;&#160;Exploitation of Products</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller agrees and acknowledges that &#91;***&#93;. Seller acknowledges and agrees that (a) &#91;***&#93;, (b) &#91;***&#93;, (c) &#91;***&#93;, and (d) the parties solely intend the express provisions of this Agreement (and, for the avoidance of doubt, not the Existing Agreements) to govern their contractual relationship with respect to the Purchased Assets and the Products. &#91;***&#93;.</font></div><div id="i873312b938d24f41912d41175fac5420_45"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE II</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CLOSING</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 2.01&#160;&#160;&#160;&#160;Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the terms and conditions of this Agreement, the consummation of the transactions contemplated by this Agreement (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">shall take place remotely by exchange of documents and signatures (or their electronic counterparts), on January 5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.15pt;font-weight:400;line-height:120%;position:relative;top:-3.85pt;vertical-align:baseline">th</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, 2024 at 8&#58;00 a.m. PST, provided that all of the conditions to Closing set forth in ARTICLE VI are either satisfied or waived by the party entitled to the benefits of such conditions on such date (other than conditions, which by their nature, are to be satisfied on the Closing Date, but subject to the satisfaction of such conditions on the Closing Date or waiver by the party entitled to the benefits of such conditions), or at such other time or place or in such other manner as Seller and Buyer may mutually agree upon in writing. The date on which the Closing is to occur is herein referred to as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Closing Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Each party shall use &#91;***&#93; efforts to satisfy all conditions to Closing set forth in ARTICLE VI that are within such party&#8217;s control, obtain all internal approvals and complete all internal procedures necessary to proceed to Closing, and otherwise proceed to Closing as soon as possible after the Effective Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 2.02&#160;&#160;&#160;&#160;Closing Deliverables</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;At the Closing, Seller shall deliver to Buyer the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;a bill of sale in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit C </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">attached hereto and made a part hereof (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Bill of Sale</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly executed by Seller, transferring the Inventory, Acquired Books and Records, and any other tangible Purchased Assets to Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;an assignment and assumption agreement in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit D </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">attached hereto and made a part hereof (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Assignment and Assumption Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly executed by Seller, effecting the assignment to and assumption by Buyer of the Purchased Assets and the Assumed Liabilities&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;an assignment in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit E </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">attached hereto and made a part hereof (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Patent Assignment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly executed by Seller, transferring all of Seller&#8217;s right, title, and interest in and to the Purchased Patents to Buyer&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;a license agreement in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit F </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">attached hereto and made a part hereof (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Expression System License Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and, collectively with this </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">8</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Agreement, the Assignment and Assumption Agreement, and the Patent Assignment, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Transaction Documents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly executed by Seller&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;a duly executed signature page to the A&#38;P Acquisition Agreement, to be held in escrow subject to and in accordance with Section 9.02&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(vi)&#160;&#160;&#160;&#160;a properly completed IRS Form W-9&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(vii)&#160;&#160;&#160;&#160;a certificate, dated the Closing Date and signed by a duly authorized officer of Seller, that each of the conditions set forth in Section 6.01(a) and Section 6.01(b) have been satisfied.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;At the Closing, Buyer shall deliver to Seller the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;the Assignment and Assumption Agreement duly executed by Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;the Patent Assignment duly executed by Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;the Expression System License Agreement duly executed by Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;the Initial Purchase Price by wire transfer of immediately available funds to Seller in accordance with the wire transfer instructions set forth on Section 2.02(b)(iv) of the Disclosure Schedules&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;a certificate, dated the Closing Date and signed by a duly authorized officer of Buyer, that each of the conditions set forth in Section 6.02(a) and Section 6.02(b) have been satisfied.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 2.03&#160;&#160;&#160;&#160;Delivery of Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Promptly and in any event</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">within &#91;***&#93; after the Closing Date, Seller shall deliver to Buyer copies of the Acquired Regulatory Documentation and the Acquired Books and Records via virtual data room or other file-share platform reasonably acceptable to Buyer (or such other method as mutually agreed by the parties), provided that Seller shall have no obligation to deliver to Buyer any such Acquired Regulatory Documentation or Acquired Books and Records that are already in Buyer&#8217;s or its Affiliates possession or that are publicly available.</font></div><div id="i873312b938d24f41912d41175fac5420_50"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE III</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">REPRESENTATIONS AND WARRANTIES OF SELLER</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except as set forth in the Disclosure Schedules, Seller represents and warrants to Buyer that the statements contained in this ARTICLE III are true and correct as of the date hereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.01&#160;&#160;&#160;&#160;Organization and Authority of Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller is a corporation duly organized,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">validly existing, and in good standing under the Laws of the State of Delaware. Seller has all necessary corporate power and authority to enter into this Agreement and the other Transaction Documents to which Seller is a party, to carry out its obligations hereunder and thereunder, and to consummate the transactions contemplated hereby and thereby. The execution and delivery by Seller of this Agreement and any other Transaction Document to which Seller is a party, the performance by Seller of its obligations hereunder and thereunder, and the consummation by Seller of the transactions contemplated hereby and thereby have been duly authorized by all requisite corporate action on the part of Seller. This Agreement and the Transaction Documents constitute legal, valid, and binding obligations of Seller enforceable against Seller </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">9</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in accordance with their respective terms, except as such enforceability may be limited by bankruptcy, insolvency, reorganization, moratorium, or similar Laws affecting creditors&#8217; rights generally and by general principles of equity (regardless of whether enforcement is sought in a proceeding at law or in equity).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.02&#160;&#160;&#160;&#160;No Conflicts or Consents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The execution, delivery, and performance by Seller of this Agreement and the other Transaction Documents to which it is a party, and the consummation of the transactions contemplated hereby and thereby, do not and will not&#58; (a) violate or breach any provision of the certificate of incorporation or by-laws of Seller&#59; (b) violate or breach any provision of any Law or Governmental Order applicable to Seller or the Purchased Assets&#59; (c) except as set forth in Section 3.02 of the Disclosure Schedules, require the consent, notice, or other action by any Person under, conflict with, violate or breach, constitute a default under, or result in the acceleration of any Assigned Contract&#59; or (d) except as set forth in Section 3.02 of the Disclosure Schedules, require any consent, permit, Governmental Order, filing, or notice from, with, or to any Governmental Authority&#59; except, in the cases of clauses (b) and (c), where the violation, breach, conflict, default, acceleration, or failure to obtain consent or give notice would not have a Material Adverse Effect and, in the case of clause (d), where such consent, permit, Governmental Order, filing, or notice which, in the aggregate, would not have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.03&#160;&#160;&#160;&#160;Intellectual Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.03 of the Disclosure Schedules contains a current and complete list of all Purchased Patents, specifying as to each, as applicable&#58; the title&#59; the jurisdiction by or in which it has been issued, registered, or filed&#59; the patent, registration or application serial number&#59; and the issue, registration, or filing date. The Purchased Patents constitute all currently-existing Patents owned by Seller that &#91;***&#93; for the Manufacturing or use of CDX-7108 as it currently exists, other than any Patents covered by the Expression System License Agreement. Except for the Purchased Patents and any Patents covered by the Expression System License Agreement, Seller Controls no Patents that &#91;***&#93; for the Manufacturing or use of, CDX-7108 as it currently exists. Other than with respect to any ownership right, title, or interest of Buyer or any of its Affiliates, Seller owns all right, title, and interest in and to the Purchased Patents and Seller has not granted any license or other right under any of the Purchased Patents to any Third Party other than to service providers under the Assigned Contracts. All assignments and other instruments necessary to establish and record Seller&#8217;s ownership interest in the Purchased Patents have been executed, delivered, and filed with the relevant Governmental Authorities and authorized registrars. All required filings and fees related to the Purchased Patents due and payable prior to the Effective Date have been submitted with and paid to the relevant Governmental Authorities and authorized registrars. To Seller&#8217;s Knowledge, (a) no Person is infringing any Purchased Patents, and (b) except as set forth on Section 3.03(b) of the Disclosure Schedules, there are no actual or threatened claims that (i) the currently-listed inventorship of the Purchased Patents is incorrect, (ii) CDX-7108 (as existing on the date hereof) infringes any Third Party intellectual property rights or (iii) the use of the Codexis Expression System (as defined in the Expression System License Agreement) to manufacture any Cell Bank (as defined in the Expression System License Agreement) or CDX-7108 as it currently exists infringes any Third Party intellectual property rights.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.04&#160;&#160;&#160;&#160;Assigned Contracts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Correct and complete copies of each Assigned Contract, have been made available to Buyer and its Representatives, including all amendments and modifications and side agreements relating thereto.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">10</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Except as set forth on Section 3.04 of the Disclosure Schedules&#58; (i) each of the Assigned Contracts represents a legal, valid and binding obligation of Seller and, to Sellers&#8217; Knowledge, each other party thereto, and is enforceable against Seller and, to Seller&#8217;s Knowledge, each other party thereto, in accordance with its terms, and is in full force and effect, and (ii) none of Seller or, to Seller&#8217;s Knowledge, any other party thereto is in material breach of, or material default under, or has provided or received any notice of any intention to terminate, any of the Assigned Contracts, or has committed or failed to perform any act which, with or without notice, lapse of time or both would constitute a material breach of or material default under any of the Assigned Contracts.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.05&#160;&#160;&#160;&#160;Title to Inventory</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller has good and valid title to all Inventory included in the Purchased Assets, free and clear of any lien, charge, claim, pledge, security interest, or other similar encumbrance (&#8220;collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Encumbrances</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">except for&#58; (a) liens for Taxes not yet due and payable or being contested in good faith by appropriate procedures&#59; (b) mechanics&#8217;, carriers&#8217;, workmen&#8217;s, repairmen&#8217;s, warehouse, or other like liens arising or incurred in the ordinary course of business&#59; and (c) liens arising under original purchase price conditional sales contracts with third parties entered into in the ordinary course of business (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Permitted Encumbrances</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.06&#160;&#160;&#160;&#160;Legal Proceedings&#59; Governmental Orders</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Except as set forth in Section 3.06(a) of the Disclosure Schedules, there are no material claims, actions, suits, investigations, or other legal proceedings (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Actions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pending or, to Seller&#8217;s Knowledge, threatened against or by Seller or its Affiliates relating to or affecting the Purchased Assets or the Assumed Liabilities.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Except as set forth in Section 3.06(b) of the Disclosure Schedules, there are no outstanding Governmental Orders against, relating to, or affecting the Purchased Assets, which would have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.07&#160;&#160;&#160;&#160;Brokers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No broker, finder, or investment banker is entitled to any brokerage, finder&#8217;s, or other fee or commission in connection with the transactions contemplated by this Agreement or any other Transaction Document based upon arrangements made by or on behalf of Seller or any of its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.08&#160;&#160;&#160;&#160;No Other Representations and Warranties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except for the representations and warranties contained in this ARTICLE III (including the related portions of the Disclosure Schedules), neither Seller nor any other Person has made or makes any other express or implied representation or warranty, either written or oral, on behalf of Seller, including any representation or warranty as to the accuracy or completeness of any information, documents, or material regarding the Products and the Purchased Assets furnished or made available to Buyer and its Representatives in any form (including any information, documents, or material delivered or made available to Buyer on behalf of Seller for purposes of this Agreement), or as to the future revenue, profitability, or success of the Products, or any representation or warranty arising from statute or otherwise in Law.</font></div><div id="i873312b938d24f41912d41175fac5420_86"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE IV</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">REPRESENTATIONS AND WARRANTIES OF BUYER</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except as set forth in the Disclosure Schedules, Buyer represents and warrants to Seller that the statements contained in this ARTICLE IV are true and correct as of the date hereof</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">11</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.01&#160;&#160;&#160;&#160;Organization and Authority of Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer is a </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">soci&#233;t&#233; anonyme </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly organized, validly existing and in good standing under the Laws of Switzerland. Buyer has all necessary corporate power and authority to enter into this Agreement and the other Transaction Documents to which Buyer is a party, to carry out its obligations hereunder and thereunder, and to consummate the transactions contemplated hereby and thereby. The execution and delivery by Buyer of this Agreement and any other Transaction Document to which Buyer is a party, the performance by Buyer of its obligations hereunder and thereunder, and the consummation by Buyer of the transactions contemplated hereby and thereby have been duly authorized by all requisite corporate action on the part of Buyer. This Agreement and the Transaction Documents constitute legal, valid, and binding obligations of Buyer enforceable against Buyer in accordance with their respective terms, except as such enforceability may be limited by bankruptcy, insolvency, reorganization, moratorium, or similar Laws affecting creditors&#8217; rights generally and by general principles of equity (regardless of whether enforcement is sought in a proceeding at law or in equity).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.02&#160;&#160;&#160;&#160;No Conflicts&#59; Consents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The execution, delivery, and performance by Buyer of this Agreement and the other Transaction Documents to which it is a party, and the consummation of the transactions contemplated hereby and thereby, do not and will not&#58; (a) violate or breach any provision of the certificate of incorporation or by-laws of Buyer&#59; (b) violate or breach any provision of any Law or Governmental Order applicable to Buyer&#59; (c) require the consent, notice or other action by any Person under, conflict with, violate or breach, constitute a default under, or result in the acceleration of any agreement to which Buyer is a party&#59; or (d) require any consent, permit, Governmental Order, filing, or notice from, with, or to any Governmental Authority by or with respect to Buyer.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.03&#160;&#160;&#160;&#160;Solvency&#59; Sufficiency of Funds</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Immediately after giving effect to the transactions contemplated hereby, Buyer shall be solvent and shall&#58; (a) be able to pay its debts as they become due&#59; (b) own property that has a fair saleable value greater than the amounts required to pay its debts (including a reasonable estimate of the amount of all Liabilities)&#59; and (c) have adequate capital to carry on its business. No transfer of property is being made and no obligation is being incurred in connection with the transactions contemplated hereby with the intent, on the part of Buyer, to hinder, delay, or defraud either present or future creditors of Buyer or Seller. In connection with the transactions contemplated hereby, Buyer has not incurred, nor plans to incur, debts beyond its ability to pay as they become absolute and matured.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.04&#160;&#160;&#160;&#160;Legal Proceedings</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">There are no Actions pending or, to Buyer&#8217;s knowledge, threatened against or by Buyer that challenge or seek to prevent, enjoin, or otherwise delay the transactions contemplated by this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.05&#160;&#160;&#160;&#160;Brokers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No broker, finder, or investment banker is entitled to any brokerage, finder&#8217;s, or other fee or commission in connection with the transactions contemplated by this Agreement or any other Transaction Document based upon arrangements made by or on behalf of Buyer or any of its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.06&#160;&#160;&#160;&#160;Independent Investigation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer has conducted its own independent investigation, review, and analysis of the Products and the Purchased Assets, and acknowledges that it has been provided adequate access to the personnel, properties, assets, premises, books and records, and other documents and data of Seller for such purpose. Buyer acknowledges and agrees that&#58; (a) in making its decision to enter into this Agreement and to consummate the transactions contemplated hereby, Buyer has relied solely upon its own investigation and the express representations and warranties of Seller set forth in ARTICLE III of this Agreement (including related portions of the Disclosure Schedules)&#59; and (b) </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">12</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">neither Seller nor any other Person has made any representation or warranty as to Seller, the Products, the Purchased Assets, or this Agreement, except as expressly set forth in ARTICLE III of this Agreement (including the related portions of the Disclosure Schedules).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.07&#160;&#160;&#160;&#160;Other Representations and Warranties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except for the representations and warranties contained in this ARTICLE IV, neither Buyer nor any other Person has made or makes any other express or implied representation or warranty, either written or oral, on behalf of Buyer, including any representation or warranty as to the accuracy or completeness of any information, documents, or material furnished or made available to Seller and its Representatives in any form (including any information, documents, or material delivered or made available to Seller on behalf of Buyer for purposes of this Agreement) or any representation or warranty arising from statute or otherwise in Law.</font></div><div id="i873312b938d24f41912d41175fac5420_81"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE V</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">COVENANTS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.01&#160;&#160;&#160;&#160;Certain Activities Prior to the Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">From the Effective Date until the Closing, except as otherwise provided in this Agreement, or consented to in writing by Buyer (which consent shall not be unreasonably withheld, conditioned, or delayed), Seller shall use &#91;***&#93; efforts to maintain and preserve intact all Purchased Assets, and, without limiting the generality of the foregoing, shall not during such period&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;sell, assign, lease, transfer, abandon, fail to maintain, permit to lapse, grant any license or sublicense under or with respect to, or otherwise dispose of any of the Purchased Assets&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;create, incur or otherwise allow the imposition of any Encumbrance upon any of the Purchased Assets, except for Permitted Encumbrances&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;agree in writing to do any of the foregoing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.02&#160;&#160;&#160;&#160;Supplement to Disclosure Schedules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">From time to time prior to the Closing, Seller shall have the right (but not the obligation) to supplement or amend the Disclosure Schedules hereto with respect to any matter hereafter arising after the Effective Date (each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Schedule Supplement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in which case, Seller shall promptly, and in any event prior to Closing, deliver a revised version of the Disclosure Schedules to Buyer. &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.03&#160;&#160;&#160;&#160;Confidentiality</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Nondisclosure</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Each party agrees that, during the Term and thereafter, a party (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Receiving Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">receiving Confidential Information of the other party (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Disclosing Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(or that has received any such Confidential Information from the other party prior to the Effective Date) shall (i) maintain in confidence such Confidential Information using not less than the efforts such Receiving Party uses to maintain in confidence its own proprietary industrial information of similar kind and value, which shall be no less than a reasonable degree of care, (ii) not disclose such Confidential Information to any Third Party without the prior written consent of the Disclosing Party, except for disclosures expressly permitted below, and (iii) not use such Confidential Information for any purpose except those permitted by this Agreement. Each Receiving Party will promptly notify the Disclosing Party upon gaining knowledge of any material use or disclosure of Confidential Information of the other party not permitted pursuant to this Section 5.03. &#91;***&#93;. For the further avoidance of doubt, all Licensed Know-How is and shall </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">be Confidential Information of Seller. The obligations in this Section 5.03 shall not apply with respect to any portion of the Confidential Information that the Receiving Party may receive to the extent that such information&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;is publicly disclosed by the Disclosing Party, either before or after it is disclosed to the Receiving Party hereunder&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;was known to the Receiving Party or any of its Affiliates, without any obligation to keep it confidential or any restriction on its use, prior to disclosure by the Disclosing Party, and such prior knowledge can be properly documented by the Receiving Party&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;is subsequently disclosed to the Receiving Party or any of its Affiliates by a Third Party lawfully in possession thereof and without any obligation to keep it confidential or any restriction on its use&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;is published by a Third Party or otherwise becomes publicly available or enters the public domain, either before or after it is disclosed to the Receiving Party without the Receiving Party&#8217;s breach of the terms of this Agreement&#59; or</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;is independently developed by employees or contractors of the Receiving Party or any of its Affiliates without the aid, application, or use of Confidential Information of the Disclosing Party, and such independent development can be properly documented by the Receiving Party.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Authorized Disclosure</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Receiving Party may disclose Confidential Information belonging to the Disclosing Party only to the extent such disclosure is reasonably necessary in the following instances&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;complying with applicable Laws and regulations (including the rules and regulations of the Securities and Exchange Commission or any national securities exchange) and with judicial or administrative process, if in the reasonable opinion of the Receiving Party&#8217;s counsel, such disclosure is so required for such compliance and the Receiving Party discloses no more than required in its reasonable judgment, and further provided that with respect to judicially or administratively required disclosures, the Receiving Party (to the extent legally permissible) shall promptly inform the other party of such required disclosure and use &#91;***&#93; efforts to provide the other party an opportunity to challenge or limit the disclosure obligations&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;disclosure to its Affiliates, and to its bona fide actual or potential (A) permitted Licensees, (B) investment bankers, investors, lenders, or acquirers, or permitted assignees under Section 11.06, in each case, solely for diligence purposes, and (C) each of the parties&#8217; respective Representatives, in each case of (A), (B), and (C), each of whom prior to disclosure must be bound by obligations of confidentiality and non-use no less restrictive than the obligations set forth in this Section 5.03&#59; provided, however, that the Receiving Party shall remain responsible for any failure by any Person who receives Confidential Information pursuant to this Section 5.03(b)(ii) to treat such Confidential Information as required under this Section 5.03.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">14</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If and whenever any Confidential Information is disclosed in accordance with this Section 5.03(b), such disclosure shall not cause any such information to cease to be Confidential Information, except to the extent that such disclosure results in a public disclosure of such information (other than by breach of this Agreement).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Tax Filings.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> Notwithstanding any provision of this Agreement to the contrary, each party (and their Affiliates) shall be free to disclose this Agreement, the contents hereof, and the transactions contemplated hereby to any Governmental Authority in connection with the filing of any Tax Return and in any Tax audits, assessments, or administrative or judicial proceedings or other Actions relating to Tax Returns or Taxes.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.04&#160;&#160;&#160;&#160;Public Announcements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Unless otherwise required by applicable Law, no party to this Agreement shall make any public announcements in respect of this Agreement or the transactions contemplated hereby without the prior written consent of the other party (which consent shall not be unreasonably withheld, conditioned, or delayed), and the parties shall cooperate as to the timing and contents of any such announcement. Notwithstanding the foregoing, Seller may, following the Effective Date, issue a press release regarding this Agreement and the transactions contemplated hereby containing the information and generally in the form as set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit G </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">attached to and made a part of this Agreement. The contents of any announcement or similar publicity, which has been reviewed and approved by the reviewing party (including the press release referred to in the prior sentence), can be re-released by either party without a requirement for re-approval.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.05&#160;&#160;&#160;&#160;Exclusivity</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;During the Restricted Period, Seller shall not, and shall not permit any of its Affiliates to, directly or indirectly engage in, for its own benefit or for, with, or through any other Person, &#91;***&#93;, any other company, partnership, proprietorship, enterprise, organization or business venture of any kind whatsoever engaged in the Development, Manufacture, Commercialization or other Exploitation of any lipase-containing product in the field of pancreatic enzyme replacement therapy (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Restricted Business</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;. Notwithstanding the foregoing, Seller may own, directly or indirectly, solely as an investment, securities of any Person traded on any national securities exchange if Seller is not a controlling Person of, or a member of a group which controls, such Person and does not, directly or indirectly, own &#91;***&#93; or more of any class of securities of such Person. The &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Restricted Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">shall commence on the Closing Date and shall continue until the third (3</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.15pt;font-weight:400;line-height:120%;position:relative;top:-3.85pt;vertical-align:baseline">rd</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">) anniversary of the Closing Date&#59; provided &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Each party acknowledges that a breach or threatened breach by it of this Section 5.05 could give rise to irreparable harm to the other party, for which monetary damages may not be an adequate remedy, and hereby agrees that in the event of a breach or a threatened breach by such party of any such obligations, the other party shall, in addition to any and all other rights and remedies that may be available to it in respect of such breach, be entitled to seek equitable relief, including a temporary restraining order, an injunction, specific performance, and any other relief that may be available from a court of competent jurisdiction (without any requirement to post bond, which such party hereby waives).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;Each party acknowledges that the restrictions contained in this Section 5.05 are reasonable and necessary to protect the legitimate interests of the other party and constitute a material inducement to each party to enter into this Agreement and consummate the transactions contemplated by this Agreement. In the event that any covenant contained in this Section 5.05 </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">should ever be adjudicated to exceed the time, geographic, product, or service or other limitations permitted by applicable Law in any jurisdiction, then any court is expressly empowered to reform such covenant, and such covenant shall be deemed reformed, in such jurisdiction to the maximum time, geographic, product, or service or other limitations permitted by applicable Law. The covenants contained in this Section 5.05 and each provision hereof are severable and distinct covenants and provisions. The invalidity or unenforceability of any such covenant or provision as written shall not invalidate or render unenforceable the remaining covenants or provisions hereof, and any such invalidity or unenforceability in any jurisdiction shall not invalidate or render unenforceable such covenant or provision in any other jurisdiction.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.06&#160;&#160;&#160;&#160;Patent Prosecution and Maintenance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Following the Closing Date, Buyer shall have the sole right to Prosecute all Purchased Patents and Resultant Patents, including any Patent Term Extensions or Supplementary Protection Certificates thereto, and shall be solely responsible for the cost and expense thereof. Buyer shall have the sole right to determine the strategy and material aspects of Prosecution of the Purchased Patents and Resultant Patents, including where and when applications for Purchased Patents and Resultant Patents will be filed, and claims to be included, excluded, or modified in Purchased Patents and Resultant Patents applications, or on the selection of internal or external patent counsel or patent agents to be used for filing, Prosecuting and maintaining the Purchased Patents and Resultant Patents.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Seller shall provide to Buyer all reasonable assistance requested by Buyer in connection with Prosecution under this Section 5.06, including allowing Buyer reasonable access to Seller&#8217;s and its Affiliates&#8217; files and documents and Seller&#8217;s and its Affiliates&#8217; then-current personnel and inventors who may have possession of information relevant to the Prosecution. Any such cooperation by Seller and its Affiliates with respect to the Purchased Patents and Resultant Patents or any such Prosecution shall be at Buyer&#8217;s cost and expense and Buyer shall reimburse Seller for such reasonable and documented costs and expenses of Seller and its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.07&#160;&#160;&#160;&#160;Patent Enforcement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Buyer shall have the sole right to enforce the Purchased Patents and Resultant Patents and intellectual property rights in Purchased Know-How, including for past infringement, against Third Party infringers (and enter into settlement agreements with such Third Party infringers). Any recovery obtained in any such enforcement action (or settlement thereof) shall belong to Buyer and Buyer shall treat that portion of the recovery that is attributable to lost sales or disgorged profits (net of any non-reimbursed costs and expenses directly related to such enforcement action (or settlement thereof)) as Net Sales hereunder. Buyer shall be responsible for all costs and expenses associated with such enforcement.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Seller shall provide to Buyer all reasonable assistance requested by Buyer in connection with any Action under this Section 5.07, including allowing Buyer reasonable access to Seller&#8217;s and its Affiliates&#8217; files and documents and Seller&#8217;s and its Affiliates&#8217; then-current personnel who may have possession of information relevant to the Action. Any such cooperation by Seller with respect to the Purchased Patents and Resultant Patents or any such Action shall be at Buyer&#8217;s cost and expense and Buyer shall reimburse Seller for such reasonable and documented costs and expenses of Seller.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">16</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.08&#160;&#160;&#160;&#160;Bulk Sales Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The parties hereby waive compliance with the provisions of any bulk sales, bulk transfer or similar Laws of any jurisdiction that may otherwise be applicable with respect to the sale of any or all of the Purchased Assets to Buyer.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.09&#160;&#160;&#160;&#160;VAT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The Purchase Price is exclusive of VAT. Any party receiving a supply under this Agreement hereby covenants that it will pay any such VAT correctly charged in addition to any amounts due under this Agreement. The supplying party agrees that it will raise a Tax invoice (or equivalent document) to support the charge to VAT. Where the prevailing legislation requires a VAT reverse charge, then the receiving party covenants that it shall correctly account for VAT in respect of the services received. To the extent that any VAT is chargeable on any Purchased Assets transferred pursuant to this Agreement, Seller shall deliver to Buyer&#58; (i) a valid VAT invoice where required by applicable Law or practice and (ii) any other documentation as may be reasonably requested by Buyer to assist it to recover the VAT chargeable or payable, in each case, in such form and within such timing as may be required by Law. An amount equal to the amount of VAT chargeable or payable by Seller on the Purchased Assets transferred shall be paid in addition to the consideration provided in this Agreement, by Buyer to Seller within &#91;***&#93; of receipt of a valid VAT invoice (or where no invoice is required, within &#91;***&#93; of demand) or, if later, &#91;***&#93; before the date on which the obligation to account for VAT would have had to be discharged in order to avoid liability to interest or a charge or penalty. Seller shall account for all amounts in respect of VAT paid to it by Buyer to the appropriate Governmental Authorities in compliance with applicable Laws. Both parties shall use &#91;***&#93; efforts to avail of VAT zero-rating, reduced rating or exemption that could apply. In the event that the local competent Tax authority determines that VAT is chargeable, Buyer in the first instance shall undertake all reasonable steps to refute any such assertions by the local Tax authority. Each party shall be responsible for any Taxes due on their own account, including any penalties or interest accruing due to incorrect VAT treatment of the supplies of goods or services made by that party or any failure to correctly account for VAT on any receipt of a supply of goods or services under this Agreement, except where those penalties or interest arise as a result of the actions of the other party, in which case that party shall be liable to reimburse the value of the penalties and interest.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.10&#160;&#160;&#160;&#160;Further Assurances</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Following the Closing, each of the parties hereto shall, and shall cause their respective Affiliates to, execute and deliver such additional documents, instruments, conveyances, and assurances and take such further actions as may be reasonably required to carry out the provisions hereof and give effect to the transactions contemplated by this Agreement and the other Transaction Documents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.11&#160;&#160;&#160;&#160;Books and Records&#59; Audit</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;For a period of &#91;***&#93; from the date the last Milestone Earnout Payment or Sales Earnout Payment is made to Seller, Buyer shall, and shall require its Affiliates and Licensees to, keep and maintain complete, true, accurate, and detailed books and records for the purpose of calculating any amounts due to Seller hereunder, including any Earnout Payments and Sell-On Transaction Payments. Buyer and its Affiliates shall require Licensees to report to Buyer or its Affiliates, as applicable, the information required to be made available to Seller pursuant to Section 1.06(d) and this Section 5.11.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Following the Launch Date, Seller shall have the right to examine and audit Buyer&#8217;s and its Affiliates&#8217; books and records referred to in Section 5.11(a) to verify the accuracy of any reports or payments prepared or delivered to Seller pursuant to this Agreement. Any such audit shall be on at least &#91;***&#93; prior written notice. Seller&#8217;s rights to perform an audit under this </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.11 shall be limited to not more than &#91;***&#93; and shall be limited to the pertinent books and records for any Calendar Year ending not more than &#91;***&#93; before the date of the request &#91;***&#93;. The audit shall be performed &#91;***&#93; by an independent certified public accounting firm of internationally recognized standing that is selected by Seller &#91;***&#93;. The accounting firm shall be required to enter into a reasonable and customary confidentiality and non-use agreement with Buyer to protect the confidentiality of its books and records. Buyer and its Affiliates shall make the relevant books and records &#91;***&#93; available during normal business hours for examination by the accounting firm. Except as may otherwise be agreed, the accounting firm shall be provided access to such books and records at Buyer&#8217;s or its Affiliates&#8217; facilities where such books and records are normally kept. Upon completion of the audit, the accounting firm shall provide both parties a written report disclosing whether or not the relevant reports or payments are correct, and the specific details concerning any discrepancies. The decision of the accounting firm shall be final and binding on the parties absent manifest error. The accounting firm shall not provide Seller with &#91;***&#93; access to Buyer&#8217;s confidential information. If the accounting firm conducting an audit pursuant to this Section 5.11 concludes as a result of such audit that any additional amounts were due and payable to Seller, Buyer shall pay such additional amounts to Seller within &#91;***&#93; after the date that the parties receive such accountant&#8217;s written report, together with interest as per Section 1.06(d)(ii). If the total amount of any underpayments by Buyer to Seller exceeds the lesser of&#58; (i) $&#91;***&#93;&#59; or (ii) &#91;***&#93; of the aggregate total amount that was properly due and payable to Seller for any Calendar Year, then Buyer shall also reimburse Seller for the documented, reasonable out-of-pocket expenses incurred in conducting the audit, including all costs and expenses paid or payable to the accounting firm. If the accounting firm conducting an audit pursuant to this Section 5.11 concludes as a result of such audit that any overpayment of Earnout Payments or other amounts due under this Agreement occurred, Buyer shall receive a credit equal to the amount of such overpayment for use as a credit against future Earnout Payments, if any, otherwise payable to Seller hereunder. Notwithstanding the foregoing, if Buyer reasonably and in good faith expects that the amount of such overpayment will exceed the amount of all Earnout Payments payable by Buyer to Seller in the next &#91;***&#93;, at the written election of Buyer, Seller shall pay the amount by which such overpayment to Buyer exceeds such estimated Earnout Payments for the next &#91;***&#93; in cash (with such remaining amount of the overpayment a credit against future Earnout Payments, if any, otherwise payable to Seller hereunder), provided that if such amount to be paid by Seller in cash exceeds $&#91;***&#93;, Seller may pay such amount in &#91;***&#93; installments over the next &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.12&#160;&#160;&#160;&#160;Termination of the Existing Agreements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Effective as of the Closing&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;the Development Agreement is terminated and cancelled in its entirety by the parties pursuant to Section 10.2(a) of the Development Agreement, except for Articles 2, 3, 8, 9, 12, 13, 14, and 15 and Sections 10.1 and 10.3 of the Development Agreement which shall survive termination as per the terms of the Development Agreement (but shall no longer apply to the Lipase Project Enzyme, the Purchased Patents, the Resultant Patents, or the Purchased Know-How), and upon such termination the Development Agreement (other than such identified surviving Articles and Section) shall have no further force or effect and none of the parties thereto shall have any further rights or obligations with respect thereto&#59; and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;the Strategic Collaboration Agreement is terminated and cancelled in its entirety by the parties pursuant to Section 12.2.1 of the Strategic Collaboration Agreement, except for Articles 2, 6, 7, 8, 11, 16, and 17 and Sections 5.7, 9.5, 10.1, 12.1, 14.1, and 15.1 of the Strategic Collaboration Agreement which shall survive termination as per the terms of the Strategic </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">18</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Collaboration Agreement (but shall no longer apply to the Lipase Project Enzyme, the Purchased Patents, the Resultant Patents, and the Purchased Know-How), and upon such termination the Strategic Collaboration Agreement (other than such identified surviving Articles and Section) shall have no further force or effect and none of the parties thereto shall have any further rights or obligations with respect thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If there is any conflict or inconsistency between the provisions of the surviving Articles and Sections of an Existing Agreement and the provisions of any Transaction Document, then the provisions of the Transaction Documents shall prevail. For clarity, the Lipase Project Enzyme, the Purchased Patents, the Resultant Patents, and the Purchased Know-How, and Buyer&#8217;s corresponding interest in the Lipase Project Enzyme and such Purchased Patents, Resultant Patents, and Purchased Know-How under the Existing Agreements, shall cease to constitute Joint Patents or Jointly Owned Inventions under any Existing Agreement and cease to be subject to the terms of the Existing Agreements (including the provisions thereof surviving the termination thereof) and, as between the parties, the Prosecution, defense, and enforcement of the Purchased Patents, Resultant Patents, the Purchased Know-How, and Acquired Regulatory Documentation will be controlled solely by the terms of this Agreement and not the surviving Articles and Sections of any Existing Agreement. For clarity, all right, title, and interest in the Purchased Patents, including the right to sue for past infringement, shall belong solely to Buyer as of the Closing Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.13&#160;&#160;&#160;&#160;License to Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Effective as of the Closing Date and subject to the terms of this Section 5.13, Seller (on behalf of itself and its Affiliates) hereby grants to Buyer, and Buyer accepts, a non-exclusive, perpetual, irrevocable, royalty-free, worldwide, non-transferable (except as set forth below), sublicensable (solely as set forth below) license under the Licensed Know-How to Manufacture, Develop, Commercialize, and otherwise Exploit the Lipase Project Enzyme anywhere in the world, &#91;***&#93;. Buyer shall have no rights or license to any enhancements, improvements, or other modifications to the Licensed Know-How made by or on behalf of Seller or any of its Affiliates after the Closing Date. All use of the Licensed Know-How by or under authority of Buyer (or its successors and assigns) from and after the Closing Date shall be on an &#8220;AS IS, WHERE IS&#8221; basis, with all faults and all express and implied representations and warranties disclaimed, and at its sole risk. All rights not expressly granted by Seller and its Affiliates hereunder are reserved by Seller and its Affiliates. The license to the Licensed Know-How granted under this Section 5.13 shall be sublicensable (including through multiple tiers of sublicensees) only to (i) Affiliates (but only for so long as they remain Affiliates of Buyer), Licensees, and service providers of Buyer and (ii) any Third Party that acquires one or more of the Purchased Patents or Resultants Patents and such Third Party&#8217;s Affiliates (but only for so long as they remain Affiliates of such Third Party) and service providers, in each case, for use solely within the scope of the above license, and shall be assignable and transferable only to successors in interest to all or substantially all of the assets of Buyer relating to the Products. Buyer is liable for any acts or omissions of its Licensees, Affiliates, employees, contractors, representatives, and (direct and indirect) sublicensees that would, if an act or omission of Buyer, be a breach of this Section 5.13. The rights and licenses granted in this Section 5.13 are subject to, and limited by, any and all licenses, rights, limitations, and restrictions with respect to the Licensed Know-How previously granted to or otherwise obtained by any Third Party that are in effect as of the Closing Date. Nothing contained herein will be construed as an obligation to disclose or deliver any technical information or embodiment of any Licensed Know-How or to provide any technical assistance or other services or deliverables to Buyer or its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.14&#160;&#160;&#160;&#160;&#91;***&#93;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">19</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_76"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE VI</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CONDITIONS TO CLOSING</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.01&#160;&#160;&#160;&#160;Conditions on Obligations of Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The obligations of Buyer to consummate the transactions contemplated by this Agreement shall be subject to the fulfillment or Buyer&#8217;s waiver, at or prior to the Closing, of each of the following conditions&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;The representations and warranties of Seller contained in ARTICLE III shall be true and correct in all respects as of the Closing Date with the same effect as though made at and as of such date (except those representations and warranties that address matters only as of a specified date, which shall be true and correct in all respects as of that specified date), except where the failure of such representations and warranties to be true and correct would not have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Seller shall have duly performed and complied in all material respects with all agreements, covenants and conditions required by this Agreement and each of the other Transaction Documents to be performed or complied with by it prior to or on the Closing Date.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;Seller shall have delivered to Buyer duly executed counterparts to the Transaction Documents (other than this Agreement) and such other documents and deliverables set forth in Section 2.02(a).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.02&#160;&#160;&#160;&#160;Conditions on Obligations of Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The obligations of Seller to consummate the transactions contemplated by this Agreement shall be subject to the fulfillment or Seller&#8217;s waiver, at or prior to the Closing, of each of the following conditions&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;The representations and warranties of Buyer contained in ARTICLE IV shall be true and correct in all respects as of the Closing Date with the same effect as though made at and as of such date (except those representations and warranties that address matters only as of a specified date, which shall be true and correct in all respects as of that specified date), except where the failure of such representations and warranties to be true and correct would not have a material adverse effect on Buyer&#8217;s ability consummate the transactions contemplated hereby.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Buyer shall have duly performed and complied in all material respects with all agreements, covenants and conditions required by this Agreement and each of the other Transaction Documents to be performed or complied with by it prior to or on the Closing Date.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;Buyer shall have delivered to Seller duly executed counterparts to the Transaction Documents (other than this Agreement) and such other documents and deliverables set forth in Section 2.02(b).</font></div><div id="i873312b938d24f41912d41175fac5420_71"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE VII</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">INDEMNIFICATION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.01&#160;&#160;&#160;&#160;Survival</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the limitations and other provisions of this Agreement, the representations and warranties contained herein shall survive the Closing and shall remain in full force and effect until the date that is &#91;***&#93; from the Closing Date. None of the covenants or other agreements contained in this Agreement shall survive the expiration or other termination of the Term other than those which by their terms contemplate performance after termination (including Section 5.03 (Confidential Information) and Section 5.11 (Books and Records&#59; Audits)), and each such surviving covenant and </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">20</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">agreement shall survive termination for the period contemplated by its terms. Notwithstanding the foregoing, any claims asserted in good faith with reasonable specificity (to the extent known at such time) and in writing by notice from the non-breaching party to the breaching party prior to the expiration date of the applicable survival period shall not thereafter be barred by the expiration of such survival period and such claims shall survive until finally resolved.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.02&#160;&#160;&#160;&#160;Indemnification by Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the other terms and conditions of this ARTICLE VII, from and after the Closing, Seller shall indemnify Buyer, its Affiliates, and each of their successors and assigns (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer Indemnified Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">against, and shall hold the Buyer Indemnified Parties harmless from and against, any and all losses, damages, liabilities, deficiencies, Actions, judgments, interest, awards, penalties, fines, costs, or expenses of whatever kind, including reasonable out-of-pocket expenses of investigation and reasonable attorneys&#8217; fees and expenses in connection with any action, &#91;***&#93; (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Losses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), incurred or sustained by, or imposed upon, any Buyer Indemnified Party based upon, arising out of, with respect to, or by reason of&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;any Excluded Liability.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.03&#160;&#160;&#160;&#160;Indemnification by Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the other terms and conditions of this ARTICLE VII, from and after the Closing, Buyer shall indemnify Seller, its Affiliates, and each of their successors and assigns (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller Indemnified Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">against, and shall hold the Seller Indemnified Parties harmless from and against, any and all Losses incurred or sustained by, or imposed upon, any Seller Indemnified Party based upon, arising out of, with respect to, or by reason of&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;&#91;***&#93;, any Assumed Liability or Buyer&#8217;s, its Affiliates&#8217;, and its Licensees&#8217; conduct of the Business after the Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.04&#160;&#160;&#160;&#160;Certain Limitations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The party making a claim under this ARTICLE VII is referred to as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Indemnified Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and the party against whom such claims are asserted under this ARTICLE VII is referred to as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Indemnifying Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The indemnification provided for in Section 7.02 and Section 7.03 shall be subject to the following limitations&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;The Indemnifying Party shall not be liable to the Indemnified Party for indemnification under Section 7.02(a) or Section 7.03(a), as the case may be, until the aggregate amount of all Losses in respect of indemnification under Section 7.02(a) or Section 7.03(a) exceeds $&#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Deductible</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in which event the Indemnifying Party shall only be required to pay or be liable for Losses in excess of the Deductible.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;The aggregate amount of all Losses for which a Seller shall be liable pursuant to Section 7.02(a) shall not exceed &#91;***&#93; of the Purchase Price (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Cap</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;In no event shall any Indemnifying Party be liable to any Indemnified Party for any punitive, incidental, consequential, special, or indirect damages, or for any damages based on </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">21</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">loss of future revenue or income, loss of business reputation or opportunity relating to the breach or alleged breach of this Agreement, or diminution of value or any damages based on any type of multiple, &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;&#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;Seller shall not be liable under this ARTICLE VII for any Losses based upon or arising out of any inaccuracy in or breach of any of the representations or warranties of Seller contained in this Agreement if Buyer &#91;***&#93; knowledge of such inaccuracy or breach prior to the Closing.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For purposes of calculating the Deductible or the Cap with respect to any Losses, the Deductible or Cap, as applicable, will be calculated as of the date on which such Loss is payable by the Indemnifying Party to the Indemnified Party and the Purchase Price for purposes of such calculation will be equal to the aggregate of the Initial Purchase Price, the Milestone Earnout Payments, and Sales Earnout Payments paid or payable by Buyer to Seller during the period from the Closing Date until (and including) the date on which such Loss is payable&#59; &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.05&#160;&#160;&#160;&#160;Indemnification Procedures</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Whenever any claim shall arise for indemnification hereunder, the Indemnified Party shall promptly provide written notice of such claim to the Indemnifying Party. Such notice by the Indemnified Party shall&#58; (a) describe the claim in reasonable detail&#59; (b) include copies of all material written evidence thereof&#59; and (c) indicate the estimated amount, if reasonably practicable, of the Loss that has been or may be sustained by the Indemnified Party. In connection with any claim giving rise to indemnity hereunder resulting from or arising out of any Action by a Person who is not a party to this Agreement, the Indemnifying Party, at its sole cost and expense and upon written notice to the Indemnified Party, may assume the defense of any such Action with counsel reasonably satisfactory to the Indemnified Party. The Indemnified Party shall be entitled to participate in the defense of any such Action, with its counsel and at its own cost and expense, subject to the Indemnifying Party&#8217;s right to control the defense thereof. If the Indemnifying Party does not assume the defense of any such Action, the Indemnified Party may, but shall not be obligated to, defend against such Action in such manner as it may deem appropriate, including settling such Action, after giving notice of it to the Indemnifying Party, on such terms as the Indemnified Party may deem appropriate and no action taken by the Indemnified Party in accordance with such defense and settlement shall relieve the Indemnifying Party of its indemnification obligations herein provided with respect to any damages resulting therefrom. The Indemnifying Party shall not be entitled to assume or maintain control of the defense of any such Action if (i) &#91;***&#93;, (ii) such Action seeks an injunction or equitable relief against the Indemnified Party or any of its Affiliates, or (iii) &#91;***&#93;. Seller and Buyer shall cooperate with each other in all reasonable respects in connection with the defense of any claim, including&#58; (i) making available (subject to the provisions of Section 5.03) records relating to such claim&#59; and (ii) furnishing, without expense (other than reimbursement of actual out-of-pocket expenses) to the defending party, management employees of the non-defending party as may be reasonably necessary for the preparation of the defense of such claim. The Indemnifying Party shall not settle any Action without the Indemnified Party&#8217;s prior written consent (which consent shall not be unreasonably withheld, conditioned, or delayed).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.06&#160;&#160;&#160;&#160;Tax Treatment of Indemnification Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">All indemnification payments made under this Agreement shall be treated by the parties as an adjustment to the Purchase Price for Tax purposes, unless otherwise required by Law.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.07&#160;&#160;&#160;&#160;Exclusive Remedies</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to ARTICLE VIII, the parties acknowledge and agree that from and after the Closing their sole and exclusive remedy with respect to any and all claims (other than claims arising from intentional fraud on the part of a party hereto or its representatives in connection with the transactions contemplated by this Agreement) for any breach of any representation, warranty, covenant, agreement, or obligation set forth herein or otherwise relating to the subject matter of this Agreement shall be pursuant to the indemnification provisions set forth in this ARTICLE VII. In furtherance of the foregoing, each party hereby waives, from and after the Closing, to the fullest extent permitted under Law, any and all rights, claims, and causes of action for any breach of any representation, warranty, covenant, agreement, or obligation set forth herein or otherwise relating to the subject matter of this Agreement it may have against the other parties hereto and their Affiliates and each of their respective Representatives arising under or based upon any Law, except pursuant to the indemnification provisions set forth in this ARTICLE VII. Nothing in this Section 7.07 shall limit any Person&#8217;s right to seek and obtain any equitable relief to which such Person shall be entitled or to seek any remedy on account of any intentional fraud by any party hereto or its representatives.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.08&#160;&#160;&#160;&#160;Right to Set-Off</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Buyer is expressly authorized, but shall not be obligated, to set-off any Losses that the Parties have agreed in writing, or which have been finally determined in accordance with ARTICLE X, to be subject to indemnification by Seller hereunder (subject to the limitations set forth in Section 7.04) against any Milestone Earnout Payment or Sales Earnout Payment or any other payments payable to Seller pursuant to this Agreement.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Neither the exercise nor the failure or delay to exercise such right to withhold or set off pursuant to this Section 7.08 will constitute an election of remedies or limit the rights and remedies of the Buyer Indemnified Parties hereunder (other than to the extent any Losses have been set off pursuant to Section 7.08(a)).</font></div><div id="i873312b938d24f41912d41175fac5420_61"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE VIII</font></div><div style="margin-bottom:12pt;padding-left:18pt;padding-right:18pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">TERM AND TERMINATION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 8.01&#160;&#160;&#160;&#160;Term</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement commences upon the Effective Date and will, unless earlier terminated in accordance with Section 8.02, continue until the later of&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93; of the Effective Date&#59; and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93; of the date the last Sales Earnout Payment is made to Seller (the period from the Effective Date until the expiration or other termination of this Agreement, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Term</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 8.02&#160;&#160;&#160;&#160;Termination</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement may be terminated at any time prior to the Closing&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;by the mutual written agreement of Seller and Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;by Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">by written notice to Seller if&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;Buyer is not then in material breach of any provision of this Agreement and there has been a material breach, inaccuracy in, or failure to perform any representation, warranty, covenant, or agreement made by Seller pursuant to this Agreement that would give rise to the failure of any of the conditions specified in </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">23</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE VI and such breach, inaccuracy, or failure cannot be cured by Seller by &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer Drop Dead Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59; or</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;any of the conditions set forth in Section 6.01 shall not have been fulfilled by the Buyer Drop Dead Date, unless such failure shall be due to the failure of Buyer to perform or comply with any of the covenants, agreements, or conditions hereof to be performed or complied with by it prior to the Closing&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;by Seller by written notice to Buyer if&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;Seller is not then in material breach of any provision of this Agreement and there has been a material breach, inaccuracy in, or failure to perform any representation, warranty, covenant, or agreement made by Buyer pursuant to this Agreement that would give rise to the failure of any of the conditions specified in ARTICLE VI and such breach, inaccuracy, or failure cannot be cured by Buyer by &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller Drop Dead Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59; or</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;any of the conditions set forth in Section 6.02 shall not have been fulfilled by the Seller Drop Dead Date, unless such failure shall be due to the failure of Seller to perform or comply with any of the covenants, agreements, or conditions hereof to be performed or complied with by it prior to the Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 8.03&#160;&#160;&#160;&#160;Effect of Termination</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">In the event of the termination of this Agreement in accordance with Section 8.02, this Agreement shall forthwith become void and there shall be no liability on the part of any party hereto except&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;that the obligations set forth in this ARTICLE VIII, Section 5.03, ARTICLE X, and ARTICLE XI hereof shall survive termination&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;that nothing herein shall relieve any party hereto from liability for any intentional breach of any provision hereof prior to such termination.</font></div><div id="i873312b938d24f41912d41175fac5420_97"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE IX</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">AMYLASE AND PROTEASE OPTION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.01&#160;&#160;&#160;&#160;Option</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer shall have the right (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Option</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">but not the obligation, at any time during the Option Period, to purchase certain additional assets of Seller on the terms set forth in the A&#38;P Acquisition Agreement and this Article IX. In connection with the grant to Buyer of the Option, Seller shall deliver, concurrently with the execution of this Agreement and as a condition thereto, an executed signature page to the A&#38;P Acquisition Agreement, which signature page shall be held in escrow by Buyer &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.02&#160;&#160;&#160;&#160;Notice of Exercise</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">At any time prior to the expiration or other termination of the Option Period, subject to Section 9.03, Buyer may, in its sole and absolute discretion, exercise the Option by delivering to Seller a written notice of such exercise (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Notice of Exercise</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The date the Notice of Exercise is delivered by Buyer to Seller shall be referred to herein as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Option Exercise Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.&#8221;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.03&#160;&#160;&#160;&#160;Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The transactions contemplated by the A&#38;P Acquisition Agreement shall be consummated on the date that is not later than &#91;***&#93; after the Option Exercise Date (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Acquisition Agreement Effective Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), unless otherwise mutually agreed by the parties or Buyer has </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">24</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">revoked its Notice of Exercise in accordance with this Section 9.03. During the period from the Option Exercise Date to the A&#38;P Acquisition Agreement Effective Date, the parties shall prepare in good faith each of the Transaction Documents contemplated by Section 2.02(a) of the A&#38;P Acquisition Agreement, including the A&#38;P Expression System License Agreement, which shall be substantially in the form and substance of the Expression System License Agreement and modified to include the particulars of the Plasmid and Cell Bank Strain, Current Facility(ies), Current Services Providers, and other details relevant to the A&#38;P Project Enzymes (as defined in the A&#38;P Acquisition Agreement) and to provide for the transfer of the Cell Banks for the A&#38;P Project Enzymes stored at Seller to Buyer, its Affiliate, or a Service Provider. Seller (a) may, within &#91;***&#93; of the Option Exercise Date, supplement, amend, or add any schedule to the disclosure schedules to the A&#38;P Acquisition Agreement (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Disclosure Schedules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">by giving notice to Buyer in accordance with this Agreement, in order to add information and (b) shall, &#91;***&#93; prior to the A&#38;P Acquisition Agreement Effective Date, update the A&#38;P Disclosure Schedules to include (i) in Section 1.01(a) thereto, all then-existing Patents owned by Seller or its Affiliates that claim or disclose inventions comprising, or that are reasonably necessary for the Manufacturing or use of &#91;***&#93; (as each term is defined in the A&#38;P Acquisition Agreement) as each then-currently exists, other than any Patents covered by the A&#38;P Expression System License Agreement, (ii) in Section 1.01(b) thereto, all Contracts to which Seller or its Affiliates are party that relate exclusively to the A&#38;P Project Enzymes, and (iii) in Section 1.01(c) thereto, all inventory of drug substance, drug product, samples thereof, and antibodies, in each case, of &#91;***&#93; then in Seller&#8217;s or its Affiliates&#8217; possession or under its control&#59; provided that &#91;***&#93;. If &#91;***&#93;, Buyer shall deliver to Seller on or prior to the A&#38;P Acquisition Agreement Effective Date a copy of the A&#38;P Acquisition Agreement executed by Buyer and with the A&#38;P Acquisition Agreement Effective Date inserted therein, which will be effective in accordance with the terms of the A&#38;P Acquisition Agreement as of the A&#38;P Acquisition Agreement Effective Date &#91;***&#93;. For the avoidance of doubt, so long as Buyer has delivered a Notice of Exercise on or prior to the expiration or termination of the Option Period &#91;***&#93;, then the Closing (as defined in the A&#38;P Acquisition Agreement) shall occur in accordance with the terms of this Agreement and the A&#38;P Acquisition Agreement, as applicable notwithstanding expiration or termination of the Option Period.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.04&#160;&#160;&#160;&#160;Patent Prosecution and Costs</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">During the period prior to the expiration or termination of Option Period, Seller shall continue to Prosecute and maintain and shall not abandon any of Seller&#8217;s existing Patents covering the A&#38;P Enzymes. Without limiting the foregoing, (a) Seller shall, or shall cause the external law firm prosecuting such Patents to, consult in good faith with Buyer with respect to all material steps to be taken in connection with such Prosecution and maintenance of such Patents (provided, however, that Seller will not be required to disclose any information to Buyer if such disclosure would be reasonably likely to result in any waiver of attorney-client privilege, work product doctrine, joint defense privilege or any other privilege and the parties agree that any disclosure of information pursuant hereto shall not constitute a waiver of any such privilege), and (b) Seller shall promptly provide Buyer with copies of any notices or correspondence received from any Governmental Authority or other Third Party regarding such Patents and consult in good faith with Buyer with respect to any written response or further action in response to such notice. Should any patent applications expire or issue as patents prior to the expiration or termination of the Option Period, prior to the expiration of such patent application or the issuance of such patent, Seller shall, if requested by Buyer, file a continuing application claiming priority to such patent to the extent such filing is allowed. Buyer shall, within &#91;***&#93; after Seller&#8217;s provision of applicable invoices, reimburse Seller for all reasonable and documented, out-of-pocket costs and expenses of Seller and its Affiliates incurred during the period prior to the expiration or termination of the Option Period for or in connection with the Patent Prosecution and maintenance activities of Seller and its Affiliates in accordance with this Section 9.04&#59; provided that, upon Seller&#8217;s written request, Buyer shall pay directly to one or more law firms engaged by Seller or its Affiliates such costs and expenses of such Prosecution.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">25</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.05&#160;&#160;&#160;&#160;Limited Right to Continue A&#38;P Enzyme Development Work</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Notwithstanding Section 7.8 of the SCA, during the Option Period, Buyer shall have the right (co-exclusively with Seller), but not the obligation, to, solely at Buyer&#8217;s sole cost and sole liability, continue the research, non-clinical Development, and Manufacture (solely for non-clinical use) of the A&#38;P Enzymes, in each case, solely for developing the A&#38;P Enzymes for &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Development Work</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer&#8217;s licenses to use any of Seller&#8217;s Intellectual Property or Confidential Information to undertake the A&#38;P Development Work is solely as set forth in, and subject to the limitations and requirements of, the Existing Agreement. No right, license, or permission is granted to Buyer or any of its Affiliates to Commercialize any A&#38;P Enzyme or any therapy or product including or made from or using any A&#38;P Enzyme. Other than as otherwise expressly set forth in this Agreement, Seller and its Affiliates have no obligation to provide Buyer with any support or assistance in connection with any A&#38;P Development Work. Seller shall indemnify Buyer against, and shall hold Buyer harmless from and against, any and all Losses, incurred or sustained by, or imposed upon, Buyer based upon, arising out of, with respect to, or by reason the A&#38;P Development Work, including Buyer&#8217;s and its Affiliates&#8221; activities undertaken in connection with or in furtherance thereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.06&#160;&#160;&#160;&#160;Status Quo</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For the avoidance of doubt, unless and until the closing of the A&#38;P Acquisition Agreement, the parties&#8217; rights and obligations with respect to the A&#38;P Enzymes are governed by the Existing Agreements (including, if the Existing Agreements expire or otherwise terminate, the terms thereof that survive such expiration or other termination)&#59; and, except as set forth in Section 9.05, no new Development, Manufacturing, or Commercialization rights and obligations related to the A&#38;P Enzymes shall be transferred to Buyer or its Affiliates prior to such time.</font></div><div id="i873312b938d24f41912d41175fac5420_102"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLES X</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">DISPUTE RESOLUTION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 10.01&#160;&#160;&#160;&#160;Elevation of Issues for Resolution</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">In the event the parties or their Representatives are unable to agree upon any dispute or disagreement between the parties arising from or in connection with this Agreement, the construction hereof, or the rights, duties or liabilities of either party hereunder (each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Dispute</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">the parties shall endeavor to resolve such Dispute in accordance with the terms of this Section 10.01. Upon the receipt of a written notice from one party to the other party of a Dispute (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Notice of Dispute</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">authorized Representatives of the parties, each with authority to settle the Dispute, shall endeavor to discuss their respective positions and use their good faith efforts to resolve the Dispute. In connection with such discussion, the parties may agree to confer with one or more mutually acceptable independent Third Party experts having expertise in the relevant subject matter and both parties shall consider in good faith the views of such Third Party(ies). If for any reason a written agreement signed by both parties is not reached within &#91;***&#93; after the Notice of Dispute, the parties shall promptly refer the Dispute to the Senior Executives (or their respective designees) for resolution, which Senior Executives will have authority to settle the Dispute and shall be charged with resolving such Dispute. If such Dispute is not resolved by the parties&#8217; Senior Executives within &#91;***&#93; after the date the Dispute is referred to them, then the Dispute shall be submitted to binding arbitration in accordance with Section 10.02.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 10.02&#160;&#160;&#160;&#160;Arbitration</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Any Dispute that is not resolved by an executed written agreement of the parties in accordance with Section 10.01, as well as any related claims or other disputes arising out of or in connection with this Agreement including any question regarding its existence, validity, or termination, whether for breach of contract, tortious conduct, or otherwise and whether predicated on common law, statute, or otherwise (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Related Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">shall be referred to and finally resolved by arbitration under the &#91;***&#93;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">rules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Rules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in effect at the Effective Date except, as they </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">26</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">may be modified herein or by mutual agreement of the parties, which Rules are deemed to be incorporated by reference into this Section 10.02. The number of arbitrators shall be three, unless otherwise mutually agreed by the parties, whereby, claimant and the respondent shall each nominate an arbitrator, and the third arbitrator, who shall be the president of the arbitral tribunal, shall be appointed by the two party-appointed arbitrators in consultation with the parties, in each case, in accordance with the Rules. Each arbitrator shall be experienced in the subject matter herein and the application of &#91;***&#93; law. The seat or legal place of arbitration shall be &#91;***&#93;. The language to be used in the arbitral proceedings shall be English.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Within &#91;***&#93; after the appointment of the arbitrators pursuant to this Section 10.02, the arbitrators and the parties shall meet, and each party shall provide to the arbitrators a written summary of&#58; (i) all issues within the scope of the Dispute and any Related Claims&#59; and (ii) such party&#8217;s position on each such issue. The arbitrators shall set a date for a hearing, which shall be no later than &#91;***&#93; after the appointment of the final arbitrator pursuant to this Section 10.02, for the presentation of evidence and legal arguments concerning each of the issues identified by the parties&#59; provided, however, that the parties may jointly agree in writing to extend the foregoing deadlines, or &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;The arbitrators shall use each of their best efforts to rule on each disputed issue within &#91;***&#93; after the completion of the hearing described in Section 10.02(a)&#59; provided, however, that the parties may jointly agree in writing to extend the foregoing deadlines, or &#91;***&#93;. No arbitrator (nor any arbitral tribunal) shall have the power to&#58; (i) award any punitive damages or other damages prohibited by Section 7.04&#59; or (ii) to decide or rule on any issue or other matter that is not clearly with the scope of the Dispute and any Related Claims. The costs of the arbitration shall be &#91;***&#93; during the course of such arbitration, as assessed by &#91;***&#93;, and shall be borne as determined by the arbitrators.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;The arbitration proceedings, including the existence of the arbitration proceedings, the facts and circumstances surrounding the underlying dispute, all submissions, correspondence, and evidence relating to the arbitration proceedings, and any awards issued by the arbitrator shall be kept confidential by the parties, and the parties shall work with the arbitrators to take such steps as are reasonably necessary to preserve the confidentiality thereof, except to the extent otherwise required by applicable Law.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;Subject to Section 10.02(b), the arbitrators shall have the power to grant any remedy or relief that they deem just and equitable, including but not limited to injunctive relief, whether interim or final, and any provisional measures ordered by the arbitrator may be enforced by any court of competent jurisdiction. Notwithstanding the foregoing, nothing in this Agreement shall prevent either party from seeking any provisional&#47;preliminary relief (including injunctions, attachments, or other such orders in aid of arbitration) from any court of competent jurisdiction, and any such application to a court for provisional&#47;preliminary relief shall not be deemed incompatible with the terms of this Agreement to arbitrate or a waiver of the right to arbitrate.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;Any award rendered by the arbitrators shall be final and binding on the parties, and each party hereto waives to the fullest extent permitted by law any right it may otherwise have under the laws of any jurisdiction to any form of appeal of, or collateral attack against, such award. Judgment upon any awards rendered by the arbitrators may be entered in any court having jurisdiction thereof, including any court having jurisdiction over any of the parties or their assets.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">27</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;Notwithstanding anything in this ARTICLE X to the contrary, any dispute to determine the validity or infringement of a party&#8217;s intellectual property rights by the other party (but excluding, in any event, disputes relating to earnouts or other amounts payable hereunder, whether or not involving questions of infringement or validity) shall be submitted exclusively to the courts in the jurisdiction of the relevant intellectual property right, and the parties hereby consent to the jurisdiction of such courts.</font></div><div id="i873312b938d24f41912d41175fac5420_66"></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE XI</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">MISCELLANEOUS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.01&#160;&#160;&#160;&#160;Definitions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The terms in this Agreement with initial letters capitalized, whether used in the singular or the plural, shall have the respective meanings either set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit A</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> attached hereto or in another part of this Agreement and as cross referenced in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit A</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.02&#160;&#160;&#160;&#160;Construction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;The headings of each Article and Section in this Agreement have been inserted for convenience of reference only and are not intended to limit or expand on the meaning of the language contained in the particular Article or Section.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Except where the context otherwise requires, wherever used, the singular shall include the plural, the plural the singular, the use of any gender shall be applicable to all genders and the word &#8220;or&#8221; is used in the inclusive sense (and&#47;or).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;The term &#8220;including,&#8221; &#8220;include,&#8221; or &#8220;includes&#8221; as used herein shall mean including, without limiting the generality of any description preceding such term.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;Unless the context requires otherwise, (i) any definition of or reference to any agreement, instrument, or other document herein will be construed as referring to such agreement, instrument, or other document as from time to time amended, supplemented, or otherwise modified (subject to any restrictions on such amendments, supplements, or modifications set forth herein or therein), (ii) any reference to any applicable Laws herein will be construed as referring to such Laws as from time to time enacted, repealed, or amended, (iii) any reference herein to any person will be construed to include the person&#8217;s successors and permitted assigns, (iv) the words &#8220;herein&#8221;, &#8220;hereof,&#8221; and &#8220;hereunder&#8221;, and words of similar import, will be construed to refer to this Agreement in its entirety and not to any particular provision hereof, (v) any reference herein to the words &#8220;mutually agree&#8221; or &#8220;mutual written agreement&#8221; will not impose any obligation on either party to agree to any terms relating thereto except as such party may determine in such party&#8217;s sole discretion, (vi) all references herein to Sections or Exhibits will be construed to refer to Sections and Exhibits to this Agreement, (vii) the word &#8220;days&#8221; means calendar days unless otherwise specified, (viii) except as otherwise expressly provided herein all references to &#8220;$&#8221; or &#8220;dollars&#8221; refer to the lawful money of the U.S., and (ix) the words &#8220;copy&#8221; and &#8220;copies&#8221; and words of similar import when used in this Agreement include, to the extent available, electronic copies, files or databases containing the information, files, items, documents, or materials to which such words apply.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;Each party represents that it has been represented by legal counsel in connection with this Agreement and acknowledges that it has participated in the drafting hereof. In interpreting and applying the terms and provisions of this Agreement, the parties agree that no </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">28</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">presumption will apply against the party which drafted such terms and provisions. The language in this Agreement is to be construed in all cases according to its fair meaning.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;Any documents will be deemed to have been made available to, and received by, Buyer if such documents were made available to Buyer &#91;***&#93; prior to the execution and delivery of this Agreement by Seller.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.03&#160;&#160;&#160;&#160;Expenses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except as otherwise expressly provided herein (including Section 5.09 hereof), all costs and expenses incurred in connection with this Agreement and the transactions contemplated hereby shall be paid by the party incurring such costs and expenses.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.04&#160;&#160;&#160;&#160;Severability</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If and to the extent that any provision (or any part thereof) of this Agreement is held to be invalid, illegal, or unenforceable, in any respect in any jurisdiction, the provision (or the relevant part thereof) shall be considered severed from this Agreement and shall not serve to invalidate the remainder of such provision or any other provisions hereof. The parties shall make a good faith effort to replace any invalid, illegal, or unenforceable provision (or any part thereof) with a valid, legal, and enforceable provision such that the objectives contemplated by the parties when entering this Agreement may be realized.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.05&#160;&#160;&#160;&#160;Notices</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Any notice required or permitted to be given by the parties pursuant to this Agreement shall be in writing and shall be (i) delivered by hand, (ii) delivered by overnight courier with tracking capabilities, (iii) mailed postage prepaid by first class, registered, or certified mail, or (iv) transmitted by electronic mail, with confirmation copy by mail as provided in clause (iii) above, and in each case addressed to the recipient party as set forth below, unless changed by notice so given&#58;</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If to Buyer&#58;</font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Soci&#233;t&#233; des Produits Nestl&#233; S.A. </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">55 Avenue Nestl&#233;  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1800 Vevey  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Switzerland  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;               &#91;***&#93;                          </font></div><div style="padding-left:72pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;          &#91;***&#93;                          </font></div><div style="margin-bottom:12pt;padding-left:72pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">with a copy to (which shall not constitute notice)&#58;</font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Mayer Brown LLP </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1221 Avenue of the Americas  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">New York, NY 10020  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;               &#91;***&#93;                          </font></div><div style="padding-left:72pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;          &#91;***&#93;                          </font></div><div style="margin-bottom:12pt;padding-left:72pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If to Codexis&#58;</font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Codexis, Inc. </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">200 Penobscot Drive  </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">29</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Redwood City, CA 94063 </font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58; President</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">with a copy to (which shall not constitute notice)&#58;</font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Codexis, Inc. </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">200 Penobscot Drive  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Redwood City, CA 94063 </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;              &#91;***&#93; </font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;         General Counsel</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">And</font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Baker Hostetler LLP </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">312 Walnut Street, Suite 3200  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Cincinnati, OH 45202-4074  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;               &#91;***&#93;                         </font></div><div style="padding-left:72pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93; </font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;          &#91;***&#93;</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(A) with respect to any notice delivered pursuant to clauses (i), (ii) or (iii), such notice shall not be effective unless it was (1) first delivered via e-mail and no response was given within &#91;***&#93; and (2) a subsequent notice via e-mail was sent indicating the delivery via method described in clause (i), (ii), or (iii), as applicable&#59; (B) with respect to any notice delivered pursuant to clauses (i), such notice shall be deemed effective upon submission to such other party, (C) with respect to any notice delivered pursuant to clause (ii), such notice shall be deemed effective &#91;***&#93; following the date of submission to the carrier, (D) with respect to any notice delivered pursuant to clause (iii), such notice shall be deemed effective &#91;***&#93; after the date deposited with the applicable carrier, and with respect to any notice delivered pursuant to clause (iv), (x) upon submission to such other party if sent during normal business hours of the recipient, and (y) on &#91;***&#93; if sent after normal business hours of the recipient (in the case of (x) or (y), subject to confirmation of receipt by recipient by reply email). A party may add, delete, or change the person or address to whom notices should be sent at any time upon written notice delivered to the other party in accordance with this Section 11.05.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.06&#160;&#160;&#160;&#160;Assignment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Neither this Agreement nor any of the rights or obligations hereunder (&#91;***&#93;) may be assigned or transferred by either party without the prior written consent of the other party, such consent not to be unreasonably withheld, delayed or conditioned&#59; provided, however, that either party may, without the other party&#8217;s consent, but with written notice to the other party, assign or transfer all of its rights and obligations hereunder to any Affiliate, or to a Third Party with whom it completes a Business Combination or to whom it sells substantially all of such party&#8217;s assets relating to this Agreement. &#91;***&#93;. This Agreement shall inure to the benefit of and be binding on the parties&#8217; successors and assigns. Any assignment or transfer in violation of the foregoing shall be null and void and wholly invalid, the assignee or transferee in any such assignment or transfer shall acquire no rights whatsoever, and the non-assigning, non-transferring party shall not recognize, nor shall it be required to recognize, such assignment or transfer.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.07&#160;&#160;&#160;&#160;Waivers, Modifications, and Amendments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No waiver, modification, release, or amendment of any obligation under, or provision of, this Agreement shall be valid or effective unless in writing and signed by all parties hereto. The failure of any party to insist on the performance of any </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">30</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">obligation hereunder shall not be deemed to be a waiver of such obligation. Waiver of any provision hereunder or of any breach of any provision hereof shall not be deemed to be a continuing waiver or a waiver of any other breach of such provision (or any other provision) on such occasion or any succeeding occasion. Any amendment of this Agreement shall not be binding on the parties unless set out in writing, expressed to amend this Agreement and signed by authorized representatives of each of the parties.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.08&#160;&#160;&#160;&#160;Choice of Law</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement (and any claims or disputes arising out of or relating hereto or to the transaction contemplated hereby or to the inducement of any party to enter herein or therein, whether for breach of contract, tortious conduct, or otherwise and whether predicated on common law, statute, or otherwise) shall be governed by, enforced, and shall be construed in accordance with the laws of &#91;***&#93;, without regard to its conflicts of law provisions. The parties hereby disclaim the application of the United Nations Convention on the International Sale of Goods to this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.09&#160;&#160;&#160;&#160;Injunctive Relief</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Notwithstanding anything herein to the contrary, each party shall be entitled to seek injunctive relief and specific performance (including any relief or recovery under this Agreement) in any court of competent jurisdiction in the world.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.10&#160;&#160;&#160;&#160;Relationship of the Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Each party is an independent contractor under this Agreement. Nothing herein is intended or is to be construed so as to constitute Buyer and Seller as partners, agents, or joint venturers. Neither party shall have any express or implied right or authority to assume or create any obligations on behalf of or in the name of the other party or to bind the other party to any contract, agreement, or undertaking with any Third Party. There are no express or implied third party beneficiaries hereunder.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.11&#160;&#160;&#160;&#160;Entire Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The parties agree that this Agreement and the attached Exhibits and Disclosure Schedules, together with the Existing Agreements, constitute the entire agreement between the parties as to the subject matter of this Agreement, and hereby supersede all prior negotiations, representations, agreements, and understandings (whether written or oral) regarding the same. Subject to Section 9.05, the provisions in the Existing Agreements pursuant to which each party has agreed not to Develop or Commercialize the Project Enzymes, including the use of any Jointly Owned Invention in connection therewith, remain in full force and effect except as set forth herein with respect to the Lipase Project Enzyme.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.12&#160;&#160;&#160;&#160;Cooperation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The parties shall (i) provide assistance to each party as reasonably requested in preparing and filing Tax Returns with respect to the Purchased Assets&#59; (ii) make available to each other as reasonably requested all information, records, and documents relating to Taxes concerning the Purchased Assets&#59; (iii) retain any books and records that could reasonably be expected to be necessary or useful in connection with any preparation by any the other party of any Tax Return, or for any audit relating to Taxes with respect to the Purchased Assets&#59; and (iv) cooperate fully, as and to the extent reasonably requested by the other party, in connection with any audits, assessments or administrative or judicial proceedings or other Actions with respect to Taxes relating to the Purchased Assets.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.13&#160;&#160;&#160;&#160;Counterparts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement may be executed in counterparts (including using any electronic signature covered by the United States ESIGN Act of 2000, Uniform Electronic Transactions Act, the Electronic Signatures and Records Act or other applicable Law, e.g., www.docusign.com), each of which shall be deemed an original, but all of which together shall be deemed to be one and the same agreement. A signed copy of this Agreement delivered by email or other means of electronic transmission shall be deemed to have the same legal effect as delivery of an original signed copy of this Agreement. To the extent applicable, the foregoing constitutes the election of the </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">31</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">parties to invoke any Law authorizing electronic signatures. Minor variations in the form of the signature page, including footers from earlier versions of this Agreement, shall be disregarded in determining a party&#8217;s intent or the effectiveness of such signature. No party shall raise the use the delivery of signatures to this Agreement in electronic format as a defense to the formation of a contract and each such party forever waives any such defense.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 11.14&#160;&#160;&#160;&#160;Non-Recourse</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement may only be enforced against, and any Action based upon, arising out of or related to this Agreement, or the negotiation, execution, or performance of this Agreement, may only be brought against the entities that are expressly named as parties hereto and then only with respect to the specific obligations set forth herein with respect to such party. No past, present, or future director, officer, employee, incorporator, manager, member, partner, stockholder, Affiliate, agent, attorney, or other Representative of any party hereto or of any Affiliate of any party hereto, or any of their successors or permitted assigns, shall have any liability for any obligations or liabilities of any party hereto under this Agreement or for any Action based on, in respect of, or by reason of the transactions contemplated hereby.</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">* * * * * * * * *</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">32</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_143"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">IN WITNESS WHEREOF, the parties hereto have caused this Agreement to be executed as of the Effective Date written above by their respective officers thereunto duly authorized.</font></div><div style="margin-bottom:12pt;text-indent:216pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">CODEXIS, INC.</font></div><div style="margin-bottom:12pt;text-indent:216pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">By&#58;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">    &#47;s&#47; Stephen Dilly                                            </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font></div><div style="margin-bottom:12pt;text-indent:252pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Name&#58; Stephen Dilly   </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font></div><div style="margin-bottom:12pt;text-indent:252pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Title&#58; Chief Executive Officer</font></div><div style="margin-bottom:12pt;text-indent:252pt"><font><br></font></div><div style="margin-bottom:12pt;text-indent:216pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">SOCI&#201;T&#201; DES PRODUITS NESTL&#201; S.A.</font></div><div style="margin-bottom:12pt;text-indent:216pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">By&#58;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">    &#47;s&#47; Claudio Kuoni                                             </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font></div><div style="margin-bottom:12pt;text-indent:252pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Name&#58; Claudio Kuoni   </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">        </font></div><div style="margin-bottom:12pt;text-indent:252pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Title&#58; Authorized Signatory</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:400;line-height:112%">&#91;Signature Page to Acquisition Agreement&#93;</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_138"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EXHIBIT A  </font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">DEFINITIONS AND CROSS-REFERENCE TABLE</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Certain Definitions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The following terms have the following meanings&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Acquisition Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Amylase and Protease Acquisition Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the Amylase and Protease Acquisition Agreement in the form attached hereto and made a part hereof as </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit H</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Enzymes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the amylase and protease Project Enzymes (as such term is defined in the SCA) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Expression System License Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has the meaning given to the term &#8220;Expression System License Agreement&#8221; in the A&#38;P Acquisition Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Product</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) any A&#38;P Enzyme &#91;***&#93; and (b) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Affiliate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">of a Person means an entity that (directly or indirectly) is controlled by, controls, or is under common control with such Person where control means the direct or indirect ownership of voting securities entitled to cast at least fifty percent (50%) of the votes in the election of directors, or such other relationship as results in the power to control the management, business, assets, and affairs of an entity.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">BLA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) in the United States, a Biologics License Application, as defined in the United States Public Health Service Act (42 U.S.C. &#167; 262), and applicable regulations promulgated thereunder by the FDA, or any equivalent application that replaces such application, (b) in the EU, a marketing authorization application, as defined in applicable regulations of the EMA, and (c) in any other country, the relevant equivalent to the foregoing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Books and Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all files (including all electronic data files and hard copies), documents, correspondence, lists, drawings and specifications, creative materials, marketing plans, studies (including market research and market data), reports, and other printed or written materials (in whatever form or medium).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Business</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, following the Closing Date, the Development, Manufacture, Commercialization and other Exploitation of Products by Buyer, its Affiliates, and its Licensees.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Business Combination</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to a party, any of the following events&#58; (a) any Third Party (or group of Third Parties acting in concert) acquires, directly or indirectly, shares of such party representing at least a majority of the voting power (where voting refers to being entitled to vote for the election of directors) then outstanding of such party&#59; (b) such party consolidates with or merges into another corporation or entity which is a Third Party, or any corporation or entity which is a Third Party consolidates with or merges into such party, in either event pursuant to a transaction in which at least a majority of the voting power of the acquiring or resulting entity outstanding immediately after such consolidation or merger is not held by the holders of the outstanding voting power of such party immediately preceding such consolidation or merger&#59; or (c) such party conveys or transfers title to all or substantially all of its assets to a Third Party.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Business Day</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a day other than Saturday, Sunday, or any day on which commercial banks located in &#91;***&#93; are authorized or obligated by applicable Law to close.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">34</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Calendar Quarter</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to any given Calendar Year, the respective periods of three (3) consecutive calendar months ending on March 31, June 30, September 30 or December 31, provided, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, that (a) the first Calendar Quarter of the Term shall extend from the Effective Date to the end of the first complete Calendar Quarter thereafter&#59; and (b) the last Calendar Quarter of the Term shall end upon the expiration or termination of this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Calendar Year</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means each successive period of twelve (12) consecutive months commencing on January 1 and ending on December 31, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, that (a) the first Calendar Year of the Term shall begin on the Effective Date and end on December 31, 2024&#59; and (b) the last Calendar Year of the Term shall end on the effective date of expiration or termination of this Agreement.</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Clinical Trial</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a clinical trial in human subjects of a Product.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Combination Product</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a product consisting of one or more Earnout Products packaged, bundled, or otherwise combined for sale with one or more other products that are not Earnout Products. All references to any Earnout Product in this Agreement will be deemed to include any Combination Product.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercialization</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any and all activities relating specifically to the preparation for sale of, offering for sale of, or sale of a product or service, including activities related to launching, marketing, promoting, distributing, detailing, importing, pricing, reimbursement, and advertising such product, and interacting with Regulatory Authorities regarding any of the foregoing. When used as a verb, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercialize</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercializing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to engage in Commercialization, and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercialized</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has a correlative meaning.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Confidential Information</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any and all technical, business, or other information or data of a party or its Affiliates provided orally, visually, in writing, graphically, electronically, or in another form by or on behalf of such party or its Affiliates to the other party or its Affiliates in connection with this Agreement The parties acknowledge that the terms of this Agreement shall be treated as Confidential Information of &#91;***&#93; and that the Licensed Know-How shall be treated as the Confidential Information of Seller.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Contracts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all contracts, leases, licenses, instruments, notes, commitments, undertakings, indentures, joint ventures and all other agreements, commitments and legally binding arrangements, whether written or oral.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Controlled</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Control</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">when used in reference to any intellectual property, intellectual property right, material, know-how or information, with respect to a party, means that such party (a) owns or has a license (other than a license granted under this Agreement) to such intellectual property and (b) has the legal authority or right to&#58; (i) grant, or procure the grant of, a license or sublicense, to the extent provided for herein, of the intellectual property, intellectual property right, material, know-how or information to the other party&#59; or (ii) in relation to material, know-how and information only, disclose or provide access to, to the extent provided for herein, such material, know-how or information to the other Party, and in each case, without (x) breaching the terms of any then-existing agreement or other legally enforceable arrangement with a Third Party, or (y) misappropriating the material, know-how, intellectual property, intellectual property rights, or information of a Third Party.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Covered Component</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any product or component contained in a Combination Product that is itself an Earnout Product or, to the extent an A&#38;P Product is included in a Combination Product after the A&#38;P Acquisition Agreement Effective Date, such A&#38;P Product.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">35</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Development</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means non-clinical and clinical drug development activities reasonably related to the development and submission of information to a Regulatory Authority or otherwise to the testing and validation of a therapeutic agent, including toxicology, pharmacology and pre-clinical efforts, test method development, stability testing, manufacturing process, formulation development, delivery system development, quality assurance and quality control development, statistical analysis, and clinical trials (including pre- and post-approval studies), whether for purposes of label expansion or otherwise. Development shall include post-approval Development activities. When used as a verb, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Develop</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to engage in Development.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Disclosure Schedules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the disclosure schedules delivered by Seller and Buyer concurrently with the execution and delivery of this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Earnout Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the period starting on the Launch Date and ending on &#91;***&#93; of the Launch Date (inclusive).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Earnout Product</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means each and all of the following&#58; (a) Zenpep&#59; and (b) Products (including in co-formulation with any other product or as part of a Combination Product).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EMA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the European Medicines Agency, or any successor agency thereto.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">European Union</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EU</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, at any given time, the then-current member states of the European Union&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">provided </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">that each of the United Kingdom and Switzerland will also be considered included with the European Union, regardless of each&#8217;s actual membership in the EU.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exploit</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to make, have made, import, use, sell or offer for sale a product or item. &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exploitation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has a correlative meaning.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">FDA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the U.S. Food and Drug Administration, or any successor agency thereto.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">First Commercial Sale</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to a particular country or jurisdiction, the first commercial sale, transfer, or other disposition by Buyer, any of its Affiliates, or any Licensee for consumption by an end user of a Product following the receipt of the first Regulatory Approval for such Product in such country or jurisdiction, excluding any sale, transfer, or disposition that would not constitute a sale for purposes of the definition of Net Sales (&#91;***&#93;).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">GAAP</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means United States generally accepted accounting principles, consistently applied.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Governmental Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any multi-national, federal, state, local, municipal, provincial, or other governmental authority of any nature (including any governmental division, prefecture, subdivision, department, agency, bureau, branch, office, commission, council, court, or other tribunal).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Governmental Order</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any order, writ, judgment, injunction, decree, stipulation, determination, or award entered by or with any Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">IFRS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the current International Financial Reporting Standards, as published by the International Accounting Standards Board.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">36</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Jointly Owned Inventions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) &#8220;Jointly Owned Inventions&#8221; as defined in the Strategic Collaboration Agreement and (b) &#8220;Jointly Owned Inventions&#8221; as defined in the Development Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all non-public data and technical information, including techniques, methods, processes, technology, recipes, formulae, designs, equipment configurations and uses, Manufacturing data, preclinical and clinical data and study designs, specifications, ingredients, Manufacturing processes, formulations, sourcing information, quality control and testing procedures, and related trade secrets, but expressly excluding all Patents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Knowledge of Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller&#8217;s Knowledge</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or any other similar knowledge qualification, means the actual knowledge of those individuals identified on Section A of the Disclosure Schedules, &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Launch Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the date of the First Commercial Sale of any Product anywhere in the United States.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all laws, statutes, rules, regulations, ordinances, and other pronouncements having the effect of law of any federal, national, multinational, state, provincial, county, city, or other political subdivision.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means liabilities, obligations, or commitments of any nature whatsoever, whether asserted or unasserted, known or unknown, absolute or contingent, accrued or unaccrued, matured or unmatured, or otherwise.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Licensed Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all Know-How owned by Seller or its Affiliates as of the Closing Date that is &#91;***&#93; for the Manufacture of the Lipase Project Enzyme as conducted as of the Closing Date or is &#91;***&#93; provided to Regulatory Authorities in order to obtain Regulatory Approval for any product containing any Lipase Project Enzyme anywhere in the world&#59; provided that in no event shall Licensed Know-How include&#58; (a) any Purchased Assets&#59; (b) any Know-How or other intellectual property licensed pursuant to the Expression System License Agreement&#59; or (c) Seller&#8217;s or its Affiliates&#8217; CodeEvolver&#174; platform technology.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Licensee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a Third Party that has been granted a license or right to Develop, Manufacture, Commercialize, or otherwise Exploit any Earnout Product by or through Buyer or Buyer&#8217;s Affiliate, either directly or via a sublicense (through one or more tiers). As used in this Agreement, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Licensee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">shall not include a wholesaler, distributor, or reseller of any Earnout Product, to the extent that Buyer or its Affiliate sells to such Person such Earnout Product and receives only supply price payments and has not granted such wholesaler, distributor, or reseller any license under any Purchased Patent or Resultant Patent.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Manufacture</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Manufacturing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all activities related to the production, manufacture, processing, formulation, filling, finishing, packaging, labeling, shipping, handling, and storage of a product or any intermediate thereof, including process development, process qualification and validation, scale-up, pre-clinical, clinical and commercial manufacture and analytic development, product characterization, stability testing, quality assurance, and quality control.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Material Adverse Effect</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any event, occurrence, fact, condition, or change that is materially adverse to the Development and Manufacture of the Products, taken as a whole.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">37</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Net Sales</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means&#58; (a) the &#91;***&#93; amounts &#91;***&#93; by or on behalf of Buyer, its Affiliates, or any of their respective Licensees for sales of Earnout Products within the United States (other than sales between or among Buyer, its Affiliates, or Licensees for subsequent resale, in which case the first sale to a Third Party that is not a Licensee shall be used for calculation of Net Sales) (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Gross Sales</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">less </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b) only the following deductions to the extent they are (1) &#91;***&#93;, (2) &#91;***&#93;, and (3) &#91;***&#93; (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Deductions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">In the event that Buyer, its Affiliates, or any of their respective Licensees makes any adjustments to such Deductions after the associated Net Sales have been reported pursuant to this Agreement, the adjustments will be reported and reconciled in the next report and payment of any Sales Earnout Payment due.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer must determine all Gross Sales and all of the foregoing Deductions in accordance with &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Use, supply, or donation of Earnout Product by Buyer, its Affiliates, or their respective Licensees for no profit (1) &#91;***&#93;, (2) &#91;***&#93;, (3) &#91;***&#93;, or (4) &#91;***&#93; shall not, in each case, be deemed sales of Earnout Product for purposes of this definition of &#8220;Net Sales.&#8221;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Option Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the period starting on the Closing Date and ending on the earlier of&#58; (a) March 1, 2025&#59; or (b) termination of this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Other Component</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any product or component contained in a Combination Product that is not itself an&#58; (a) Earnout Product&#59; or (b) to the extent an A&#38;P Product is included in a Combination Product after the A&#38;P Acquisition Agreement Effective Date, such A&#38;P Product.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Patent(s)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) any and all patents and patent applications, including all national, regional and international patents and patent applications, provisional patent applications&#59; (b) all patent applications filed either (i) from such patents, patent applications, or provisional applications mentioned in subsection (a) above, or (ii) from an application claiming priority from any of them, including divisionals, continuations, continuations-in-part, provisionals, converted provisionals and requests for continued examinations&#59; and (c) any and all extensions or restorations by existing or future extension or restoration mechanisms, including revalidations, reissues, reexaminations and extensions (including any supplementary protection certificates and the like) of the foregoing patents and&#47;or patent applications in subsections (a) and (b).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Person</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means an individual, sole proprietorship, partnership, limited partnership, limited liability partnership, corporation, limited liability company, business trust, joint stock company, trust, </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">38</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">unincorporated association, foundation, joint venture, or other similar entity, organization, or combination thereof, including a government or political subdivision, department, or agency.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Phase II Clinical Trial</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a Clinical Trial, the principal purpose of which is to make a preliminary determination as to whether a therapeutic product is safe for its intended use and to obtain information about such therapeutic product&#8217;s efficacy, in a manner that is generally consistent with 21 C.F.R. &#167; 312.21(b), as amended (or its successor regulation), sufficient to permit the design of Phase III Clinical Trials.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Phase III Clinical Trial</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a pivotal Clinical Trial with a defined dose or a set of defined doses of a therapeutic product designed to ascertain efficacy and safety of such therapeutic product, in a manner that is generally consistent with 21 C.F.R. &#167; 312.21(c), as amended (or its successor regulation), for the purpose of enabling the preparation and submission of a BLA or a foreign equivalent thereof</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Phase III Completion Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the date that is &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Product(s)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) the Lipase Project Enzyme &#91;***&#93; and (b) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Project Enzyme</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has the meaning set forth in the in the SCA.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Prosecution</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the filing, preparation, prosecution (including any interferences, reissue proceedings, reexaminations, and oppositions), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">inter partes </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">review, post-grant review, and maintenance of the Purchased Patents and Resultant Patents. When used as a verb, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Prosecute</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Prosecuting</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to engage in Prosecution.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Regulatory Approval</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to a therapeutic product in any country or regulatory jurisdiction, any and all approvals from the applicable Regulatory Authority sufficient for the import, distribution, marketing, use, offering for sale, and sale of sch therapeutic product in such country or jurisdiction in accordance with applicable Laws.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Regulatory Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any national or supranational Governmental Authority (including the FDA and EMA) which has regulatory responsibility and authority in one or more countries for review and approval of development and commercialization of therapeutic products.</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Regulatory Documentation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has the meaning set forth in the Development Agreement</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Representative</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to any Person, any and all directors, officers, employees, consultants, financial advisors, counsel, accountants, and other agents of such Person and of the Affiliates of such Person.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Resultant Patent(s)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">mean any Patent &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sell-On Transaction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any of the following &#91;***&#93;&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;the sale or transfer of one or more of the Purchased Patents or Resultant Patents to any Third Party&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;the exclusive or co-exclusive (with Buyer and its Affiliates) licensing of one or more of the Purchased Patents or Resultant Patents to any Third Party&#59;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">39</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;the sale, transfer, or exclusive or co-exclusive (with Buyer and its Affiliates) licensing of one or more of the Purchased Patents or Resultant Patents to any Affiliate of Buyer, in connection with or followed by any of the following&#58; (i) the direct or indirect acquisition by any Third Party (or group of Third Parties acting in concert) of shares of such Affiliate representing at least a majority of the voting power (where voting refers to being entitled to vote for the election of directors) then outstanding of such Affiliate&#59; or (ii) the merger or consolidation of such Affiliate with or into any Third Party, or the merger or consolidation of any Third Party with or into such Affiliate, in either event pursuant to a transaction in which at least a majority of the voting power of the acquiring or resulting entity outstanding immediately after such consolidation or merger is not held by the holders of the outstanding voting power of such Affiliate immediately preceding such consolidation or merger&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;any other similar transaction which has the effect of allowing any Third Party to Develop, Manufacture, or Commercialize any Product other than doing so solely on behalf and for the benefit of Buyer or its Affiliates or Licensees,</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">but in no event shall a Business Combination of Buyer be considered a Sell-On Transaction.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sell-On Transaction Proceeds</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the&#58; (a) value of all proceeds received by Buyer or any of its Affiliates as consideration for or otherwise in connection with a Sell-On Transaction, whether in cash, securities, other property, assumption of liability, or otherwise (but excluding any amount received by Buyer or any of its Affiliates as royalties, profit-sharing payments, or other similar payments (other than milestone payments) based on Net Sales by or on behalf of any acquiror in a Sell-On Transaction)&#59; less (b) &#91;***&#93;. For any such proceeds other than cash, the value of such proceeds will be equal to the fair market value at the time Buyer or any of its Affiliates receive such proceeds, as determined by the mutual agreement of Buyer and Seller or, if Buyer and Seller are not able to agree on such fair market value, determined in accordance with the procedures outlined in ARTICLE X. With respect to any consideration received by Buyer or any of its Affiliates in connection with a Sell-On Transaction in the form of deferred performance or retention-based payments, &#8220;earn-outs&#8221;, or other contingent payments based upon the occurrence of future events, including amounts held in escrow following the closing of a Sell-On Transaction, shall be included in the determination of Sell-On Transaction Proceeds &#91;***&#93;. For the avoidance of doubt, in no event shall Sell-On Transaction Proceeds include (i) &#91;***&#93; or (ii) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sell-On Transaction Profits</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means an amount equal to &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Senior Executives</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Taxes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all federal, state, local, foreign, and other income, gross receipts, sales, use, production, ad valorem, transfer, documentary, franchise, registration, profits, license, withholding, payroll, employment, unemployment, excise, severance, stamp, occupation, premium, property (real or personal), customs, import and export, goods and services, value added, escheat, unclaimed property, duties, or other taxes, fees, assessments, or charges of any kind whatsoever, together with any interest, additions, or penalties with respect thereto.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Tax Return</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any return, declaration, report, claim for refund, or other document relating to Taxes, including any schedule or attachment thereto, and amendment thereof, required to be supplied to a Governmental Authority in connection with any Taxes.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Technology</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means&#58; (a) all of Seller&#8217;s interest in the Purchased Patents&#59; and (b) any Resultant Patents.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">40</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Third Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any Person other than Seller, Buyer, and their respective Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">United States</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;U.S.&#8221; means the United States of America, including its territories, possessions, and protectorates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">VAT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) in relation to any jurisdiction within the European Union, the Tax imposed by the EC Council Directive on the common system of value added tax (2006&#47;112&#47;EC) and any successor or equivalent legislation and any national legislation implementing that directive together with legislation supplemental thereto and the equivalent Tax (if any) in that jurisdiction&#59; and (b) in any other jurisdiction, any other value added, goods and services, consumption or similar Tax chargeable on the supply or deemed supply of goods or services under applicable legislation or regulation.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Zenpep</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all pancrelipase products (which are currently marketed by Buyer, its Affiliates, or any of their licensees, distributors, or partners under the trademark Zenpep or Viokace) sold by Buyer, its Affiliates, or any of their respective licensees, whether formulated for administration as a monotherapy or combination therapy, in co-formulation with any excipient(s) or any other active pharmaceutical ingredient(s), or in a Combination Product, under any and all formulations or methods of administration. Zenpep includes the products currently sold under BLA022210 or BLA022542 in the U.S.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">41</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_133"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%">Cross-Reference Table</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">The following terms have the meanings set forth in the location in this Agreement referenced below&#58;</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#d9d9d9;border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%;text-decoration:underline">Term</font></td><td colspan="3" style="background-color:#d9d9d9;border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%;text-decoration:underline">Section</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">A&#38;P Acquisition Agreement Effective Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 9.03</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">A&#38;P Development Work</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 9.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Acquired Books and Records</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(f)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Acquired Regulatory Documentations</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(d)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Actions</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 3.06(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Allocation Schedule</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.08</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93; Baseline</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Annual Report</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.07</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Assigned Contracts</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Assignment and Assumption Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(i)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Assumed Liabilities</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.03(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Baseline Disputed Items</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Baseline Zenpep &#91;***&#93; Sales</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Bill of Sale</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(i)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Buyer</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Buyer Drop Dead Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.02(b)(i)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Buyer Indemnified Parties</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Cap</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.04(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">CDX-7108</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Closing</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Closing Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Code</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.08</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Codexis</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Deductible</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.04(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Development Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Disclosing Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.03(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Dispute</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 10.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Earnout Payments</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Earnout Sales</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Earnout Statement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(d)(iii)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Effective Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Encumbrances</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 3.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Excluded Assets</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Excluded Liabilities</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.03(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Existing Agreements</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Expression System License Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(iv)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Indemnified Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.04</font></td></tr><tr><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Indemnifying Party</font></td><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.04</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">42</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Initial Purchase Price</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.04</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Inventory</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(c)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93;</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 10.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Lipase Project Enzyme</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Losses</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Milestone</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Milestone Earnout Payment</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">NHSc</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Notice of Dispute</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 10.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Notice of Exercise</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 9.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Option</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 9.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Option Exercise Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 9.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Patent Assignment</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(iii)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93;</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.14</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Permitted Encumbrances</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 3.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Previously Assumed Liabilities</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.09(d)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Previously Transferred Assets</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.09(d)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchased Assets</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchased Know-How</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(d)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchased Patents</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchase Price</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.04</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Quarterly Baseline</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Quarterly Estimate</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.07</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Receiving Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.03(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Related Claims</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 10.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Restricted Business</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.05(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Restricted Period</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.05(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Rules</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 10.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Sales Earnout Payments</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Schedule Supplement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Seller</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Seller Drop Dead Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.02(c)(i)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Seller Indemnified Parties</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.03</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Sell-On Transaction Payment</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Strategic Collaboration Agreement or SCA</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Term</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Transaction Documents</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(iv)</font></td></tr><tr><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:2.9pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Unresolved Baseline Disputed Items</font></td><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;text-indent:7.4pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06(a)</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">43</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_128"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Exhibit C</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Bill of Sale</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_123"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Exhibit D</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Assignment and Assumption</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Agreement</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_187"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Exhibit E</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Patent Assignment</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_192"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%;text-decoration:underline">Exhibit A</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%">Purchased Patents<br>&#91;&#9679;&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_225"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Exhibit F</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">Expression System License Agreement</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_197"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:78.750%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr style="height:225pt"><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:112%">Exhibit G</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:112%">Press Release</font></div><div style="margin-bottom:12pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:78.750%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Codexis Announces Purchase Agreement with Nestl&#233; Health Science for CDX-7108</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">Company to retain economic interest in biotherapeutic asset while removing cash burn from development and commercialization costs</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">REDWOOD CITY</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> Calif</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> December 27</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> 2023 </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(GLOBE NEWSWIRE) -- Codexis, Inc. (NASDAQ&#58; CDXS), a leading enzyme engineering company, today announced it has entered into a purchase agreement with Nestl&#233; Health Science, a globally recognized leader in the field of nutritional science, for CDX-7108, an investigational therapy for the potential treatment of exocrine pancreatic insufficiency (EPI). Under the terms of the agreement, Codexis will receive up to $45M in potential milestone payments, including a $5M upfront payment, as well as single-digit net-sales-based royalties. Codexis will receive up to an additional $5M if Nestl&#233; Health Science exercises an option to purchase two additional early-stage enzymes being developed for EPI. Nestl&#233; Health Science will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;This agreement solidifies the future development of CDX-7108&#8212;a potential new therapy that could be added to the treatment armamentarium for patients with exocrine pancreatic insufficiency&#8212;and enables Codexis to focus resources on the advancement of our ECO Synthesis</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.15pt;font-weight:400;line-height:120%;position:relative;top:-3.85pt;vertical-align:baseline">TM</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> platform and the return to growth of our Pharmaceutical Manufacturing business,&#8221; said Stephen Dilly, MBBS, PhD, Chief Executive Officer of Codexis. &#8220;Preliminary data from the CDX-7108 Phase I study announced earlier this year support continued investigation into Phase II clinical studies. We believe that CDX-7108 could represent a meaningful advance in the standard of care for patients, and we are pleased to retain an economic interest in the program as Nestl&#233; continues development.&#8221;</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Codexis and Nestl&#233; Health Science completed pre-clinical work for CDX-7108 and a Phase I clinical trial under the terms of a previous agreement. With this asset purchase agreement, Nestl&#233; Health Science may continue advancing the compound through the development process.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">About CDX-7108</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">CDX-7108 is a lipase variant specifically engineered to overcome the limitations of traditional pancreatic enzyme replacement therapy (PERT) deficiencies. PERT is the main treatment for exocrine pancreatic insufficiency (EPI), a debilitating condition of the gastrointestinal tract that is caused by conditions that impair pancreatic function, such as pancreatitis, pancreatic cancer, Cronh&#8217;s disease, celiac disease and cystic fibrosis. CDX-7108 was engineered to be highly stable to the acidic conditions of the stomach and resistant to proteases in the upper intestines. Preliminary data from an interim analysis of the Phase I study proof-of-concept arm supported continued investigation into Phase II clinical studies.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">About Nestl&#233; Health Science</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Nestl&#233; Health Science, a leader in the science of nutrition and gastrointestinal health, is a globally managed business unit of Nestl&#233;. The company is committed to redefining the management of health, offering an extensive portfolio of science-based nutritional products for patients and consumers. Nestl&#233; Health Science&#8217;s trusted relationship with the healthcare professional-community and significant commercial capabilities provide the foundation for continued growth of its marketed portfolio of pharmaceutical products including the successful launch in 2023 of a microbiome-based therapeutic.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">About Codexis</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Codexis is a leading enzyme engineering company leveraging its proprietary CodeEvolver&#174; technology platform to discover, develop and enhance novel, high-performance enzymes and other classes of proteins. Codexis enzymes solve for real-world challenges associated with small molecule pharmaceuticals manufacturing and nucleic acid synthesis. The Company is currently developing its proprietary ECO Synthesis</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.15pt;font-weight:400;line-height:120%;position:relative;top:-3.85pt;vertical-align:baseline">TM</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> platform to enable the scaled manufacture of RNAi therapeutics through an enzymatic route. Codexis&#8217; unique enzymes can drive improvements such as higher yields, reduced </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#6d6d6d;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Page &#124; 1</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">energy usage and waste generation, improved efficiency in manufacturing and greater sensitivity in genomic and diagnostic applications. For more information, visit</font><font style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline"> www.codexis.com.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Codexis Forward-Looking Statements</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This press release may contain forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities Exchange Act of 1934, as amended. In some cases, you can identify forward-looking statements by terminology such as &#8220;aim,&#8221; &#8220;anticipate,&#8221; &#8220;assume,&#8221; &#8220;believe,&#8221; &#8220;contemplate,&#8221; &#8220;continue,&#8221; &#8220;could,&#8221; &#8220;design,&#8221; &#8220;due,&#8221; &#8220;estimate,&#8221; &#8220;expect,&#8221; &#8220;goal,&#8221; &#8220;intend,&#8221; &#8220;may,&#8221; &#8220;objective,&#8221; &#8220;plan,&#8221; &#8220;positioned,&#8221; &#8220;potential,&#8221; &#8220;predict,&#8221; &#8220;seek,&#8221; &#8220;should,&#8221; &#8220;suggest,&#8221; &#8220;target,&#8221; &#8220;on track,&#8221; &#8220;will,&#8221; &#8220;would&#8221; and other similar expressions that are predictions of or indicate future events and future trends, or the negative of these terms or other comparable terminology. To the extent that statements contained in this press release are not descriptions of historical facts, they are forward-looking statements reflecting the current beliefs and expectations of management, including but not limited to statements regarding the anticipated potential benefits of the purchase agreement, such as the anticipated development and commercial milestone payments, which are dependent, in part, on the efforts of Nestl&#233; Health Science to continue the development and commercialization of CDX-7108. You should not place undue reliance on these forward-looking statements because they involve known and unknown risks, uncertainties and other factors that are, in some cases, beyond Codexis&#8217; control and that could materially affect actual results. Factors that could materially affect actual results include, among others&#58; Codexis&#8217; dependence on its licensees and collaborators&#59; if any of its collaborators terminate their development programs under their respective license agreements with Codexis&#59; Codexis may need additional capital in the future in order to expand its business&#59; if Codexis is unable to successfully develop new technology such as its ECO Synthesis</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7.15pt;font-weight:400;line-height:120%;position:relative;top:-3.85pt;vertical-align:baseline">TM</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> platform&#59; Codexis&#8217; dependence on a limited number of products and customers, and potential adverse effects to Codexis&#8217; business if its customers&#8217; products are not received well in the markets&#59; if Codexis is unable to develop and commercialize new products for its target markets&#59; if competitors and potential competitors who have greater resources and experience than Codexis develop products and technologies that make Codexis&#8217; products and technologies obsolete&#59; if Codexis is unable to accurately forecast financial and operational performance&#59; and market and economic conditions may negatively impact Codexis&#8217; business, financial condition and share price. Additional information about factors that could materially affect actual results can be found in Codexis&#8217; Annual Report on Form 10-K filed with the Securities and Exchange Commission (&#8220;SEC&#8221;) on February 27, 2023, and in Codexis&#8217; Quarterly Report on Form 10-Q filed with the SEC on November 3, 2023, including under the caption &#8220;Risk Factors,&#8221; and in Codexis&#8217; other periodic reports filed with the SEC. Codexis expressly disclaims any intent or obligation to update these forward-looking statements, except as required by law.</font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">For More Information</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Investor Contact</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Carrie McKim  </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(336) 608-9706 </font></div><div style="margin-bottom:12pt"><font style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">ir&#64;codexis.com</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Media Contact</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Lauren Musto  </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(781) 572-1147 </font></div><div style="margin-bottom:12pt"><font style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">media&#64;codexis.com</font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#6d6d6d;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Page &#124; 2</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_182"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:112%">Exhibit H</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:112%">A&#38;P Acquisition Agreement</font></div><div style="text-align:center"><font><br></font></div><div><font><br></font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">AMYLASE and PROTEASE</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ACQUISITION AGREEMENT</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">between</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">SOCI&#201;T&#201; DES PRODUITS NESTL&#201; S.A.</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">and</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CODEXIS, INC.</font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_242"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">TABLE OF CONTENTS</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE I PURCHASE AND SALE</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">   </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Purchase and Sale of Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Excluded Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.03</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Assumed Liabilities.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.04</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">3</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Milestone</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         3</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.06</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Reports and Reporting</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">4</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Allocation of Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">4</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.08</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Non-Assignable Assets.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> 4</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.09</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Withholding Taxes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">5</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 1.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Exploitation of Products</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">5</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE II CLOSING</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> 5</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 2.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> 5</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 2.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Closing Deliverables.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">    5</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 2.03</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Delivery of Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      6</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE III REPRESENTATIONS AND WARRANTIES OF SELLER</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           6</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Organization and Authority of Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     6</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No Conflicts or Consents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">          6</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.03</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Intellectual Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">7</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.04</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Assigned Contracts.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      7</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Title to Inventory</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">          7</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.06</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Legal Proceedings&#59; Governmental Orders.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">8</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Brokers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> 8</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 3.08</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No Other Representations and Warranties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">          8</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE IV REPRESENTATIONS AND WARRANTIES OF BUYER</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> 8</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Organization and Authority of Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     8</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No Conflicts&#59; Consents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.03</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Solvency&#59; Sufficiency of Funds</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.04</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Legal Proceedings</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">        9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Brokers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> 9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.06</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Independent Investigation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 4.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Other Representations and Warranties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">   9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE V COVENANTS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     9</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Confidentiality.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">10</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Public Announcements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">11</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.03</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Exclusivity.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">11</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.04</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Patent Prosecution and Maintenance.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">12</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Patent Enforcement.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">12</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.06</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Bulk Sales Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">VAT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">    </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.08</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Further Assurances</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.09</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Termination of application of Certain Surviving Existing Agreements to the Purchased Assets and A&#38;P Project Enzymes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">License to Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">14</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 5.11</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">    </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE VI INDEMNIFICATION</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Survival</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Indemnification by Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">          </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.03</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Indemnification by Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.04</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Certain Limitations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Indemnification Procedures</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">16</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.06</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Tax Treatment of Indemnification Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Exclusive Remedies</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 6.08</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Right to Set-Off.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE VII TERM AND TERMINATION</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">    </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 7.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Term</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">    </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">ARTICLE VIII DISPUTE RESOLUTION</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">18</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 8.01</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Elevation of Issues for Resolution</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">18</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Section 8.02     Arbitration       18</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">ARTICLE IX MISCELLANEOUS        19</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Section 9.01     Definitions       19</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Section 9.02     Construction.    19</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Section 9.03     Expenses          20</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.04</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Severability</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">20</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Notices</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">20</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.06</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Assignment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">      </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Waivers, Modifications, and Amendments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.08</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Choice of Law</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.09</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Injunctive Relief</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">           </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Relationship of the Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.11</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Entire Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">         </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">23</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.12</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Cooperation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">23</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.13</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Counterparts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">    </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">23</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Section 9.14</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">     </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Non-Recourse</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">23</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_251"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">AMYLASE AND PROTEASE ACQUISITION AGREEMENT</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Amylase and Protease Acquisition Agreement (this &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">dated as of ____________ (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Effective Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">is entered into between CODEXIS, INC., a corporation incorporated and existing under the laws of the State of Delaware, having an office located at 200 Penobscot Drive, Redwood City, CA 94063, USA </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Codexis</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and Soci&#233;t&#233; des Produits Nestl&#233; S.A., a </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">soci&#233;t&#233; anonyme </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">organized and existing under the laws of Switzerland, having an office located at 55 Avenue Nestl&#233;, 1800 Vevey, Switzerland </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">NHSc</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">RECITALS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer (as successor in interest to Nestec Ltd.), and Seller are parties to that certain Strategic Collaboration Agreement, dated as of October 12, 2017 (as amended through the date hereof, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Strategic Collaboration Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">SCA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to which the parties agreed to collaborate to discover enzymes as candidates for use as healthcare products and to perform initial preclinical evaluation of the efficacy of such enzymes&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer and Seller are parties to that certain Development Agreement, dated as of January 1, 2020 (as amended through the date hereof, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Development Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and, together with the Strategic Collaboration Agreement and including, if either or both such agreements expire or are otherwise terminated, all terms, conditions, and obligations in each that survive such expiration or other termination, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Existing Agreements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to which the parties agreed to conduct certain development activities with respect to certain enzymes discovered pursuant to the Strategic Collaboration Agreement&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer and Seller are parties to that certain Acquisition Agreement, dated as of December &#91;x&#93;, 2023 (as amended through the date hereof, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Lipase Acquisition Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to which Buyer has an option to acquire the Purchased Assets and assumed the Assumed Liabilities (as each term is defined below) on the terms and conditions set forth therein and in this Agreement&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">the parties desire for Buyer to have the right to further develop and commercialize those certain lipase enzymes that were discovered under the Strategic Collaboration Agreement and that were further developed pursuant to the Development Agreement, including that certain amylase enzyme currently identified as &#91;***&#93;,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">that certain protease enzyme currently identified as &#91;***&#93; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A&#38;P Project Enzymes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pursuant to the terms of the Existing Agreements, each party has agreed not to Develop or Commercialize the A&#38;P Project Enzymes, including the use of any Jointly Owned Invention in connection therewith, unless agreed by the parties in a separate written agreement&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">WHEREAS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller wishes to sell and assign to Buyer certain identified Patent Rights, Contracts, and other assets related to the A&#38;P Project Enzymes, and Buyer wishes to purchase and assume from Seller such assets and certain corresponding liabilities, and Seller otherwise wishes to authorize Buyer&#8217;s Development and Commercialization of, the A&#38;P Project Enzyme, in each case, subject to the terms and conditions set forth herein&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">NOW</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> THEREFORE</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in consideration of the mutual covenants and agreements hereinafter set forth and for other good and valuable consideration, the receipt and sufficiency of which are hereby acknowledged, the parties hereto agree as follows&#58;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> ARTICLE I</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">PURCHASE AND SALE</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.01&#160;&#160;&#160;&#160;Purchase and Sale of Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the terms and conditions set forth herein, at the Closing, Seller shall, and shall cause its Affiliates to, sell, convey, assign, transfer, and deliver to Buyer (or its designated Affiliate), and Buyer shall purchase from Seller and its Affiliates, all of Seller&#8217;s (or its applicable Affiliate&#8217;s) right, title, and interest in, to, and under all of the following (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchased Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;the patents and patent applications set forth on Section 1.01(a) of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchased Patents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and all of Seller&#8217;s and its Affiliates interest in, to and under the Purchased Patents, including the right to sue for past infringement&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;all Contracts set forth on Section 1.01(b) of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Assigned Contracts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and the rights to assert claims and take other actions in respect of breaches or other violations of the foregoing occurring after the Closing&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;the inventory and other materials set forth on Section 1.01(c) of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Inventory</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;all Jointly Owned Inventions relating &#91;***&#93; to the A&#38;P Project Enzymes (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchased Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;all Regulatory Documentation owned &#91;***&#93; by Seller and its Affiliates &#91;***&#93; relating to the other Purchased Assets (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Acquired Regulatory Documentation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;all other Books and Records owned &#91;***&#93; by Seller and its Affiliates relating &#91;***&#93; to the other Purchased Assets, &#91;***&#93; (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Acquired Books and Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For clarity, Acquired Books and Records shall specifically exclude all Tax Returns and related workpapers including or relating to the Purchased Assets. Books and Records that do not relate &#91;***&#93; to the other Purchased Assets may be redacted to exclude information that does not relate to the other Purchased Assets.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.02&#160;&#160;&#160;&#160;Excluded Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Other than the Purchased Assets, Buyer expressly understands and agrees that it is not purchasing or acquiring, and Seller is not selling or assigning, any other assets or properties of Seller or its Affiliates, and all such other assets and properties shall be excluded from the Purchased Assets and remain the sole and exclusive property of Seller and&#47;or its Affiliates (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Excluded Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Excluded Assets include, but are not limited to, the assets, properties and rights specifically set forth on Section 1.02 of the Disclosure Schedules.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.03&#160;&#160;&#160;&#160;Assumed Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. </font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Subject to the terms and conditions set forth herein, including Section 1.03(b), at the Closing, Buyer shall assume and agree to pay, perform, and discharge when due any and all Liabilities of Seller arising out, of or relating to, ownership of the Purchased Assets or operation of the Business on or after the Closing (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Assumed Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">including, but not limited to, the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;all Liabilities arising under the Assigned Contracts from and after the Closing Date (but, for clarity, this does not limit any Liabilities under any Assigned </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Contract (or portion thereof) that is or was a Liability of Buyer or any of its Affiliates prior to the Closing Date pursuant to any Existing Agreement or other agreement between the parties)&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;all Liabilities for (A) Taxes relating to the Purchased Assets for any taxable period (or any portion thereof) beginning on or after the Closing Date (&#91;***&#93;) and (B) Taxes for which Buyer is liable pursuant to Section 5.07.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Buyer shall not assume and shall not be responsible to pay, perform or discharge any Liabilities of Seller or its Affiliates other than the Assumed Liabilities (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Excluded Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">which Excluded Liabilities shall include, but not necessarily be limited to&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;any Liabilities arising out of or relating to Seller&#8217;s ownership of the Purchased Assets prior to the Closing Date or attributable to any breach of any Assigned Contract on the part of Seller or its Affiliate prior to the Closing Date (but excluding all Liabilities under any Assigned Contract (or portion thereof) that is or was a Liability of Buyer or any of its Affiliates pursuant to any Existing Agreement or other agreement between the parties hereto)&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;any Liabilities &#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;any Liabilities &#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;any Liabilities arising out of or relating to the Excluded Assets&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;any Liabilities (A) for Taxes relating to the Purchased Assets for any taxable period (or any portion thereof) ending on or prior to the Closing Date&#59; (B) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.04&#160;&#160;&#160;&#160;Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The aggregate purchase price for the Purchased Assets shall be the sum of (a) $2,500,000 (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Initial Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">plus </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b) the amount of any Milestone Payment due and payable under Section 1.05 (such sum, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.05</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Milestone. Buyer shall pay to Seller $2,500,000 as a one-time, non-refundable, non-creditable milestone payment (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Milestone Payment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) upon and subject to the occurrence of the earliest to occur of the following events (the occurrence of the earliest of such event, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Milestone</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For the avoidance of doubt, the Milestone Payment set forth above will be payable only one time, upon the first occurrence of the Milestone, and no additional payment will be due in the event of any repeated occurrence of the Milestone, including in relation to more than one Product. Under no circumstances shall Buyer be obligated to pay Seller more than $2,500,000 in the aggregate pursuant to this Section 1.05.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">3</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer shall provide Seller with &#91;***&#93; notice of the achievement of the Milestone. Following the receipt of such notice of achievement of the Milestone, Seller shall issue an invoice to Buyer for the Milestone Payment. The Milestone Payment, when payable, shall be due by Buyer within &#91;***&#93; following Buyer&#8217;s receipt of an invoice therefor. Buyer shall pay the Milestone Payment by wire transfer of immediately available funds to Seller in accordance with the wire transfer instructions provided by Seller in writing prior to the due date for such payment.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.06&#160;&#160;&#160;&#160;Reports and Reporting</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No later than &#91;***&#93; after the expiration of each calendar year but only prior to the occurrence of the Milestone, Buyer shall furnish Seller with a written report (each, an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Annual Report</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">setting forth &#91;***&#93; its, its Affiliates&#8217; and its Licensees&#8217; progress and efforts towards the achievement of the Milestone. &#91;***&#93;. Upon Seller&#8217;s reasonable advance notice (which in no event shall be less than &#91;***&#93;), Buyer shall make its relevant management personnel reasonably available to Seller&#8217;s personnel to discuss in greater detail each Annual Report, the information therein, and related questions Seller may have&#59; provided that such access shall be during normal local business hours &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.07&#160;&#160;&#160;&#160;Allocation of Purchase Price</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The Purchase Price and the Assumed Liabilities (and any other amounts, if any, properly included for Tax purposes) shall be allocated in accordance with Section 1060 of the Internal Revenue Code of 1986, as amended (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Code</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">among the Purchased Assets for all U.S. federal income tax purposes as shown on the allocation schedule set forth on Section 1.07 of the Disclosure Schedules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Allocation Schedule</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Neither the parties nor any of their respective Affiliates shall take any position on any Tax Return or in any Tax contest, proceeding, audit, appeals or litigation which is inconsistent with the agreed upon allocation unless otherwise required by a final determination within the meaning of Section 1313(a) of the Code (or any similar provision of state, local or non-U.S. Tax Law).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.08&#160;&#160;&#160;&#160;Non-Assignable Assets</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Notwithstanding anything to the contrary in this Agreement, this Agreement shall not constitute a sale, assignment, or transfer of any Purchased Asset if such sale, assignment, or transfer&#58; (i) violates applicable Law&#59; or (ii) without the consent or waiver of a Person who is not a party to this Agreement or an Affiliate of a party to this Agreement would result in a breach or violation of an Assigned Contract, result in the termination, cancellation, or revocation of an Assigned Contract, or result in the creation of any lien on any Purchased Asset, and such consent or waiver has not been obtained prior to the Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Following the Closing, Seller and Buyer shall use &#91;***&#93; efforts, and shall cooperate with each other, to obtain any such required consent or waiver, or any release, substitution, or amendment required to assign all Liabilities under any and all Assigned Contracts or other Liabilities that constitute Assumed Liabilities&#59; &#91;***&#93;. Once such consent, waiver, release, substitution, or amendment is obtained, Seller shall promptly sell, assign, and transfer to Buyer the relevant Purchased Asset to which such consent, waiver, release, substitution, or amendment relates &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;To the extent that any Purchased Asset or Assumed Liability cannot be transferred to Buyer pursuant to this Section 1.08, Buyer and Seller shall use &#91;***&#93; efforts to enter into such arrangements (such as subleasing, sublicensing, or subcontracting) to provide to the parties the economic and, to the extent permitted under applicable Law, operational equivalent of the transfer of such Purchased Asset or Assumed Liability to Buyer as of the Closing. Buyer shall, to the extent it receives the benefits of the applicable Purchased Asset, as agent or subcontractor for Seller, pay, perform, and discharge fully the liabilities and obligations related to such Purchased Asset or Assumed Liability from </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">4</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and after the Closing Date. To the extent permitted under applicable Law, Seller shall, at Buyer&#8217;s expense, hold in trust for and pay to Buyer promptly upon receipt thereof, all income, proceeds, and other monies received by Seller from and after the Closing Date, to the extent related to such Purchased Asset in connection with the arrangements under this Section 1.08. &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.09&#160;&#160;&#160;&#160;Withholding Taxes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;. &#91;***&#93;. The parties shall use &#91;***&#93; efforts to cooperate to mitigate or eliminate any such withholding. To the extent that amounts are so withheld and paid over to the appropriate Tax authority by Buyer, such withheld amounts shall be treated for all purposes of this Agreement as having been paid to the person in respect of which such deduction and withholding was made.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 1.10&#160;&#160;&#160;&#160;Exploitation of Products</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller agrees and acknowledges that &#91;***&#93;. Seller acknowledges and agrees that (a) &#91;***&#93;, (b) &#91;***&#93;, and (c) the parties solely intend the express provisions of this Agreement (and, for the avoidance of doubt, not the Existing Agreements) to govern their contractual relationship with respect to the Purchased Assets and the Products. &#91;***&#93;.</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> ARTICLE II</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CLOSING</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 2.01&#160;&#160;&#160;&#160;Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the terms and conditions of this Agreement, the consummation of the transactions contemplated by this Agreement (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Closing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">shall take place remotely by exchange of documents and signatures (or their electronic counterparts), at &#91;8&#58;00&#93; a.m. PST, simultaneously with the execution of this Agreement, or at such other time or place or in such other manner as Seller and Buyer may mutually agree upon in writing. The date on which the Closing is to occur is herein referred to as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Closing Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.&#8221;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 2.02&#160;&#160;&#160;&#160;Closing Deliverables</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. </font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;At the Closing, Seller shall deliver to Buyer the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;a bill of sale in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit C</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> attached to the Lipase Acquisition Agreement, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">mutatis mutandis </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Bill of Sale</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) duly executed by Seller, transferring the Inventory, Acquired Books and Records, and any other tangible Purchased Assets to Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;an assignment and assumption agreement in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit D </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">to the Lipase Acquisition Agreement, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">mutatis mutandis</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Assignment and Assumption Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) duly executed by Seller, effecting the assignment to and assumption by Buyer of the Purchased Assets and the Assumed Liabilities&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;an assignment in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit E</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> to the Lipase Acquisition Agreement, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">mutatis mutandis </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Patent Assignment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly executed by Seller, transferring all of Seller&#8217;s right, title, and interest in and to the Purchased Patents to Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;a license agreement in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit F </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">to the Lipase Acquisition Agreement, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">mutatis mutandis </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(the &#8220;Expression System License Agreement&#8221; and, collectively with this Agreement, the Assignment and Assumption Agreement, and the Patent Assignment, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Transaction Documents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly executed by Seller&#59; and</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">5</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;a properly completed IRS Form W-9.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;At the Closing, Buyer shall deliver to Seller the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;the Assignment and Assumption Agreement duly executed by Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;the Patent Assignment duly executed by Buyer&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;the Expression System License Agreement duly executed by Buyer&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;the Initial Purchase Price by wire transfer of immediately available funds to Seller in accordance with the wire transfer instructions provided by Seller to Buyer in writing &#91;***&#93; prior to Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 2.03&#160;&#160;&#160;&#160;Delivery of Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Promptly and in any event within &#91;***&#93; after the Closing Date, Seller shall deliver to Buyer copies of the Acquired Regulatory Documentation and the Acquired Books and Records via virtual data room or other file-share platform reasonably acceptable to Buyer (or such other method as mutually agreed by the parties), provided that Seller shall have no obligation to deliver to Buyer any such Acquired Regulatory Documentation or Acquired Books and Records that are already in Buyer&#8217;s or its Affiliates possession or that are publicly available.</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> ARTICLE III</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">REPRESENTATIONS AND WARRANTIES OF SELLER</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except as set forth in the Disclosure Schedules, Seller represents and warrants to Buyer that the statements contained in this ARTICLE III are true and correct as of the date hereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.01&#160;&#160;&#160;&#160;Organization and Authority of Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller is a corporation duly organized, validly existing, and in good standing under the Laws of the State of Delaware. Seller has all necessary corporate power and authority to enter into this Agreement and the other Transaction Documents to which Seller is a party, to carry out its obligations hereunder and thereunder, and to consummate the transactions contemplated hereby and thereby. The execution and delivery by Seller of this Agreement and any other Transaction Document to which Seller is a party, the performance by Seller of its obligations hereunder and thereunder, and the consummation by Seller of the transactions contemplated hereby and thereby have been duly authorized by all requisite corporate action on the part of Seller. This Agreement and the Transaction Documents constitute legal, valid, and binding obligations of Seller enforceable against Seller in accordance with their respective terms, except as such enforceability may be limited by bankruptcy, insolvency, reorganization, moratorium, or similar Laws affecting creditors&#8217; rights generally and by general principles of equity (regardless of whether enforcement is sought in a proceeding at law or in equity).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.02&#160;&#160;&#160;&#160;No Conflicts or Consents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The execution, delivery, and performance by Seller of this Agreement and the other Transaction Documents to which it is a party, and the consummation of the transactions contemplated hereby and thereby, do not and will not&#58; (a) violate or breach any provision of the certificate of incorporation or by-laws of Seller&#59; (b) violate or breach any provision of any Law or Governmental Order applicable to Seller or the Purchased Assets&#59; (c) except as set forth in Section 3.02 of the Disclosure Schedules, require the consent, notice, or other action by any Person under, conflict with, violate or breach, constitute a default under, or result in the acceleration of any Assigned Contract&#59; or (d) except as set forth in Section 3.02 of the Disclosure Schedules, require any consent, permit, Governmental Order, filing, or notice from, with, or to any Governmental Authority&#59; except, in the cases </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">6</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">of clauses (b) and (c), where the violation, breach, conflict, default, acceleration, or failure to obtain consent or give notice would not have a Material Adverse Effect and, in the case of clause (d), where such consent, permit, Governmental Order, filing, or notice which, in the aggregate, would not have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.03&#160;&#160;&#160;&#160;Intellectual Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Section 3.03 of the Disclosure Schedules contains a current and complete list of all Purchased Patents, specifying as to each, as applicable&#58; the title&#59; the jurisdiction by or in which it has been issued, registered, or filed&#59; the patent, registration or application serial number&#59; and the issue, registration, or filing date. Except as set forth on Section 3.03 of the Disclosure Schedules, the Purchased Patents constitute all currently-existing Patents owned by Seller that &#91;***&#93; for the Manufacturing or use of &#91;***&#93; as it currently exists, other than any Patents covered by the Expression System License Agreement. Except for the Purchased Patents and any Patents covered by the Expression System License Agreement, Seller Controls no Patents that &#91;***&#93; for the Manufacturing or use of, &#91;***&#93; as each currently exists. Other than with respect to any ownership right, title, or interest of Buyer or any of its Affiliates, Seller owns all right, title, and interest in and to the Purchased Patents and Seller has not granted any license or other right under any of the Purchased Patents to any Third Party other than to service providers under the Assigned Contracts. All assignments and other instruments necessary to establish and record Seller&#8217;s ownership interest in the Purchased Patents have been executed, delivered, and filed with the relevant Governmental Authorities and authorized registrars. All required filings and fees related to the Purchased Patents due and payable prior to the Effective Date have been submitted with and paid to the relevant Governmental Authorities and authorized registrars. To Seller&#8217;s Knowledge, (a) no Person is infringing any Purchased Patents, and (b) except as set forth on Section 3.03(b) of the Disclosure Schedules, there are no actual or threatened claims that (i) the currently-listed inventorship of the Purchased Patents is incorrect, (ii) &#91;***&#93; (as each is existing on the date hereof) infringes any Third Party intellectual property rights, or (iii) the use of the Codexis Expression System (as defined in the Expression System License Agreement) to manufacture any Cell Bank (as defined in the Expression System License Agreement) or &#91;***&#93; as each currently exists infringes any Third Party intellectual property rights.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.04&#160;&#160;&#160;&#160;Assigned Contracts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Correct and complete copies of each Assigned Contract, have been made available to Buyer and its Representatives, including all amendments and modifications and side agreements relating thereto.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Except as set forth on Section 3.04 of the Disclosure Schedules&#58; (i) each of the Assigned Contracts represents a legal, valid and binding obligation of Seller and, to Sellers&#8217; Knowledge, each other party thereto, and is enforceable against Seller and, to Seller&#8217;s Knowledge, each other party thereto, in accordance with its terms, and is in full force and effect, and (ii) none of Seller or, to Seller&#8217;s Knowledge, any other party thereto is in material breach of, or material default under, or has provided or received any notice of any intention to terminate, any of the Assigned Contracts, or has committed or failed to perform any act which, with or without notice, lapse of time or both would constitute a material breach of or material default under any of the Assigned Contracts.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.05&#160;&#160;&#160;&#160;Title to Inventory</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Seller has good and valid title to all Inventory included in the Purchased Assets, free and clear of any lien, charge, claim, pledge, security interest, or other similar encumbrance, except for&#58; (a) liens for Taxes not yet due and payable or being contested in good faith by appropriate procedures&#59; (b) mechanics&#8217;, carriers&#8217;, workmen&#8217;s, repairmen&#8217;s, warehouse, or other like liens </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">7</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">arising or incurred in the ordinary course of business&#59; and (c) liens arising under original purchase price conditional sales contracts with third parties entered into in the ordinary course of business.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.06&#160;&#160;&#160;&#160;Legal Proceedings&#59; Governmental Orders</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. </font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Except as set forth in Section 3.06(a) of the Disclosure Schedules, there are no material claims, actions, suits, investigations, or other legal proceedings (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Actions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">pending or, to Seller&#8217;s Knowledge, threatened against or by Seller or its Affiliates relating to or affecting the Purchased Assets or the Assumed Liabilities.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Except as set forth in Section 3.06(b) of the Disclosure Schedules, there are no outstanding Governmental Orders against, relating to, or affecting the Purchased Assets, which would have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.07&#160;&#160;&#160;&#160;Brokers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">No broker, finder, or investment banker is entitled to any brokerage, finder&#8217;s, or other fee or commission in connection with the transactions contemplated by this Agreement or any other Transaction Document based upon arrangements made by or on behalf of Seller or any of its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 3.08&#160;&#160;&#160;&#160;No Other Representations and Warranties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Except for the representations and warranties contained in this ARTICLE III (including the related portions of the Disclosure Schedules), neither Seller nor any other Person has made or makes any other express or implied representation or warranty, either written or oral, on behalf of Seller, including any representation or warranty as to the accuracy or completeness of any information, documents, or material regarding the Products and the Purchased Assets furnished or made available to Buyer and its Representatives in any form (including any information, documents, or material delivered or made available to Buyer on behalf of Seller for purposes of this Agreement), or as to the future revenue, profitability, or success of the Products, or any representation or warranty arising from statute or otherwise in Law.</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE IV</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">REPRESENTATIONS AND WARRANTIES OF BUYER</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Except as set forth in the Disclosure Schedules, Buyer represents and warrants to Seller that the statements contained in this ARTICLE IV are true and correct as of the date hereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.01&#160;&#160;&#160;&#160;Organization and Authority of Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Buyer is a </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">soci&#233;t&#233; anonyme </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">duly organized, validly existing and in good standing under the Laws of Switzerland. Buyer has all necessary corporate power and authority to enter into this Agreement and the other Transaction Documents to which Buyer is a party, to carry out its obligations hereunder and thereunder, and to consummate the transactions contemplated hereby and thereby. The execution and delivery by Buyer of this Agreement and any other Transaction Document to which Buyer is a party, the performance by Buyer of its obligations hereunder and thereunder, and the consummation by Buyer of the transactions contemplated hereby and thereby have been duly authorized by all requisite corporate action on the part of Buyer. This Agreement and the Transaction Documents constitute legal, valid, and binding obligations of Buyer enforceable against Buyer in accordance with their respective terms, except as such enforceability may be limited by bankruptcy, insolvency, reorganization, moratorium, or similar Laws affecting creditors&#8217; rights generally and by general principles of equity (regardless of whether enforcement is sought in a proceeding at law or in equity).</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">8</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.02&#160;&#160;&#160;&#160;No Conflicts&#59; Consents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The execution, delivery, and performance by Buyer of this Agreement and the other Transaction Documents to which it is a party, and the consummation of the transactions contemplated hereby and thereby, do not and will not&#58; (a) violate or breach any provision of the certificate of incorporation or by-laws of Buyer&#59; (b) violate or breach any provision of any Law or Governmental Order applicable to Buyer&#59; (c) require the consent, notice or other action by any Person under, conflict with, violate or breach, constitute a default under, or result in the acceleration of any agreement to which Buyer is a party&#59; or (d) require any consent, permit, Governmental Order, filing, or notice from, with, or to any Governmental Authority by or with respect to Buyer.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.03&#160;&#160;&#160;&#160;Solvency&#59; Sufficiency of Funds</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Immediately after giving effect to the transactions contemplated hereby, Buyer shall be solvent and shall&#58; (a) be able to pay its debts as they become due&#59; (b) own property that has a fair saleable value greater than the amounts required to pay its debts (including a reasonable estimate of the amount of all Liabilities)&#59; and (c) have adequate capital to carry on its business. No transfer of property is being made and no obligation is being incurred in connection with the transactions contemplated hereby with the intent, on the part of Buyer, to hinder, delay, or defraud either present or future creditors of Buyer or Seller. In connection with the transactions contemplated hereby, Buyer has not incurred, nor plans to incur, debts beyond its ability to pay as they become absolute and matured.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.04&#160;&#160;&#160;&#160;Legal Proceedings</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. There are no Actions pending or, to Buyer&#8217;s knowledge, threatened against or by Buyer that challenge or seek to prevent, enjoin, or otherwise delay the transactions contemplated by this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.05&#160;&#160;&#160;&#160;Brokers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. No broker, finder, or investment banker is entitled to any brokerage, finder&#8217;s, or other fee or commission in connection with the transactions contemplated by this Agreement or any other Transaction Document based upon arrangements made by or on behalf of Buyer or any of its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.06&#160;&#160;&#160;&#160;Independent Investigation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Buyer has conducted its own independent investigation, review, and analysis of the Products and the Purchased Assets, and acknowledges that it has been provided adequate access to the personnel, properties, assets, premises, books and records, and other documents and data of Seller for such purpose. Buyer acknowledges and agrees that&#58; (a) in making its decision to enter into this Agreement and to consummate the transactions contemplated hereby, Buyer has relied solely upon its own investigation and the express representations and warranties of Seller set forth in ARTICLE III of this Agreement (including related portions of the Disclosure Schedules)&#59; and (b) neither Seller nor any other Person has made any representation or warranty as to Seller, the Products, the Purchased Assets, or this Agreement, except as expressly set forth in ARTICLE III of this Agreement (including the related portions of the Disclosure Schedules).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 4.07&#160;&#160;&#160;&#160;Other Representations and Warranties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Except for the representations and warranties contained in this ARTICLE IV, neither Buyer nor any other Person has made or makes any other express or implied representation or warranty, either written or oral, on behalf of Buyer, including any representation or warranty as to the accuracy or completeness of any information, documents, or material furnished or made available to Seller and its Representatives in any form (including any information, documents, or material delivered or made available to Seller on behalf of Buyer for purposes of this Agreement) or any representation or warranty arising from statute or otherwise in Law.</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE V</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">COVENANTS</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">9</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.01&#160;&#160;&#160;&#160;Confidentiality</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Nondisclosure</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Each party agrees that, during the Term and thereafter, a party (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Receiving Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">receiving Confidential Information of the other party (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Disclosing Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(or that has received any such Confidential Information from the other party prior to the Effective Date) shall (i) maintain in confidence such Confidential Information using not less than the efforts such Receiving Party uses to maintain in confidence its own proprietary industrial information of similar kind and value, which shall be no less than a reasonable degree of care, (ii) not disclose such Confidential Information to any Third Party without the prior written consent of the Disclosing Party, except for disclosures expressly permitted below, and (iii) not use such Confidential Information for any purpose except those permitted by this Agreement. Each Receiving Party will promptly notify the Disclosing Party upon gaining knowledge of any material use or disclosure of Confidential Information of the other party not permitted pursuant to this Section 5.01. &#91;***&#93;. For the further avoidance of doubt, all Licensed Know-How is and shall be Confidential Information of Seller. The obligations in this Section 5.01 shall not apply with respect to any portion of the Confidential Information that the Receiving Party may receive to the extent that such information&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;is publicly disclosed by the Disclosing Party, either before or after it is disclosed to the Receiving Party hereunder&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;was known to the Receiving Party or any of its Affiliates, without any obligation to keep it confidential or any restriction on its use, prior to disclosure by the Disclosing Party, and such prior knowledge can be properly documented by the Receiving Party&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iii)&#160;&#160;&#160;&#160;is subsequently disclosed to the Receiving Party or any of its Affiliates by a Third Party lawfully in possession thereof and without any obligation to keep it confidential or any restriction on its use&#59;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(iv)&#160;&#160;&#160;&#160;is published by a Third Party or otherwise becomes publicly available or enters the public domain, either before or after it is disclosed to the Receiving Party without the Receiving Party&#8217;s breach of the terms of this Agreement&#59; or</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(v)&#160;&#160;&#160;&#160;is independently developed by employees or contractors of the Receiving Party or any of its Affiliates without the aid, application, or use of Confidential Information of the Disclosing Party, and such independent development can be properly documented by the Receiving Party.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Authorized Disclosure</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Receiving Party may disclose Confidential Information belonging to the Disclosing Party only to the extent such disclosure is reasonably necessary in the following instances&#58;</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(i)&#160;&#160;&#160;&#160;complying with applicable Laws and regulations (including the rules and regulations of the Securities and Exchange Commission or any national securities exchange) and with judicial or administrative process, if in the reasonable opinion of the Receiving Party&#8217;s counsel, such disclosure is so required for such compliance and the Receiving Party discloses no more than required in its reasonable judgment, and further provided that with respect to judicially or administratively required disclosures, the Receiving Party (to the extent legally permissible) shall promptly inform the other party </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">10</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">of such required disclosure and use &#91;***&#93; efforts to provide the other party an opportunity to challenge or limit the disclosure obligations&#59; and</font></div><div style="margin-bottom:12pt;padding-left:72pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(ii)&#160;&#160;&#160;&#160;disclosure to its Affiliates, and to its bona fide actual or potential (A) permitted Licensees, (B) investment bankers, investors, lenders, or acquirers, or permitted assignees under Section 9.06, in each case, solely for diligence purposes, and (C) each of the parties&#8217; respective Representatives, in each case of (A), (B), and (C), each of whom prior to disclosure must be bound by obligations of confidentiality and non-use no less restrictive than the obligations set forth in this Section 5.01&#59; provided, however, that the Receiving Party shall remain responsible for any failure by any Person who receives Confidential Information pursuant to this Section 5.01(b)(ii) to treat such Confidential Information as required under this Section 5.01.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If and whenever any Confidential Information is disclosed in accordance with this Section 5.01(b), such disclosure shall not cause any such information to cease to be Confidential Information, except to the extent that such disclosure results in a public disclosure of such information (other than by breach of this Agreement).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Tax Filings</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Notwithstanding any provision of this Agreement to the contrary, each party (and their Affiliates) shall be free to disclose this Agreement, the contents hereof, and the transactions contemplated hereby to any Governmental Authority in connection with the filing of any Tax Return and in any Tax audits, assessments, or administrative or judicial proceedings or other Actions relating to Tax Returns or Taxes.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.02&#160;&#160;&#160;&#160;Public Announcements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Unless otherwise required by applicable Law, no party to this Agreement shall make any public announcements in respect of this Agreement or the transactions contemplated hereby without the prior written consent of the other party (which consent shall not be unreasonably withheld, conditioned, or delayed), and the parties shall cooperate as to the timing and contents of any such announcement. Notwithstanding the foregoing, Seller may, following the Effective Date, issue a press release regarding this Agreement and the transactions contemplated hereby containing the information and generally in the form as reasonably agreed upon by the Parties at least &#91;***&#93; prior to the Closing. The contents of any announcement or similar publicity, which has been reviewed and approved by the reviewing party (including the press release referred to in the prior sentence), can be re-released by either party without a requirement for re-approval.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.03&#160;&#160;&#160;&#160;Exclusivity</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;During the Restricted Period, Seller shall not, and shall not permit any of its Affiliates to, directly or indirectly engage in, for its own benefit or for, with, or through any other Person, &#91;***&#93;, any other company, partnership, proprietorship, enterprise, organization or business venture of any kind whatsoever engaged in &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Restricted Business</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) &#91;***&#93;. Notwithstanding the foregoing, Seller may own, directly or indirectly, solely as an investment, securities of any Person traded on any national securities exchange if Seller is not a controlling Person of, or a member of a group which controls, such Person and does not, directly or indirectly, own &#91;***&#93; or more of any class of securities of such Person. The &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Restricted Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221; shall commence on the Closing Date and shall continue until &#91;***&#93; of the Closing Date&#59; provided &#91;***&#93;.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">11</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Each party acknowledges that a breach or threatened breach by it of this Section 5.03 could give rise to irreparable harm to the other party, for which monetary damages may not be an adequate remedy, and hereby agrees that in the event of a breach or a threatened breach by such party of any such obligations, the other party shall, in addition to any and all other rights and remedies that may be available to it in respect of such breach, be entitled to seek equitable relief, including a temporary restraining order, an injunction, specific performance, and any other relief that may be available from a court of competent jurisdiction (without any requirement to post bond, which such party hereby waives).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;Each party acknowledges that the restrictions contained in this Section 5.03 are reasonable and necessary to protect the legitimate interests of the other party and constitute a material inducement to each party to enter into this Agreement and consummate the transactions contemplated by this Agreement. In the event that any covenant contained in this Section 5.03 should ever be adjudicated to exceed the time, geographic, product, or service or other limitations permitted by applicable Law in any jurisdiction, then any court is expressly empowered to reform such covenant, and such covenant shall be deemed reformed, in such jurisdiction to the maximum time, geographic, product, or service or other limitations permitted by applicable Law. The covenants contained in this Section 5.03 and each provision hereof are severable and distinct covenants and provisions. The invalidity or unenforceability of any such covenant or provision as written shall not invalidate or render unenforceable the remaining covenants or provisions hereof, and any such invalidity or unenforceability in any jurisdiction shall not invalidate or render unenforceable such covenant or provision in any other jurisdiction.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.04&#160;&#160;&#160;&#160;Patent Prosecution and Maintenance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Following the Closing Date, Buyer shall have the sole right to Prosecute all Purchased Patents and Resultant Patents, including any Patent Term Extensions or Supplementary Protection Certificates thereto, and shall be solely responsible for the cost and expense thereof. Buyer shall have the sole right to determine the strategy and material aspects of Prosecution of the Purchased Patents and Resultant Patents, including where and when applications for Purchased Patents and Resultant Patents will be filed, and claims to be included, excluded, or modified in Purchased Patents and Resultant Patents applications, or on the selection of internal or external patent counsel or patent agents to be used for filing, Prosecuting and maintaining the Purchased Patents and Resultant Patents.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Seller shall provide to Buyer all reasonable assistance requested by Buyer in connection with Prosecution under this Section 5.04, including allowing Buyer reasonable access to Seller&#8217;s and its Affiliates&#8217; files and documents and Seller&#8217;s and its Affiliates&#8217; then-current personnel and inventors who may have possession of information relevant to the Prosecution. Any such cooperation by Seller and its Affiliates with respect to the Purchased Patents and Resultant Patents or any such Prosecution shall be at Buyer&#8217;s cost and expense and Buyer shall reimburse Seller for such reasonable and documented costs and expenses of Seller and its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.05&#160;&#160;&#160;&#160;Patent Enforcement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Buyer shall have the sole right to enforce the Purchased Patents and Resultant Patents and intellectual property rights in Purchased Know-How, including for past infringement, against Third Party infringers (and enter into settlement agreements with such Third Party infringers). Any recovery obtained in any such enforcement action (or settlement thereof) shall </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">12</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">belong to Buyer. Buyer shall be responsible for all costs and expenses associated with such enforcement.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Seller shall provide to Buyer all reasonable assistance requested by Buyer in connection with any Action under this Section 5.05, including allowing Buyer reasonable access to Seller&#8217;s and its Affiliates&#8217; files and documents and Seller&#8217;s and its Affiliates&#8217; then-current personnel who may have possession of information relevant to the Action. Any such cooperation by Seller with respect to the Purchased Patents and Resultant Patents or any such Action shall be at Buyer&#8217;s cost and expense and Buyer shall reimburse Seller for such reasonable and documented costs and expenses of Seller.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.06&#160;&#160;&#160;&#160;Bulk Sales Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The parties hereby waive compliance with the provisions of any bulk sales, bulk transfer or similar Laws of any jurisdiction that may otherwise be applicable with respect to the sale of any or all of the Purchased Assets to Buyer.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.07&#160;&#160;&#160;&#160;VAT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Purchase Price is exclusive of VAT. Any party receiving a supply under this Agreement hereby covenants that it will pay any such VAT correctly charged in addition to any amounts due under this Agreement. The supplying party agrees that it will raise a Tax invoice (or equivalent document) to support the charge to VAT. Where the prevailing legislation requires a VAT reverse charge, then the receiving party covenants that it shall correctly account for VAT in respect of the services received. To the extent that any VAT is chargeable on any Purchased Assets transferred pursuant to this Agreement, Seller shall deliver to Buyer&#58; (i) a valid VAT invoice where required by applicable Law or practice and (ii) any other documentation as may be reasonably requested by Buyer to assist it to recover the VAT chargeable or payable, in each case, in such form and within such timing as may be required by Law. An amount equal to the amount of VAT chargeable or payable by Seller on the Purchased Assets transferred shall be paid in addition to the consideration provided in this Agreement, by Buyer to Seller within &#91;***&#93; of receipt of a valid VAT invoice (or where no invoice is required, within &#91;***&#93; of demand) or, if later, &#91;***&#93; before the date on which the obligation to account for VAT would have had to be discharged in order to avoid liability to interest or a charge or penalty. Seller shall account for all amounts in respect of VAT paid to it by Buyer to the appropriate Governmental Authorities in compliance with applicable Laws. Both parties shall use &#91;***&#93; efforts to avail of VAT zero-rating, reduced rating or exemption that could apply. In the event that the local competent Tax authority determines that VAT is chargeable, Buyer in the first instance shall undertake all reasonable steps to refute any such assertions by the local Tax authority. Each party shall be responsible for any Taxes due on their own account, including any penalties or interest accruing due to incorrect VAT treatment of the supplies of goods or services made by that party or any failure to correctly account for VAT on any receipt of a supply of goods or services under this Agreement, except where those penalties or interest arise as a result of the actions of the other party, in which case that party shall be liable to reimburse the value of the penalties and interest.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.08&#160;&#160;&#160;&#160;Further Assurances</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Following the Closing, each of the parties hereto shall, and shall cause their respective Affiliates to, execute and deliver such additional documents, instruments, conveyances, and assurances and take such further actions as may be reasonably required to carry out the provisions hereof and give effect to the transactions contemplated by this Agreement and the other Transaction Documents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.09&#160;&#160;&#160;&#160;Termination of application of Certain Surviving Existing Agreements to the Purchased Assets and A&#38;P Project Enzymes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Effective as of the Closing&#58;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Articles 2, 3, 8, 9, 12, 13, 14, and 15 and Sections 10.1 and 10.3 of the Development Agreement, which have survived termination as per the terms of the Development Agreement, shall no longer apply to the A&#38;P Project Enzymes, the Purchased Patents, the Resultant Patents, or the Purchased Know-How&#59; and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Articles 2, 6, 7, 8, 11, 16, and 17 and Sections 5.7, 9.5, 10.1, 12.1, 14.1, and 15.1 of the Strategic Collaboration Agreement, which have survived termination as per the terms of the Strategic Collaboration Agreement, shall no longer apply to the A&#38;P Project Enzymes, the Purchased Patents, the Resultant Patents, and the Purchased Know-How.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If there is any conflict or inconsistency between the provisions of the surviving Articles and Sections of an Existing Agreement and the provisions of any Transaction Document, then the provisions of the Transaction Documents shall prevail. For clarity, the A&#38;P Project Enzymes, the Purchased Patents, the Resultant Patents, and the Purchased Know-How, and Buyer&#8217;s corresponding interest in the A&#38;P Project Enzymes and such Purchased Patents, Resultant Patents, and Purchased Know-How under the Existing Agreements, shall cease to constitute Joint Patents or Jointly Owned Inventions under any Existing Agreement and cease to be subject to the terms of the Existing Agreements (including the provisions thereof surviving the termination thereof) and, as between the parties, the Prosecution, defense, and enforcement of the Purchased Patents, Resultant Patents, the Purchased Know-How, and Acquired Regulatory Documentation will be controlled solely by the terms of this Agreement and not the surviving Articles and Sections of any Existing Agreement. For clarity, all right, title, and interest in the Purchased Patents, including the right to sue for past infringement, shall belong solely to Buyer as of the Closing Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.10&#160;&#160;&#160;&#160;License to Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Effective as of the Closing Date and subject to the terms of this Section 5.10, Seller (on behalf of itself and its Affiliates) hereby grants to Buyer, and Buyer accepts, a non-exclusive, perpetual, irrevocable, royalty-free, worldwide, non-transferable (except as set forth below), sublicensable (solely as set forth below) license under the Licensed Know-How to Manufacture, Develop, Commercialize, and otherwise Exploit the A&#38;P Project Enzymes anywhere in the world, &#91;***&#93;. Buyer shall have no rights or license to any enhancements, improvements, or other modifications to the Licensed Know-How made by or on behalf of Seller or any of its Affiliates after the Closing Date. All use of the Licensed Know-How by or under authority of Buyer (or its successors and assigns) from and after the Closing Date shall be on an &#8220;AS IS, WHERE IS&#8221; basis, with all faults and all express and implied representations and warranties disclaimed, and at its sole risk. All rights not expressly granted by Seller and its Affiliates hereunder are reserved by Seller and its Affiliates. The license to the Licensed Know-How granted under this Section 5.10 shall be sublicensable (including through multiple tiers of sublicensees) only to (i) Affiliates (but only for so long as they remain Affiliates of Buyer), Licensees, and service providers of Buyer and (ii) any Third Party that acquires one or more of the Purchased Patents or Resultants Patents and such Third Party&#8217;s Affiliates (but only for so long as they remain Affiliates of such Third Party) and service providers, in each case, for use solely within the scope of the above license, and shall be assignable and transferable only to successors in interest to all or substantially all of the assets of Buyer relating to the Products. Buyer is liable for any acts or omissions of its Licensees, Affiliates, employees, contractors, representatives, and (direct and indirect) sublicensees that would, if an act or omission of Buyer, be a breach of this Section 5.10. The rights and licenses granted in this Section 5.10 are subject to, and limited by, any and all licenses, rights, limitations, and restrictions with respect to the Licensed Know-How previously granted to or otherwise obtained by any Third Party that are in effect as of the Closing Date. Nothing contained herein will be construed as an obligation to disclose or deliver any technical information or embodiment of any Licensed Know-How or to provide any technical assistance or other services or deliverables to Buyer or its Affiliates.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">14</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 5.11&#160;&#160;&#160;&#160;&#91;***&#93;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. &#91;***&#93;.</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE VI</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">INDEMNIFICATION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.01&#160;&#160;&#160;&#160;Survival </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the limitations and other provisions of this Agreement, the representations and warranties contained herein shall survive the Closing and shall remain in full force and effect until the date that is &#91;***&#93; from the Closing Date. None of the covenants or other agreements contained in this Agreement shall survive the expiration or other termination of the Term other than those which by their terms contemplate performance after termination (including Section 5.01 (Confidential Information)), and each such surviving covenant and agreement shall survive termination for the period contemplated by its terms. Notwithstanding the foregoing, any claims asserted in good faith with reasonable specificity (to the extent known at such time) and in writing by notice from the non-breaching party to the breaching party prior to the expiration date of the applicable survival period shall not thereafter be barred by the expiration of such survival period and such claims shall survive until finally resolved.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.02&#160;&#160;&#160;&#160;Indemnification by Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the other terms and conditions of this ARTICLE VI, from and after the Closing, Seller shall indemnify Buyer, its Affiliates, and each of their successors and assigns (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer Indemnified Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">against, and shall hold the Buyer Indemnified Parties harmless from and against, any and all losses, damages, liabilities, deficiencies, Actions, judgments, interest, awards, penalties, fines, costs, or expenses of whatever kind, including reasonable out-of-pocket expenses of investigation and reasonable attorneys&#8217; fees and expenses in connection with any action, &#91;***&#93; (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Losses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">incurred or sustained by, or imposed upon, any Buyer Indemnified Party based upon, arising out of, with respect to, or by reason of&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;any Excluded Liability.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.03&#160;&#160;&#160;&#160;Indemnification by Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Subject to the other terms and conditions of this ARTICLE VI, from and after the Closing, Buyer shall indemnify Seller, its Affiliates, and each of their successors and assigns (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller Indemnified Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">against, and shall hold the Seller Indemnified Parties harmless from and against, any and all Losses incurred or sustained by, or imposed upon, any Seller Indemnified Party based upon, arising out of, with respect to, or by reason of&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93;&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93;&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;&#91;***&#93;, any Assumed Liability or Buyer&#8217;s, its Affiliates&#8217;, and its Licensees&#8217; conduct of the Business after the Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.04&#160;&#160;&#160;&#160;Certain Limitations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The party making a claim under this ARTICLE VI is referred to as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Indemnified Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">,&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and the party against whom such claims are asserted under this ARTICLE VI is referred to as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Indemnifying Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The indemnification provided for in Section 6.02 and Section 6.03 shall be subject to the following limitations&#58;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;The Indemnifying Party shall not be liable to the Indemnified Party for indemnification under Section 6.02(a) or Section 6.03(a), as the case may be, until the aggregate amount of all Losses in respect of indemnification under Section 6.02(a) or Section 6.03(a) exceeds $&#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Deductible</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">in which event the Indemnifying Party shall only be required to pay or be liable for Losses in excess of the Deductible.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;The aggregate amount of all Losses for which a Seller shall be liable pursuant to Section 6.02(a) shall not exceed &#91;***&#93; of the Purchase Price (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Cap</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;In no event shall any Indemnifying Party be liable to any Indemnified Party for any punitive, incidental, consequential, special, or indirect damages, or for any damages based on loss of future revenue or income, loss of business reputation or opportunity relating to the breach or alleged breach of this Agreement, or diminution of value or any damages based on any type of multiple, &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;&#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;Seller shall not be liable under this ARTICLE VI for any Losses based upon or arising out of any inaccuracy in or breach of any of the representations or warranties of Seller contained in this Agreement if Buyer &#91;***&#93; knowledge of such inaccuracy or breach prior to the Closing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For purposes of calculating the Deductible or the Cap with respect to any Losses, the Deductible or Cap, as applicable, will be calculated as of the date on which such Loss is payable by the Indemnifying Party to the Indemnified Party and the Purchase Price for purposes of such calculation will be equal to the aggregate of the Initial Purchase Price and the Milestone Payment paid or payable by Buyer to Seller during the period from the Closing Date until (and including) the date on which such Loss is payable&#59; &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.05&#160;&#160;&#160;&#160;Indemnification Procedures</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Whenever any claim shall arise for indemnification hereunder, the Indemnified Party shall promptly provide written notice of such claim to the Indemnifying Party. Such notice by the Indemnified Party shall&#58; (a) describe the claim in reasonable detail&#59; (b) include copies of all material written evidence thereof&#59; and (c) indicate the estimated amount, if reasonably practicable, of the Loss that has been or may be sustained by the Indemnified Party. In connection with any claim giving rise to indemnity hereunder resulting from or arising out of any Action by a Person who is not a party to this Agreement, the Indemnifying Party, at its sole cost and expense and upon written notice to the Indemnified Party, may assume the defense of any such Action with counsel reasonably satisfactory to the Indemnified Party. The Indemnified Party shall be entitled to participate in the defense of any such Action, with its counsel and at its own cost and expense, subject to the Indemnifying Party&#8217;s right to control the defense thereof. If the Indemnifying Party does not assume the defense of any such Action, the Indemnified Party may, but shall not be obligated to, defend against such Action in such manner as it may deem appropriate, including settling such Action, after giving notice of it to the Indemnifying Party, on such terms as the Indemnified Party may deem appropriate and no action taken by the Indemnified Party in accordance with such defense and settlement shall relieve the Indemnifying Party of its indemnification obligations herein provided with respect to any damages resulting therefrom. The Indemnifying Party shall not be entitled to assume or maintain control of the defense of any such Action if (i) &#91;***&#93;, (ii) such Action seeks an injunction or equitable relief against the Indemnified Party or any of its Affiliates, or (iii) &#91;***&#93;. Seller and Buyer shall cooperate with each other in all reasonable respects in connection with the defense of any claim, including&#58; (i) making available </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">16</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(subject to the provisions of Section 5.01) records relating to such claim&#59; and (ii) furnishing, without expense (other than reimbursement of actual out-of-pocket expenses) to the defending party, management employees of the non-defending party as may be reasonably necessary for the preparation of the defense of such claim. The Indemnifying Party shall not settle any Action without the Indemnified Party&#8217;s prior written consent (which consent shall not be unreasonably withheld, conditioned, or delayed).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.06&#160;&#160;&#160;&#160;Tax Treatment of Indemnification Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">All indemnification payments made under this Agreement shall be treated by the parties as an adjustment to the Purchase Price for Tax purposes, unless otherwise required by Law.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.07</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Exclusive Remedies. Subject to ARTICLE VII, the parties acknowledge and agree that from and after the Closing their sole and exclusive remedy with respect to any and all claims (other than claims arising from intentional fraud on the part of a party hereto or its representatives in connection with the transactions contemplated by this Agreement) for any breach of any representation, warranty, covenant, agreement, or obligation set forth herein or otherwise relating to the subject matter of this Agreement shall be pursuant to the indemnification provisions set forth in this ARTICLE VI. In furtherance of the foregoing, each party hereby waives, from and after the Closing, to the fullest extent permitted under Law, any and all rights, claims, and causes of action for any breach of any representation, warranty, covenant, agreement, or obligation set forth herein or otherwise relating to the subject matter of this Agreement it may have against the other parties hereto and their Affiliates and each of their respective Representatives arising under or based upon any Law, except pursuant to the indemnification provisions set forth in this ARTICLE VI. Nothing in this Section 6.07 shall limit any Person&#8217;s right to seek and obtain any equitable relief to which such Person shall be entitled or to seek any remedy on account of any intentional fraud by any party hereto or its representatives.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 6.08&#160;&#160;&#160;&#160;Right to Set-Off</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. </font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Buyer is expressly authorized, but shall not be obligated, to set-off any Losses that the Parties have agreed in writing, or which have been finally determined in accordance with ARTICLE VIII, to be subject to indemnification by Seller hereunder (subject to the limitations set forth in Section 6.04) against the Milestone Payment or any other payments payable to Seller pursuant to this Agreement.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Neither the exercise nor the failure or delay to exercise such right to withhold or set off pursuant to this Section 6.08 will constitute an election of remedies or limit the rights and remedies of the Buyer Indemnified Parties hereunder (other than to the extent any Losses have been set off pursuant to Section 6.08(a)).</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE VII</font></div><div style="margin-bottom:12pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">TERM AND TERMINATION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 7.01&#160;&#160;&#160;&#160;Term</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement commences upon the Effective Date and will continue until the later of&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;&#91;***&#93; of the Effective Date&#59; and</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;&#91;***&#93; of the date the Milestone Payment is made to Seller (the period from the Effective Date until the expiration or other termination of this Agreement, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Term</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">17</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ARTICLE VIII</font></div><div style="margin-bottom:12pt;padding-left:18pt;padding-right:18pt;text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">DISPUTE RESOLUTION</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 8.01&#160;&#160;&#160;&#160;Elevation of Issues for Resolution</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">In the event the parties or their Representatives are unable to agree upon any dispute or disagreement between the parties arising from or in connection with this Agreement, the construction hereof, or the rights, duties or liabilities of either party hereunder (each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Dispute</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">the parties shall endeavor to resolve such Dispute in accordance with the terms of this Section 8.01. Upon the receipt of a written notice from one party to the other party of a Dispute (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Notice of Dispute</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;),</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">authorized Representatives of the parties, each with authority to settle the Dispute, shall endeavor to discuss their respective positions and use their good faith efforts to resolve the Dispute. In connection with such discussion, the parties may agree to confer with one or more mutually acceptable independent Third Party experts having expertise in the relevant subject matter and both parties shall consider in good faith the views of such Third Party(ies). If for any reason a written agreement signed by both parties is not reached within &#91;***&#93; after the Notice of Dispute, the parties shall promptly refer the Dispute to the Senior Executives (or their respective designees) for resolution, which Senior Executives will have authority to settle the Dispute and shall be charged with resolving such Dispute. If such Dispute is not resolved by the parties&#8217; Senior Executives within &#91;***&#93; after the date the Dispute is referred to them, then the Dispute shall be submitted to binding arbitration in accordance with Section 8.02.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 8.02</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Arbitration. Any Dispute that is not resolved by an executed written agreement of the parties in accordance with Section 8.01, as well as any related claims or other disputes arising out of or in connection with this Agreement including any question regarding its existence, validity, or termination, whether for breach of contract, tortious conduct, or otherwise and whether predicated on common law, statute, or otherwise (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Related Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), shall be referred to and finally resolved by arbitration under the &#91;***&#93; rules (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Rules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) in effect at the Effective Date except, as they may be modified herein or by mutual agreement of the parties, which Rules are deemed to be incorporated by reference into this Section 9.02. The number of arbitrators shall be three, unless otherwise mutually agreed by the parties, whereby, claimant and the respondent shall each nominate an arbitrator, and the third arbitrator, who shall be the president of the arbitral tribunal, shall be appointed by the two party-appointed arbitrators in consultation with the parties, in each case, in accordance with the Rules. Each arbitrator shall be experienced in the subject matter herein and the application of &#91;***&#93; law. The seat or legal place of arbitration shall be &#91;***&#93;. The language to be used in the arbitral proceedings shall be English.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;Within &#91;***&#93; after the appointment of the arbitrators pursuant to this Section 8.02, the arbitrators and the parties shall meet, and each party shall provide to the arbitrators a written summary of&#58; (i) all issues within the scope of the Dispute and any Related Claims&#59; and (ii) such party&#8217;s position on each such issue. The arbitrators shall set a date for a hearing, which shall be no later than &#91;***&#93; after the appointment of the final arbitrator pursuant to this Section 8.02, for the presentation of evidence and legal arguments concerning each of the issues identified by the parties&#59; provided, however, that the parties may jointly agree in writing to extend the foregoing deadlines, or &#91;***&#93;.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;The arbitrators shall use each of their best efforts to rule on each disputed issue within &#91;***&#93; after the completion of the hearing described in Section 8.02(a)&#59; provided, however, that the parties may jointly agree in writing to extend the foregoing deadlines, or &#91;***&#93;. No arbitrator (nor any arbitral tribunal) shall have the power to&#58; (i) award any punitive damages or other damages prohibited by Section 6.04&#59; or (ii) to decide or rule on any issue or other matter </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">18</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">that is not clearly with the scope of the Dispute and any Related Claims. The costs of the arbitration shall be &#91;***&#93; during the course of such arbitration, as assessed by &#91;***&#93;, and shall be borne as determined by the arbitrators.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;The arbitration proceedings, including the existence of the arbitration proceedings, the facts and circumstances surrounding the underlying dispute, all submissions, correspondence, and evidence relating to the arbitration proceedings, and any awards issued by the arbitrator shall be kept confidential by the parties, and the parties shall work with the arbitrators to take such steps as are reasonably necessary to preserve the confidentiality thereof, except to the extent otherwise required by applicable Law.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;Subject to Section 8.02(b), the arbitrators shall have the power to grant any remedy or relief that they deem just and equitable, including but not limited to injunctive relief, whether interim or final, and any provisional measures ordered by the arbitrator may be enforced by any court of competent jurisdiction. Notwithstanding the foregoing, nothing in this Agreement shall prevent either party from seeking any provisional&#47;preliminary relief (including injunctions, attachments, or other such orders in aid of arbitration) from any court of competent jurisdiction, and any such application to a court for provisional&#47;preliminary relief shall not be deemed incompatible with the terms of this Agreement to arbitrate or a waiver of the right to arbitrate.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;Any award rendered by the arbitrators shall be final and binding on the parties, and each party hereto waives to the fullest extent permitted by law any right it may otherwise have under the laws of any jurisdiction to any form of appeal of, or collateral attack against, such award. Judgment upon any awards rendered by the arbitrators may be entered in any court having jurisdiction thereof, including any court having jurisdiction over any of the parties or their assets.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;Notwithstanding anything in this ARTICLE VIII to the contrary, any dispute to determine the validity or infringement of a party&#8217;s intellectual property rights by the other party (but excluding, in any event, disputes relating to earnouts or other amounts payable hereunder, whether or not involving questions of infringement or validity) shall be submitted exclusively to the courts in the jurisdiction of the relevant intellectual property right, and the parties hereby consent to the jurisdiction of such courts.</font></div><div style="text-align:center;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> ARTICLE IX</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">MISCELLANEOUS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.01&#160;&#160;&#160;&#160;Definitions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The terms in this Agreement with initial letters capitalized, whether used in the singular or the plural, shall have the respective meanings either set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit A </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">attached hereto</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or in another part of this Agreement and as cross referenced in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exhibit A</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.02&#160;&#160;&#160;&#160;Construction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;The headings of each Article and Section in this Agreement have been inserted for convenience of reference only and are not intended to limit or expand on the meaning of the language contained in the particular Article or Section.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;Except where the context otherwise requires, wherever used, the singular shall include the plural, the plural the singular, the use of any gender shall be applicable to all genders and the word &#8220;or&#8221; is used in the inclusive sense (and&#47;or).</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">19</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;The term &#8220;including,&#8221; &#8220;include,&#8221; or &#8220;includes&#8221; as used herein shall mean including, without limiting the generality of any description preceding such term.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;Unless the context requires otherwise, (i) any definition of or reference to any agreement, instrument, or other document herein will be construed as referring to such agreement, instrument, or other document as from time to time amended, supplemented, or otherwise modified (subject to any restrictions on such amendments, supplements, or modifications set forth herein or therein), (ii) any reference to any applicable Laws herein will be construed as referring to such Laws as from time to time enacted, repealed, or amended, (iii) any reference herein to any person will be construed to include the person&#8217;s successors and permitted assigns, (iv) the words &#8220;herein&#8221;, &#8220;hereof,&#8221; and &#8220;hereunder&#8221;, and words of similar import, will be construed to refer to this Agreement in its entirety and not to any particular provision hereof, (v) any reference herein to the words &#8220;mutually agree&#8221; or &#8220;mutual written agreement&#8221; will not impose any obligation on either party to agree to any terms relating thereto except as such party may determine in such party&#8217;s sole discretion, (vi) all references herein to Sections or Exhibits will be construed to refer to Sections and Exhibits to this Agreement, (vii) the word &#8220;days&#8221; means calendar days unless otherwise specified, (viii) except as otherwise expressly provided herein all references to &#8220;$&#8221; or &#8220;dollars&#8221; refer to the lawful money of the U.S., and (ix) the words &#8220;copy&#8221; and &#8220;copies&#8221; and words of similar import when used in this Agreement include, to the extent available, electronic copies, files or databases containing the information, files, items, documents, or materials to which such words apply.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(e)&#160;&#160;&#160;&#160;Each party represents that it has been represented by legal counsel in connection with this Agreement and acknowledges that it has participated in the drafting hereof In interpreting and applying the terms and provisions of this Agreement, the parties agree that no presumption will apply against the party which drafted such terms and provisions. The language in this Agreement is to be construed in all cases according to its fair meaning.</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(f)&#160;&#160;&#160;&#160;Any documents will be deemed to have been made available to, and received by, Buyer if such documents were made available to Buyer &#91;***&#93; prior to the execution and delivery of this Agreement by Seller.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.03&#160;&#160;&#160;&#160;Expenses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Except as otherwise expressly provided herein (including Section 5.07 hereof), all costs and expenses incurred in connection with this Agreement and the transactions contemplated hereby shall be paid by the party incurring such costs and expenses.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.04&#160;&#160;&#160;&#160;Severability</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. If and to the extent that any provision (or any part thereof) of this Agreement is held to be invalid, illegal, or unenforceable, in any respect in any jurisdiction, the provision (or the relevant part thereof) shall be considered severed from this Agreement and shall not serve to invalidate the remainder of such provision or any other provisions hereof The parties shall make a good faith effort to replace any invalid, illegal, or unenforceable provision (or any part thereof) with a valid, legal, and enforceable provision such that the objectives contemplated by the parties when entering this Agreement may be realized.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.05&#160;&#160;&#160;&#160;Notices</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Any notice required or permitted to be given by the parties pursuant to this Agreement shall be in writing and shall be (i) delivered by hand, (ii) delivered by overnight courier with tracking capabilities, (iii) mailed postage prepaid by first class, registered, or certified mail, or (iv) transmitted by electronic mail, with confirmation copy by mail as provided in clause (iii) above, and in each case addressed to the recipient party as set forth below, unless changed by notice so given&#58;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">20</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If to Buyer&#58;</font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;&#9679;&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">c&#47;o Soci&#233;t&#233; des Produits Nestl&#233; S.A. </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">55 Avenue Nestl&#233;  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1800 Vevey  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Switzerland  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;  &#91;***&#93;              </font></div><div style="padding-left:36pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;         &#91;***&#93;            </font></div><div style="padding-left:36pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">with a copy to (which shall not constitute notice)&#58;</font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Mayer Brown LLP </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1221 Avenue of the Americas  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">New York, NY 10020  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;  &#91;***&#93;             </font></div><div style="padding-left:36pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;         &#91;***&#93;             </font></div><div style="padding-left:36pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="padding-left:36pt;text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If to Codexis&#58;</font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Codexis, Inc. </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">200 Penobscot Drive  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Redwood City, CA 94063  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58; President </font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">with a copy to (which shall not constitute notice)&#58;</font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Codexis, Inc. </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">200 Penobscot Drive  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Redwood City, CA 94063 </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;  &#91;***&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58; General Counsel </font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">And </font></div><div style="text-indent:36pt"><font><br></font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Baker Hostetler LLP </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">312 Walnut Street, Suite 3200  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Cincinnati, OH 45202-4074  </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Email&#58;  &#91;***&#93;             </font></div><div style="padding-left:36pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93; </font></div><div style="text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Attention&#58;         &#91;***&#93;             </font></div><div style="padding-left:36pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(A) with respect to any notice delivered pursuant to clauses (i), (ii) or (iii), such notice shall not be effective unless it was (1) first delivered via e-mail and no response was given within &#91;***&#93; and (2) a </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">21</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">subsequent notice via e-mail was sent indicating the delivery via method described in clause (i), (ii), or (iii), as applicable&#59; (B) with respect to any notice delivered pursuant to clauses (i), such notice shall be deemed effective upon submission to such other party, (C) with respect to any notice delivered pursuant to clause (ii), such notice shall be deemed effective &#91;***&#93; following the date of submission to the carrier, (D) with respect to any notice delivered pursuant to clause (iii), such notice shall be deemed effective &#91;***&#93; after the date deposited with the applicable carrier, and with respect to any notice delivered pursuant to clause (iv), (x) upon submission to such other party if sent during normal business hours of the recipient, and (y) on &#91;***&#93; if sent after normal business hours of the recipient (in the case of (x) or (y), subject to confirmation of receipt by recipient by reply email). A party may add, delete, or change the person or address to whom notices should be sent at any time upon written notice delivered to the other party in accordance with this Section 9.05.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.06&#160;&#160;&#160;&#160;Assignment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Neither this Agreement nor any of the rights or obligations hereunder may be assigned or transferred by either party without the prior written consent of the other party, such consent not to be unreasonably withheld, delayed or conditioned&#59; provided, however, that either party may, without the other party&#8217;s consent, but with written notice to the other party, assign or transfer all of its rights and obligations hereunder to any Affiliate, or to a Third Party with whom it completes a Business Combination or to whom it sells substantially all of such party&#8217;s assets relating to this Agreement. &#91;***&#93;. This Agreement shall inure to the benefit of and be binding on the parties&#8217; successors and assigns. Any assignment or transfer in violation of the foregoing shall be null and void and wholly invalid, the assignee or transferee in any such assignment or transfer shall acquire no rights whatsoever, and the non-assigning, non-transferring party shall not recognize, nor shall it be required to recognize, such assignment or transfer.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.07&#160;&#160;&#160;&#160;Waivers, Modifications, and Amendments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. No waiver, modification, release, or amendment of any obligation under, or provision of, this Agreement shall be valid or effective unless in writing and signed by all parties hereto. The failure of any party to insist on the performance of any obligation hereunder shall not be deemed to be a waiver of such obligation. Waiver of any provision hereunder or of any breach of any provision hereof shall not be deemed to be a continuing waiver or a waiver of any other breach of such provision (or any other provision) on such occasion or any succeeding occasion. Any amendment of this Agreement shall not be binding on the parties unless set out in writing, expressed to amend this Agreement and signed by authorized representatives of each of the parties.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.08&#160;&#160;&#160;&#160;Choice of Law</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement (and any claims or disputes arising out of or relating hereto or to the transaction contemplated hereby or to the inducement of any party to enter herein or therein, whether for breach of contract, tortious conduct, or otherwise and whether predicated on common law, statute, or otherwise) shall be governed by, enforced, and shall be construed in accordance with the laws of &#91;***&#93;, without regard to its conflicts of law provisions. The parties hereby disclaim the application of the United Nations Convention on the International Sale of Goods to this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.09&#160;&#160;&#160;&#160;Injunctive Relief</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Notwithstanding anything herein to the contrary, each party shall be entitled to seek injunctive relief and specific performance (including any relief or recovery under this Agreement) in any court of competent jurisdiction in the world.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.10&#160;&#160;&#160;&#160;Relationship of the Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Each party is an independent contractor under this Agreement. Nothing herein is intended or is to be construed so as to constitute Buyer and Seller as partners, agents, or joint venturers. Neither party shall have any express or implied right or authority to assume or create any obligations on behalf of or in the name of the other party or to bind the other party to </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">22</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">any contract, agreement, or undertaking with any Third Party. There are no express or implied third party beneficiaries hereunder.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.11&#160;&#160;&#160;&#160;Entire Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The parties agree that this Agreement and the attached Exhibits and Disclosure Schedules, together with the Existing Agreements, constitute the entire agreement between the parties as to the subject matter of this Agreement, and hereby supersede all prior negotiations, representations, agreements, and understandings (whether written or oral) regarding the same. Subject to Section 5.09 and the terms of the Lipase Acquisition Agreement, the provisions in the Existing Agreements pursuant to which each party has agreed not to Develop or Commercialize the Project Enzymes, including the use of any Jointly Owned Invention in connection therewith, remain in full force and effect except as set forth herein with respect to the A&#38;P Project Enzymes. Further, the parties agree that this Agreement does not supersede or amend the Lipase Acquisition Agreement, which remains in effect and solely governs the subject matter thereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.12&#160;&#160;&#160;&#160;Cooperation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The parties shall (i) provide assistance to each party as reasonably requested in preparing and filing Tax Returns with respect to the Purchased Assets&#59; (ii) make available to each other as reasonably requested all information, records, and documents relating to Taxes concerning the Purchased Assets&#59; (iii) retain any books and records that could reasonably be expected to be necessary or useful in connection with any preparation by any the other party of any Tax Return, or for any audit relating to Taxes with respect to the Purchased Assets&#59; and (iv) cooperate fully, as and to the extent reasonably requested by the other party, in connection with any audits, assessments or administrative or judicial proceedings or other Actions with respect to Taxes relating to the Purchased Assets.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.13&#160;&#160;&#160;&#160;Counterparts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. This Agreement may be executed in counterparts (including using any electronic signature covered by the United States ESIGN Act of 2000, Uniform Electronic Transactions Act, the Electronic Signatures and Records Act or other applicable Law, e.g., www.docusign.com), each of which shall be deemed an original, but all of which together shall be deemed to be one and the same agreement. A signed copy of this Agreement delivered by email or other means of electronic transmission shall be deemed to have the same legal effect as delivery of an original signed copy of this Agreement. To the extent applicable, the foregoing constitutes the election of the parties to invoke any Law authorizing electronic signatures. Minor variations in the form of the signature page, including footers from earlier versions of this Agreement, shall be disregarded in determining a party&#8217;s intent or the effectiveness of such signature. No party shall raise the use the delivery of signatures to this Agreement in electronic format as a defense to the formation of a contract and each such party forever waives any such defense.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Section 9.14&#160;&#160;&#160;&#160;Non-Recourse</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This Agreement may only be enforced against, and any Action based upon, arising out of or related to this Agreement, or the negotiation, execution, or performance of this Agreement, may only be brought against the entities that are expressly named as parties hereto and then only with respect to the specific obligations set forth herein with respect to such party. No past, present, or future director, officer, employee, incorporator, manager, member, partner, stockholder, Affiliate, agent, attorney, or other Representative of any party hereto or of any Affiliate of any party hereto, or any of their successors or permitted assigns, shall have any liability for any obligations or liabilities of any party hereto under this Agreement or for any Action based on, in respect of, or by reason of the transactions contemplated hereby.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">* * * * * * * * *</font></div><div style="margin-bottom:12pt;text-indent:36pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">23</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">IN WITNESS WHEREOF</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, the parties hereto have caused this Agreement to be executed as of the Effective Date written above by their respective officers thereunto duly authorized.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Codexis, Inc.</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">By&#58;       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">            </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> </font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Name&#58;  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">            </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Its&#58;       </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Soci&#233;t&#233; des Produits Nestl&#233; S</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">A</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">By&#58;       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">            </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> </font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Name&#58;  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">            </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Its&#58;       </font></div><div style="margin-bottom:12pt;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-indent:36pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">24</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_259"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EXHIBIT A</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">DEFINITIONS AND CROSS-REFERENCE TABLE</font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Certain Definitions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The following terms have the following meanings&#58;</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Affiliate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">of a Person means an entity that (directly or indirectly) is controlled by, controls, or is under common control with such Person where control means the direct or indirect ownership of voting securities entitled to cast at least fifty percent (50%) of the votes in the election of directors, or such other relationship as results in the power to control the management, business, assets, and affairs of an entity.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">BLA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) in the United States, a Biologics License Application, as defined in the United States Public Health Service Act (42 U.S.C. &#167; 262), and applicable regulations promulgated thereunder by the FDA, or any equivalent application that replaces such application, (b) in the EU, a marketing authorization application, as defined in applicable regulations of the EMA, and (c) in any other country, the relevant equivalent to the foregoing.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Books and Records</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all files (including all electronic data files and hard copies), documents, correspondence, lists, drawings and specifications, creative materials, marketing plans, studies (including market research and market data), reports, and other printed or written materials (in whatever form or medium).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Business</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, following the Closing Date, the Development, Manufacture, Commercialization and other Exploitation of Products by Buyer, its Affiliates, and its Licensees.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Business Combination</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to a party, any of the following events&#58; (a) any Third Party (or group of Third Parties acting in concert) acquires, directly or indirectly, shares of such party representing at least a majority of the voting power (where voting refers to being entitled to vote for the election of directors) then outstanding of such party&#59; (b) such party consolidates with or merges into another corporation or entity which is a Third Party, or any corporation or entity which is a Third Party consolidates with or merges into such party, in either event pursuant to a transaction in which at least a majority of the voting power of the acquiring or resulting entity outstanding immediately after such consolidation or merger is not held by the holders of the outstanding voting power of such party immediately preceding such consolidation or merger&#59; or (c) such party conveys or transfers title to all or substantially all of its assets to a Third Party.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Business Day</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a day other than Saturday, Sunday, or any day on which commercial banks located in &#91;***&#93; are authorized or obligated by applicable Law to close.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Clinical Trial</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a clinical trial in human subjects of a Product.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercialization</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any and all activities relating specifically to the preparation for sale of, offering for sale of, or sale of a product or service, including activities related to launching, marketing, promoting, distributing, detailing, importing, pricing, reimbursement, and advertising such product, and interacting with Regulatory Authorities regarding any of the foregoing. When used as a verb, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercialize</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercializing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to engage in Commercialization, and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Commercialized</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has a correlative meaning.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Confidential Information</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any and all technical, business, or other information or data of a party or its Affiliates provided orally, visually, in writing, graphically, electronically, or in another form by or on behalf of such party or its Affiliates to the other party or its Affiliates in connection with this </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">25</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Agreement The parties acknowledge that the terms of this Agreement shall be treated as Confidential Information of &#91;***&#93; and that the Licensed Know-How shall be treated as the Confidential Information of Seller.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Contracts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all contracts, leases, licenses, instruments, notes, commitments, undertakings, indentures, joint ventures and all other agreements, commitments and legally binding arrangements, whether written or oral.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Controlled</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Control</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">when used in reference to any intellectual property, intellectual property right, material, know-how or information, with respect to a party, means that such party (a) owns or has a license (other than a license granted under this Agreement) to such intellectual property and (b) has the legal authority or right to&#58; (i) grant, or procure the grant of, a license or sublicense, to the extent provided for herein, of the intellectual property, intellectual property right, material, know-how or information to the other party&#59; or (ii) in relation to material, know-how and information only, disclose or provide access to, to the extent provided for herein, such material, know-how or information to the other Party, and in each case, without (x) breaching the terms of any then-existing agreement or other legally enforceable arrangement with a Third Party, or (y) misappropriating the material, know-how, intellectual property, intellectual property rights, or information of a Third Party.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Development</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means non-clinical and clinical drug development activities reasonably related to the development and submission of information to a Regulatory Authority or otherwise to the testing and validation of a therapeutic agent, including toxicology, pharmacology and pre-clinical efforts, test method development, stability testing, manufacturing process, formulation development, delivery system development, quality assurance and quality control development, statistical analysis, and clinical trials (including pre- and post-approval studies), whether for purposes of label expansion or otherwise. Development shall include post-approval Development activities. When used as a verb, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Develop</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to engage in Development.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Disclosure Schedules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the disclosure schedules in respect of this Agreement delivered by Seller to Buyer concurrently with the execution by Buyer of this Agreement and as modified in accordance with Section 9.03 of the Lipase Acquisition Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EMA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the European Medicines Agency, or any successor agency thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">European Union</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">EU</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, at any given time, the then-current member states of the European Union&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">provided </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">that each of the United Kingdom and Switzerland will also be considered included with the European Union, regardless of each&#8217;s actual membership in the EU.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exploit</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to make, have made, import, use, sell or offer for sale a product or item. &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Exploitation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has a correlative meaning.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">FDA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the U.S. Food and Drug Administration, or any successor agency thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">First Commercial Sale</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to a particular country or jurisdiction, the first commercial sale, transfer, or other disposition by Buyer, any of its Affiliates, or any Licensee for consumption by an end user of a Product following the receipt of the first Regulatory Approval for such Product in such country or jurisdiction, &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">26</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">GAAP</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means United States generally accepted accounting principles, consistently applied.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Governmental Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any multi-national, federal, state, local, municipal, provincial, or other governmental authority of any nature (including any governmental division, prefecture, subdivision, department, agency, bureau, branch, office, commission, council, court, or other tribunal).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Governmental Order</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any order, writ, judgment, injunction, decree, stipulation, determination, or award entered by or with any Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">IFRS</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the current International Financial Reporting Standards, as published by the International Accounting Standards Board.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Jointly Owned Inventions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) &#8220;Jointly Owned Inventions&#8221; as defined in the Strategic Collaboration Agreement and (b) &#8220;Jointly Owned Inventions&#8221; as defined in the Development Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all non-public data and technical information, including techniques, methods, processes, technology, recipes, formulae, designs, equipment configurations and uses, Manufacturing data, preclinical and clinical data and study designs, specifications, ingredients, Manufacturing processes, formulations, sourcing information, quality control and testing procedures, and related trade secrets, but expressly excluding all Patents.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Knowledge of Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller&#8217;s Knowledge</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or any other similar knowledge qualification, means the actual knowledge of those individuals identified on Section A of the Disclosure Schedules, &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all laws, statutes, rules, regulations, ordinances, and other pronouncements having the effect of law of any federal, national, multinational, state, provincial, county, city, or other political subdivision.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Liabilities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means liabilities, obligations, or commitments of any nature whatsoever, whether asserted or unasserted, known or unknown, absolute or contingent, accrued or unaccrued, matured or unmatured, or otherwise.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Lipase Product</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a &#8220;Product&#8221; as defined in the Lipase Acquisition Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Licensed Know-How</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all Know-How owned by Seller or its Affiliates as of the Closing Date that is &#91;***&#93; for the Manufacture of the A&#38;P Project Enzymes as conducted as of the Closing Date or is &#91;***&#93; provided to Regulatory Authorities in order to obtain Regulatory Approval for any product containing any A&#38;P Project Enzymes anywhere in the world&#59; provided that in no event shall Licensed Know-How include&#58; (a) any Purchased Assets&#59; (b) any Know-How or other intellectual property licensed pursuant to the Expression System License Agreement&#59; or (c) Seller&#8217;s or its Affiliates&#8217; CodeEvolver&#174; platform technology.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Licensee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a Third Party that has been granted a license or right to Develop, Manufacture, Commercialize, or otherwise Exploit any Product by or through Buyer or Buyer&#8217;s Affiliate, either directly or via a sublicense (through one or more tiers). As used in this Agreement, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Licensee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">shall not include a wholesaler, distributor, or reseller of any Product, to the extent that Buyer or its Affiliate sells to such Person such Product and receives only supply price payments and has not granted such wholesaler, distributor, or reseller any license under any Purchased Patent or Resultant Patent.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">27</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Manufacture</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Manufacturing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all activities related to the production, manufacture, processing, formulation, filling, finishing, packaging, labeling, shipping, handling, and storage of a product or any intermediate thereof, including process development, process qualification and validation, scale-up, pre-clinical, clinical and commercial manufacture and analytic development, product characterization, stability testing, quality assurance, and quality control.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Material Adverse Effect</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any event, occurrence, fact, condition, or change that is materially adverse to the Development and Manufacture of the Products, taken as a whole.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Patent(s)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) any and all patents and patent applications, including all national, regional and international patents and patent applications, provisional patent applications&#59; (b) all patent applications filed either (i) from such patents, patent applications, or provisional applications mentioned in subsection (a) above, or (ii) from an application claiming priority from any of them, including divisionals, continuations, continuations-in-part, provisionals, converted provisionals and requests for continued examinations&#59; and (c) any and all extensions or restorations by existing or future extension or restoration mechanisms, including revalidations, reissues, reexaminations and extensions (including any supplementary protection certificates and the like) of the foregoing patents and&#47;or patent applications in subsections (a) and (b).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Person</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means an individual, sole proprietorship, partnership, limited partnership, limited liability partnership, corporation, limited liability company, business trust, joint stock company, trust, unincorporated association, foundation, joint venture, or other similar entity, organization, or combination thereof, including a government or political subdivision, department, or agency.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Phase III Clinical Trial</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means a pivotal Clinical Trial with a defined dose or a set of defined doses of a therapeutic product designed to ascertain efficacy and safety of such therapeutic product, in a manner that is generally consistent with 21 C.F.R. &#167; 312.21(c), as amended (or its successor regulation), for the purpose of enabling the preparation and submission of a BLA or a foreign equivalent thereof</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Product(s)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) the A&#38;P Project Enzymes &#91;***&#93; and (b) &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Project Enzyme</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has the meaning set forth in the in the SCA.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Prosecution</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means the filing, preparation, prosecution (including any interferences, reissue proceedings, reexaminations, and oppositions), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">inter partes </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">review, post-grant review, and maintenance of the Purchased Patents and Resultant Patents. When used as a verb, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Prosecute</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">and &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Prosecuting</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means to engage in Prosecution.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Regulatory Approval</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to a therapeutic product in any country or regulatory jurisdiction, any and all approvals from the applicable Regulatory Authority sufficient for the import, distribution, marketing, use, offering for sale, and sale of sch therapeutic product in such country or jurisdiction in accordance with applicable Laws.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Regulatory Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any national or supranational Governmental Authority (including the FDA and EMA) which has regulatory responsibility and authority in one or more countries for review and approval of development and commercialization of therapeutic products.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Regulatory Documentation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">has the meaning set forth in the Development Agreement</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">28</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Representative</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means, with respect to any Person, any and all directors, officers, employees, consultants, financial advisors, counsel, accountants, and other agents of such Person and of the Affiliates of such Person.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Resultant Patent(s)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">mean any Patent &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sell-On Transaction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any of the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(a)&#160;&#160;&#160;&#160;the sale or transfer of one or more of the Purchased Patents or Resultant Patents to any Third Party&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(b)&#160;&#160;&#160;&#160;the exclusive or co-exclusive (with Buyer and its Affiliates) licensing of one or more of the Purchased Patents or Resultant Patents to any Third Party&#59;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(c)&#160;&#160;&#160;&#160;the sale, transfer, or exclusive or co-exclusive (with Buyer and its Affiliates) licensing of one or more of the Purchased Patents or Resultant Patents to any Affiliate of Buyer, in connection with or followed by any of the following&#58; (i) the direct or indirect acquisition by any Third Party (or group of Third Parties acting in concert) of shares of such Affiliate representing at least a majority of the voting power (where voting refers to being entitled to vote for the election of directors) then outstanding of such Affiliate&#59; or (ii) the merger or consolidation of such Affiliate with or into any Third Party, or the merger or consolidation of any Third Party with or into such Affiliate, in either event pursuant to a transaction in which at least a majority of the voting power of the acquiring or resulting entity outstanding immediately after such consolidation or merger is not held by the holders of the outstanding voting power of such Affiliate immediately preceding such consolidation or merger&#59; or</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">(d)&#160;&#160;&#160;&#160;any other similar transaction which has the effect of allowing any Third Party to Develop, Manufacture, or Commercialize any Product other than doing so solely on behalf and for the benefit of Buyer or its Affiliates or Licensees, </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">but in no event shall a Business Combination of Buyer be considered a Sell-On Transaction.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Senior Executives</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means &#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Taxes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means all federal, state, local, foreign, and other income, gross receipts, sales, use, production, ad valorem, transfer, documentary, franchise, registration, profits, license, withholding, payroll, employment, unemployment, excise, severance, stamp, occupation, premium, property (real or personal), customs, import and export, goods and services, value added, escheat, unclaimed property, duties, or other taxes, fees, assessments, or charges of any kind whatsoever, together with any interest, additions, or penalties with respect thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Tax Return</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any return, declaration, report, claim for refund, or other document relating to Taxes, including any schedule or attachment thereto, and amendment thereof, required to be supplied to a Governmental Authority in connection with any Taxes.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Technology</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means&#58; (a) all of Seller&#8217;s interest in the Purchased Patents&#59; and (b) any Resultant Patents.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Third Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means any Person other than Seller, Buyer, and their respective Affiliates.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">29</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">United States</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">U.S.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221; means the United States of America, including its territories, possessions, and protectorates.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">VAT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">means (a) in relation to any jurisdiction within the European Union, the Tax imposed by the EC Council Directive on the common system of value added tax (2006&#47;112&#47;EC) and any successor or equivalent legislation and any national legislation implementing that directive together with legislation supplemental thereto and the equivalent Tax (if any) in that jurisdiction&#59; and (b) in any other jurisdiction, any other value added, goods and services, consumption or similar Tax chargeable on the supply or deemed supply of goods or services under applicable legislation or regulation.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">30</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_267"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Cross-Reference Table</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The following terms have the meanings set forth in the location in this Agreement referenced below&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.679%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#e5e5e5;border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%;text-decoration:underline">Term</font></td><td colspan="3" style="background-color:#e5e5e5;border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:112%">Section</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">A&#38;P Project Enzymes</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Acquired Books and Records</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(f)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Acquired Regulatory Documentations</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(d)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Actions</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 3.06(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Allocation Schedule</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.07</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Annual Report</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.06</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Assigned Contracts</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Assignment and Assumption Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(i)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Assumed Liabilities</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.03(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Bill of Sale</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(i)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93;</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Buyer</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Buyer Indemnified Parties</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Cap</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.04(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93;</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Closing</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Closing Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Code</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.07</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Codexis</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Deductible</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.04(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Development Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Disclosing Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.01(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Dispute</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Effective Date</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Excluded Assets</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Excluded Liabilities</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.03(b)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Existing Agreements</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Expression System License Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(iv)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Indemnified Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.04</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Indemnifying Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.04</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Initial Purchase Price</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.04</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Inventory</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(c)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93;</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Losses</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Lipase Acquisition Agreement</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Milestone</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.05</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Milestone Payment</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.05</font></td></tr><tr><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">NHSc</font></td><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">31</font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.679%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Notice of Dispute</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Patent Assignment</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(iii)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">&#91;***&#93;</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.11</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchased Assets</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchased Know-How</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(d)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchased Patents</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.01(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Purchase Price</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 1.04</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Receiving Party</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.01(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Related Claims</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Restricted Business</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.03(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Restricted Period</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 5.03(a)</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Rules</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 8.02</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Seller</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Preamble</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Seller Indemnified Parties</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 6.03</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Strategic Collaboration Agreement or SCA</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Recitals</font></td></tr><tr><td colspan="3" style="border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Term</font></td><td colspan="3" style="border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 7.01</font></td></tr><tr><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Transaction Documents</font></td><td colspan="3" style="border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:justify;text-indent:36pt;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:112%">Section 2.02(a)(iii)</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">32</font></div></div></div><div id="i873312b938d24f41912d41175fac5420_275"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">These Disclosure Schedules (these &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Schedules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) have been prepared in connection with the Amylase and Protease Acquisition Agreement (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), dated as of &#91;&#9679;&#93;, entered into between CODEXIS, INC., a corporation incorporated and existing under the laws of the State of Delaware (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), and Soci&#233;t&#233; des Produits Nestl&#233; S.A., a soci&#233;t&#233; anonyme organized and existing under the laws of Switzerland (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). The parties hereto are referred to herein as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;, and each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;. Capitalized terms used in these Schedules but not defined herein have the respective meanings ascribed to such terms in the Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Any appendix or schedule attached to these Schedules shall be deemed to be incorporated by reference into these Schedules. The information contained in these Schedules is as of the date of the Agreement.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i873312b938d24f41912d41175fac5420_212"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:112%">CERTAIN CONFIDENTIAL INFORMATION CONTAINED IN THIS DOCUMENT, MARKED BY &#91;***&#93;, HAS BEEN OMITTED BECAUSE IT IS BOTH (I) NOT MATERIAL AND (II) IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">These Disclosure Schedules (these &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Schedules</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) have been prepared in connection with the Acquisition Agreement (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), dated as of December 26, 2023, entered into between CODEXIS, INC., a corporation incorporated and existing under the laws of the State of Delaware (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Seller</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), and Soci&#233;t&#233; des Produits Nestl&#233; S.A., a soci&#233;t&#233; anonyme organized and existing under the laws of Switzerland (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Buyer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). The parties hereto are referred to herein as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;, and each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;. Capitalized terms used in these Schedules but not defined herein have the respective meanings ascribed to such terms in the Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Any appendix or schedule attached to these Schedules shall be deemed to be incorporated by reference into these Schedules. The information contained in these Schedules is as of the date of the Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.17
<SEQUENCE>4
<FILENAME>codexis-ex1017codexis_inno.htm
<DESCRIPTION>EX-10.17
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="iba48b620532f41eeb28fb1554c099fd6_1"></div><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">LOAN AND SECURITY AGREEMENT</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">dated as of February 13, 2024 </font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">by and among </font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">INNOVATUS LIFE SCIENCES LENDING FUND I, LP, </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">as Collateral Agent, </font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> CODEXIS, INC.,</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">as Borrower</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">and </font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">THE LENDERS LISTED ON SCHEDULE 1.1 HEREOF </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">OR OTHERWISE A PARTY HERETO FROM TIME TO TIME </font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_346"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:73.739%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.587%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">DEFINITIONS, ACCOUNTING AND OTHER TERMS</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Certain Defined Terms.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Terms Generally.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">LOANS AND TERMS OF PAYMENT</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Promise to Pay.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Term Loans.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Payment of Interest on the Term Loan.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fees</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Withholding</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Secured Promissory Notes</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CONDITIONS OF LOANS</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Conditions Precedent to Initial Term Loan</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Conditions Precedent to all Term Loans</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Covenant to Deliver</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Procedures for Borrowing</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CREATION OF SECURITY INTEREST</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Grant of Security Interest</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Authorization to File Financing Statements</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Pledge of Shares Collateral</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">REPRESENTATIONS AND WARRANTIES</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Due Organization, Authorization&#58; Power and Authority</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Collateral.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Litigation</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">No Material Adverse Change&#59; Financial Statements</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Solvency</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Regulatory Compliance</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.7</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investments</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.8</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax Returns and Payments&#59; Pension Contributions</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.9</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Use of Proceeds</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.10</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Full Disclosure</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.11</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Definition of &#8220;Knowledge.&#8221;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.12</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Shares</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.13</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Subsidiaries</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">AFFIRMATIVE COVENANTS</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Government Compliance.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Financial Statements, Reports, Certificates&#59; Notices.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory&#59; Returns</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxes&#59; Pensions</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Insurance</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating Accounts.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.7</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Protection of Intellectual Property Rights</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.8</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Litigation Cooperation</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.9</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Landlord Waivers&#59; Bailee Waivers</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.10</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Creation&#47;Acquisition of Subsidiaries</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.11</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Further Assurances</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:43.108%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:143%">296116227 v13</font></div><div><font><br></font></div></td></tr></table></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:73.739%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.587%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.12</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net Product Revenue Covenant</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.13</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liquidity Covenant</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.14</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Post-Closing Obligations.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">NEGATIVE COVENANTS</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dispositions</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Changes in Business, Management, Ownership, or Business Locations</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mergers or Acquisitions</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Indebtedness</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Encumbrance</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Maintenance of Collateral Accounts</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.7</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restricted Payments</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.8</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investments</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.9</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Transactions with Affiliates</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.10</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Subordinated Debt</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.11</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Compliance</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.12</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Compliance with Anti-Terrorism Laws</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.13</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Material Agreements</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.14</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Subsidiaries</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">EVENTS OF DEFAULT</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Payment Default</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Covenant Default.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Material Adverse Change</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Attachment&#59; Levy&#59; Restraint on Business.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Insolvency</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Agreements</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.7</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Judgments</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.8</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Misrepresentations</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.9</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Subordinated Debt</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.10</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Guaranty</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.11</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Governmental Approvals&#59; FDA Action</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.12</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lien Priority&#59; Intellectual Property</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.13</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Delisting</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8.14</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock Price Decline</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RIGHTS AND REMEDIES</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Rights and Remedies.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Power of Attorney</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Protective Payments</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application of Payments and Proceeds</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liability for Collateral</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">No Waiver&#59; Remedies Cumulative</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.7</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Demand Waiver</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9.8</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standards</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">NOTICES</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CHOICE OF LAW, VENUE AND JURY TRIAL WAIVER</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Waiver of Jury Trial</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:43.108%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:143%">296116227 v13</font></div><div><font><br></font></div></td></tr></table></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:73.739%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.587%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Governing Law and Jurisdiction.</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GENERAL PROVISIONS</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.1</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Successors and Assigns</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.2</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Indemnification</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.3</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Severability of Provisions</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.4</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Interest Rate Limitation</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.5</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Correction of Loan Documents</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.6</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amendments in Writing&#59; Integration</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.7</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Counterparts</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.8</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Survival</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.9</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Confidentiality</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.10</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitations of Damages</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.11</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Waiver as to Assignees</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.12</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Right of Set Off</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.13</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cooperation of Borrower</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.14</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Public Announcement</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.15</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Collateral Agent and Lender Agreement</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12.16</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower Liability</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">DEFINITIONS</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Cambria',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:43.108%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:143%">296116227 v13</font></div><div><font><br></font></div></td></tr></table></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_7"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:98.64pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div style="margin-bottom:12pt"><font><br></font></div><div><font><br></font></div></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">SCHEDULES, EXHIBITS AND ANNEXES</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Schedule 1.1&#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Lenders and Commitments</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Schedule 6.12&#160;&#160;&#160;&#160;&#8211;&#160;&#160;&#160;&#160;Net Product Revenue Covenant</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Schedule 6.13&#160;&#160;&#160;&#160;&#8211;&#160;&#160;&#160;&#160;Liquidity Covenant</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibit A &#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Description of Collateral</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibit B-1 &#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Loan Payment Request Form</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibit B-2 &#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Form of Disbursement Letter</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibit C &#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Compliance Certificate</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibit D&#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Form of Secured Promissory Note</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exhibit E &#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Form of Corporate Borrowing Certificate</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Annex I &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#8211; &#160;&#160;&#160;&#160;Collateral Agent and Lender Terms</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Annex Y &#160;&#160;&#160;&#160;&#8211;&#160;&#160;&#160;&#160;Loan Interest Rate and Payment of Principal&#160;&#160;&#160;&#160; </font></div><div><font><br></font></div><div><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_10"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div style="margin-bottom:12pt"><font><br></font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">LOAN AND SECURITY AGREEMENT</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">THIS LOAN AND SECURITY AGREEMENT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (as the same may be amended, restated, modified, or supplemented from time to time, this &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), dated as of February 13, 2024 (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Effective Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), among INNOVATUS LIFE SCIENCES LENDING FUND I, LP, a Delaware limited partnership, as collateral agent (in such capacity, together with its successors and assigns in such capacity, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Collateral Agent</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), and the Lenders listed on Schedule 1.1 hereof or otherwise a party hereto from time to time including INNOVATUS LIFE SCIENCES LENDING FUND I, LP in its capacity as a Lender, and CODEXIS, INC., a Delaware corporation (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Borrower</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), provides the terms on which the Lenders shall lend to Borrower and Borrower shall repay the Lenders. The parties agree as follows&#58;</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">DEFINITIONS, ACCOUNTING AND OTHER TERMS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Certain Defined Terms</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Capitalized terms used herein shall have the meanings set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 13</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> to the extent defined therein.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Terms Generally</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The definitions of terms herein shall apply equally to the singular and plural forms of the terms defined. Whenever the context may require, any pronoun shall include the corresponding masculine, feminine and neuter forms. The words &#8220;include,&#8221; &#8220;includes&#8221; and &#8220;including&#8221; shall be deemed to be followed by the phrase &#8220;without limitation.&#8221; The word &#8220;will&#8221; shall be construed to have the same meaning and effect as the word &#8220;shall.&#8221; Unless the context requires otherwise (a) any definition of or reference to any agreement, instrument or other document herein shall be construed as referring to such agreement, instrument or other document as from time to time amended, supplemented or otherwise modified (subject to any restrictions on such amendments, supplements or modifications set forth herein), (b) any reference herein to any Person shall be construed to include such Person&#8217;s successors and assigns, (c) the words &#8220;herein,&#8221; &#8220;hereof&#8221; and &#8220;hereunder,&#8221; and words of similar import, shall be construed to refer to this Agreement in its entirety and not to any particular provision hereof, (d) all references herein to Articles, Sections, Exhibits and Schedules shall be construed to refer to Articles and Sections of, and Exhibits and Schedules to, this Agreement, (e) any matter to be determined by a Lender or Collateral Agent may be determined in their sole discretion, unless another standard is expressly stated, and (f) any reference to any law or regulation herein shall, unless otherwise specified, refer to such law or regulation as amended, modified or supplemented from time to time.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">LOANS AND TERMS OF PAYMENT</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:21pt">Promise to Pay</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower hereby unconditionally promises to pay each Lender the outstanding principal amount of the Term Loan advanced to Borrower by such Lender and accrued and unpaid interest thereon and any other amounts due to a Lender or to Collateral Agent hereunder as and when due in accordance with this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Term Loans</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Availability</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Subject to the terms and conditions of this Agreement, the Lenders agree, severally and not jointly, to make a term loan to Borrower on the Effective Date in an aggregate principal amount of Thirty Million Dollars ($30,000,000.00) according to each Lender&#8217;s Term Loan Commitment as set forth on Schedule 1.1 hereto (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term A Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;). After repayment, the Term A Loan may not be reborrowed.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">Subject to the terms and conditions of this Agreement, the Lenders agree, severally and not jointly, to make a term loan to Borrower during the Term B Draw Period in an aggregate principal amount of Ten Million Dollars ($10,000,000.00) according to each Lender&#8217;s Term Loan Commitment as set forth on Schedule 1.1 hereto (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term B Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;, and together with the Term A Loan, each individually, and collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;). After repayment, the Term B Loan may not be reborrowed.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Repayment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower shall make monthly payments of interest only commencing on the second (2nd) Payment Date following the Funding Date of any Term Loan, and continuing on the Payment Date of each successive month thereafter through and including the Payment Date immediately preceding the Amortization Date. Borrower agrees to pay, on the Funding Date of any Term Loan, any initial partial monthly interest payment otherwise due for the period between the Funding Date of such Term Loan and the first Payment Date after such Funding Date. Commencing on the Amortization Date, and continuing on the Payment Date of each month </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">thereafter, Borrower shall make consecutive equal monthly payments of principal, together with interest in arrears, to each Lender, as calculated by Collateral Agent (which calculations shall be deemed correct absent manifest error) based upon&#58; (1) the amount of such Lender&#8217;s Term Loan, (2) the effective rate of interest, as determined in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.3(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, and (3) a principal repayment schedule equal to (i) in the case of the I&#47;O Extension Event not occurring, twenty four (24) months, or (ii) in the case of the I&#47;O Extension Event occurring, twelve (12) months. During the amortization period, Collateral Agent shall recalculate the payment amount to give effect to each change of the Basic Rate as it occurs. All unpaid principal and accrued and unpaid interest with respect to the Term Loan and the Final Fee are due and payable in full on the Maturity Date. The Term Loan may only be prepaid in accordance with </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Sections 2.2(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">2.2(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Mandatory Prepayments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. If an event described in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 7.2(d)(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> occurs or the Term Loan is accelerated following the occurrence of an Event of Default, Borrower shall immediately pay to Collateral Agent and to each Lender, as applicable, and in accordance with its respective Pro Rata Shares to each Lender, an amount equal to the sum of&#58; (i) all outstanding principal of the Term Loan plus accrued and unpaid interest thereon through the prepayment date, (ii) the Final Fee, (iii) the Prepayment Fee, plus (iv) all other Obligations that are due and payable, including, without limitation, Lenders&#8217; Expenses and interest thereon at the Default Rate with respect to any past due amounts.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Permitted Prepayment of Term Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. After the date that is the first anniversary of the Effective Date, Borrower shall have the option to prepay all, but not less than all, of the Term Loan advanced by the Lenders under this Agreement, provided Borrower (i) provides written notice to Collateral Agent of its election to prepay the Term Loan at least five (5) Business Days prior to such prepayment, and (ii) pays to the Lenders on the date of such prepayment, payable to each Lender in accordance with its respective Pro Rata Share, an amount equal to the sum of (A) all outstanding principal of the Term Loan plus accrued and unpaid interest thereon through the prepayment date, (B) the Final Fee, (C) the Prepayment Fee, plus (D) all other Obligations that are due and payable, including, without limitation, Lenders&#8217; Expenses and interest on such other Obligations at the Default Rate, if applicable.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.3</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Payment of Interest on the Term Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Interest Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Subject to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.3(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, the principal amount outstanding under the Term Loan shall accrue interest at a floating per annum rate equal to the Basic Rate, as determined by Collateral Agent on the Funding Date and as the Prime Rate changes thereafter, which interest shall be payable monthly in arrears in accordance with </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Sections 2.2(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;and </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">2.3(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#59; provided that at the election of Borrower (which shall be considered elected on the Funding Date of the applicable Term Loan) with no less than five (5) Business Days&#8217; irrevocable written notice to Collateral Agent prior to the Effective Date, 2.00% of the Basic Rate may be payable in-kind by adding an amount equal to such 2.00% of the outstanding principal amount to the then outstanding principal balance on each Payment Date until the Payment Date next following the Amortization Date so as to increase the outstanding principal balance of the Term Loan on each Payment Date and which amount shall be payable when the principal amount of the applicable Term Loan is payable in accordance with </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Sections 2.2(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">2.3(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and on which principal amount interest shall be owed pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.3(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. This increase in the principal amount of the Term Loans shall not require any action by Borrower, the Lenders, or Collateral Agent&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, that Borrower shall execute such additional documents as Collateral Agent may reasonably require to evidence the increased principal balance of the Term Loans.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Interest shall accrue on the Term Loan commencing on, and including, the Funding Date of the Term Loan, and shall accrue on the principal amount outstanding under the Term Loan through and including the day on which the Term Loan is paid in full.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Default Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Immediately upon the occurrence and during the continuance of an Event of Default, Obligations shall accrue interest at a floating per annum rate equal to the rate that is otherwise applicable thereto plus five percentage points (5.00%) (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Default Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;). Payment or acceptance of the increased interest rate provided in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.3(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> is not a permitted alternative to timely payment and shall not constitute a waiver of any Event of Default or otherwise prejudice or limit any other rights or remedies of Collateral Agent.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">365 Day Year</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Interest shall be computed on the basis of a three hundred sixty-five (365) day year and the actual number of days elapsed, including the first day and the last day.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Debit of Accounts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Collateral Agent and each Lender may debit (or ACH) any deposit accounts designated by Borrower or any of its Subsidiaries (or, if the funds in such account are insufficient, in any other account maintained by Borrower) for principal and interest payments or any other amounts Borrower owes the </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;2</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lenders under the Loan Documents when due&#59; provided, that Collateral Agent shall use commercially reasonable efforts to promptly notify Borrower of any debit of any amounts other than principal and interest payments when due in accordance with this Agreement. Any such debits (or ACH activity) shall not constitute a set off.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Except as otherwise expressly provided herein, all payments by Borrower under the Loan Documents shall be made to the respective Lender to which such payments are owed, at such Lender&#8217;s office in immediately available funds on the date specified herein. Unless otherwise provided, interest is payable monthly on the Payment Date of each month. Payments of principal and&#47;or interest received after 12&#58;00 noon Eastern time are considered received at the opening of business on the next Business Day. When a payment is due on a day that is not a Business Day, the payment is due the next Business Day and additional fees or interest, as applicable, shall continue to accrue until paid. All payments to be made by Borrower hereunder or under any other Loan Document, including payments of principal and interest, and all fees, expenses, indemnities and reimbursements, shall be made without set off, recoupment or counterclaim, in lawful money of the United States and in immediately available funds.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt;text-decoration:underline">Changes in Prime Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. In the event the Prime Rate is changed from time to time hereafter and because of any such change the Basic Rate changes, the Basic Rate shall be increased or decreased, effective as of the day of such change in the Prime Rate.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Fees</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower shall pay to Collateral Agent&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Facility Fee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The Facility Fee, which shall be due on the Funding Date of each Term Loan (including on the Effective Date) with respect to such Term Loan, to be shared among the Lenders in accordance with their respective Pro Rata Shares&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Final Fee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The Final Fee, when due hereunder, to be shared among the Lenders in accordance with their respective Pro Rata Shares&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Prepayment Fee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The Prepayment Fee, when due hereunder, to be shared among the Lenders in accordance with their respective Pro Rata Shares&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Lenders&#8217; Expenses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. All Lenders&#8217; Expenses (including reasonable and documented out-of-pocket attorneys&#8217; fees and expenses for due diligence, investigation, documentation and negotiation of this Agreement) incurred through and after the Effective Date, when due and payable. </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Final Fee and the Prepayment Fee shall be fully earned as of the Effective Date. The parties hereto acknowledge and agree that, in light of the impracticality and extreme difficulty of ascertaining actual damages, the Prepayment Fee and the Final Fee are intended to be a reasonable calculation of the actual damages that would be suffered by the holders of the Obligations as a result of any prepayment, repayment or other payment. The parties hereto further acknowledge and agree that Collateral Agent and the Lenders would not have entered into this Agreement without the Borrower&#8217;s agreement to pay the Prepayment Fee and the Final Fee as and when required hereunder. The parties hereto further acknowledge and agree that the Prepayment Fee and the Final Fee are not intended to act as a penalty or to punish the Borrower for any prepayment, repayment or other payment hereunder.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Withholding</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Payments received by Collateral Agent or the Lenders from Borrower hereunder will be made free and clear of and without deduction for any and all present or future taxes, levies, imposts, duties, deductions, withholdings, assessments, fees or other charges imposed by any governmental authority (including any interest, additions to tax or penalties applicable thereto). Specifically, however, if at any time any Governmental Authority, applicable law, regulation or international agreement requires Borrower to make any withholding or deduction from any such payment or other sum payable hereunder to the Lenders, Borrower hereby covenants and agrees that the amount due from Borrower with respect to such payment or other sum payable hereunder will be increased to the extent necessary to ensure that, after the making of such required withholding or deduction, each Lender receives a net sum equal to the sum which it would have received had no withholding or deduction been required and Borrower shall pay the full amount withheld or deducted to the relevant Governmental Authority. Borrower will, upon request, furnish the Lenders with proof reasonably satisfactory to the Lenders indicating that Borrower has made such withholding payment&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, that Borrower need not make any withholding payment if the amount or validity of such withholding payment is contested in good faith by appropriate and timely proceedings and as to which payment in full is bonded or reserved against by Borrower. The agreements and obligations of Borrower contained in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> shall survive the termination of this Agreement.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;3</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Secured Promissory Notes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The Term Loan shall be evidenced by a Secured Promissory Note or Notes in the form attached as </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit D</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereto (each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Secured Promissory Note</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), and shall be repayable as set forth in this Agreement. Borrower irrevocably authorizes each Lender to make or cause to be made, on or about the Funding Date of any Term Loan and at the time of receipt of any payment of principal on such Lender&#8217;s Secured Promissory Note, an appropriate notation on such Lender&#8217;s Secured Promissory Note Record reflecting the making of such Term Loan or (as the case may be) the receipt of such payment. The outstanding amount of each Term Loan set forth on such Lender&#8217;s Secured Promissory Note Record shall be </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">prima facie</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> evidence of the principal amount thereof owing and unpaid to such Lender, but the failure to record, or any error in so recording, any such amount on such Lender&#8217;s Secured Promissory Note Record shall not limit or otherwise affect the obligations of Borrower under any Secured Promissory Note or any other Loan Document to make payments of principal of or interest on any Secured Promissory Note when due. Promptly after Borrower&#8217;s receipt of an affidavit of an officer of a Lender as to the loss, theft, destruction, or mutilation of its Secured Promissory Note, Borrower shall issue, in lieu thereof, and without bond, a replacement Secured Promissory Note in the same principal amount thereof and of like tenor.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt;text-decoration:underline">CONDITIONS OF LOANS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Conditions Precedent to Initial Term Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Each Lender&#8217;s obligation to make the Term Loan is subject to the condition precedent that Collateral Agent and each Lender shall consent to or shall have received, in form and substance satisfactory to Collateral Agent and each Lender, such documents, and completion of such other matters, as Collateral Agent and each Lender may reasonably deem necessary or appropriate, including, without limitation&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">copies of the Loan Documents, each duly executed by Borrower and each Subsidiary that is a Loan Party, as applicable&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">a completed Perfection Certificate for Borrower and each of its Subsidiaries&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">&#91;reserved&#93;&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">the Operating Documents and good standing certificates of Borrower and each of its Subsidiaries that is a Loan Party certified by the Secretary of State (or equivalent agency) of Borrower&#8217;s and such Subsidiaries&#8217; jurisdiction of organization or formation and each jurisdiction in which Borrower and each Subsidiary is qualified to conduct business, each as of a date no earlier than thirty (30) days prior to the Effective Date&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">a copy of resolutions of the governing body for Borrower and each of its Subsidiaries that is a party to any of the Loan Documents evidencing approval of the Term Loan and other transactions evidenced by the Loan Documents&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt">duly executed original officer&#8217;s certificates for Borrower and each Subsidiary that is a party to the Loan Documents certifying as to (i) the incumbency of each Responsible Officer executing each Loan Document and (ii) the documents delivered pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 3.1(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">3.1(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, in a form acceptable to Collateral Agent and the Lenders&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">certified copies, dated as of date no earlier than thirty (30) days prior to the Effective Date, of financing statement searches, as Collateral Agent shall request, accompanied by written evidence (including any UCC termination statements) that the Liens indicated in any such financing statements either constitute Permitted Liens or have been or, in connection with the initial Term Loan, will be terminated or released&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(h)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">a duly executed legal opinion of counsel to Borrower dated as of the Effective Date&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">evidence satisfactory to Collateral Agent and the Lenders that the insurance policies required by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof are in full force and effect&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(j)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">a copy of any applicable Investors Rights Agreement and any amendments thereto&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(k)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">&#91;reserved&#93;&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(l)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">payment of the Facility Fee and Lenders&#8217; Expenses then due as specified in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;4</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Conditions Precedent to all Term Loans</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The obligation of each Lender to extend each Term Loan, including the initial Term Loan, is subject to the following conditions precedent&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">receipt by Collateral Agent of (i) an executed Loan Payment Request Form in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit B-1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> attached hereto and (ii) an executed Disbursement Letter in the form of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit B-2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> attached hereto&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">the representations and warranties in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof shall be true, accurate and complete in all material respects on the date of each Loan Payment Request Form and the date of each Disbursement Letter and the Funding Date of each Term Loan&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, that such materiality qualifier shall not be applicable to any representations and warranties that already are qualified or modified by materiality in the text thereof&#59; and provided, further that those representations and warranties expressly referring to a specific date shall be true, accurate and complete in all material respects as of such date, and no Event of Default shall have occurred and be continuing or result from the funding of such Term Loan&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">as determined by such Lender in such Lender&#8217;s sole discretion, there has not been any Material Adverse Change&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">no Default or Event of Default shall exist or would result from the making of such Term Loan&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">to the extent not delivered at the Effective Date, duly executed original Secured Promissory Notes and Warrants, in number, form and content acceptable to each Lender, and in favor of each Lender according to its Commitment Percentage, with respect to each Credit Extension made by such Lender after the Effective Date&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt">if such Term Loan is the Term B Loan, the Term B Milestone must have been satisfied, as measured on the last day of the month immediately preceding the Funding Date of the Term B Loan&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">payment of the fees and Lenders&#8217; Expenses then due as specified in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.3</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Covenant to Deliver</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower agrees to deliver to Collateral Agent and the Lenders each item required to be delivered to Collateral Agent under this Agreement as a condition precedent to any Term Loan. Borrower expressly agrees that the Term Loan made prior to the receipt by Collateral Agent or any Lender of any such item shall not constitute a waiver by Collateral Agent or any Lender of Borrower&#8217;s obligation to deliver such item, and any such Term Loan in the absence of a required item shall be made in each Lender&#8217;s sole discretion.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Procedures for Borrowing</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Subject to the prior satisfaction of all other applicable conditions to the making of the Term Loan set forth in this Agreement, to obtain the Term Loan (other than the Term Loan funded on the Effective Date), Borrower shall notify the Lenders (which notice shall be irrevocable) by electronic mail, facsimile, or telephone by 12&#58;00 noon New York City time seven (7) Business Days (or such shorter period as agreed by the Lenders) prior to the date the Term Loan is to be made. Together with any such electronic, facsimile or telephonic notification, Borrower shall deliver to Collateral Agent by electronic mail or facsimile a completed Disbursement Letter and Loan Payment Request Form executed by a Responsible Officer or his or her designee. Collateral Agent may rely on any telephone notice given by a person whom Collateral Agent reasonably believes is a Responsible Officer or designee.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt;text-decoration:underline">CREATION OF SECURITY INTEREST</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.1&#160;&#160;&#160;&#160;Grant of Security Interest</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower hereby grants Collateral Agent, for the ratable benefit of the Lenders, to secure the payment and performance in full of all of the Obligations, a continuing security interest in, and pledges and assigns as collateral to Collateral Agent, for the ratable benefit of the Lenders, the Collateral, wherever located, whether now owned or hereafter acquired or arising, and all proceeds and products thereof. If Borrower shall acquire a commercial tort claim (as defined in the Code) with a potential value in excess of Two Hundred Fifty Thousand Dollars ($250,000), Borrower shall grant to Collateral Agent, for the ratable benefit of the Lenders, a security interest therein and in the proceeds thereof, all upon the terms of this Agreement, with such writing to be in form and substance reasonably satisfactory to Collateral Agent.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Upon payment in full in cash of the Obligations (other than inchoate indemnity obligations) and at such time as the Lenders&#8217; obligation to extend the Term Loan has terminated, Collateral Agent shall, at the sole cost and expense of Borrower, release its Liens in the Collateral.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;5</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.2&#160;&#160;&#160;&#160;Authorization to File Financing Statements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower hereby authorizes Collateral Agent (i) to file financing statements naming Borrower as debtor and indicating as collateral &#8220;all assets&#8221; or like language and&#47;or such other more specific indications as Collateral Agent may deem appropriate and (ii) to make such other filings in the USPTO or other public offices and to take such other action appropriate to establish, perfect, or further protect Collateral Agent&#8217;s security interests in the Collateral, without notice to Borrower. Such financing statements may (i) describe the Collateral as &#8220;all personal property of debtor, whether now owned or hereby acquired&#8221; or &#8220;all assets of debtor, whether now owned or hereby acquired&#8221; or words of similar effect, (ii) describe the Collateral as being of equal or lesser scope or with greater detail, or (iii) contain any information required by part 5 of Article 9 of the Code for the sufficiency or filing office acceptance of such financing statements or amendments, as the case may be. The Borrower also hereby ratifies any and all financing statements or amendments previously filed by Collateral Agent in any jurisdiction of the Borrower described in Section 3(b) of the Perfection Certificate.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.3&#160;&#160;&#160;&#160;Pledge of Shares Collateral</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. If at any time Borrower owns any Shares, Borrower acknowledges that by this Agreement it has, pledged, assigned and granted, and Borrower does hereby pledge, assign and grant, to Collateral Agent, for the ratable benefit of the Lenders, a security interest in all the Shares, together with all proceeds and substitutions thereof, all cash, stock and other moneys and property paid thereon, all rights to subscribe for securities declared or granted in connection therewith, and all other cash and noncash proceeds of the foregoing, as security for the performance of the Obligations. On the Effective Date, or, to the extent not certificated as of the Effective Date, within ten (10) days of the certification of any Shares, the certificate or certificates for the Shares will be delivered to Collateral Agent, accompanied by an instrument of assignment duly executed in blank by Borrower. To the extent required by the terms and conditions governing the Shares, Borrower shall cause the books of each entity whose Shares are part of the Collateral and any transfer agent to reflect the pledge of the Shares and require each Issuer of uncertificated Shares to enter into an agreement granting Collateral Agent Control over the pledged Shares. Borrower will execute and deliver such documents, and take or cause to be taken such actions, as Collateral Agent may reasonably request to perfect or continue the perfection of Collateral Agent&#8217;s security interest in the Shares. Unless an Event of Default shall have occurred and be continuing, Borrower shall be entitled to exercise any voting rights with respect to the Shares and to give consents, waivers and ratifications in respect thereof, provided that no vote shall be cast or consent, waiver or ratification given or action taken which would be inconsistent with any of the terms of this Agreement or which would constitute or create any violation of any of such terms. All such rights to vote and give consents, waivers and ratifications shall terminate upon the occurrence and continuance of an Event of Default.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5. &#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">REPRESENTATIONS AND WARRANTIES</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower represents and warrants to Collateral Agent and the Lenders as follows&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.1&#160;&#160;&#160;&#160;Due Organization, Authorization&#58; Power and Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower and each of its Subsidiaries is duly existing and in good standing as a Registered Organization in its jurisdictions of organization or formation and Borrower and each of its Subsidiaries is qualified and licensed to do business and is in good standing in any jurisdiction in which the conduct of its businesses or its ownership of property requires that it be qualified except where the failure to do so could not reasonably be expected to result in a Material Adverse Effect. In connection with this Agreement, Borrower and each of its Subsidiaries has delivered to Collateral Agent a completed perfection certificate and any updates or supplements thereto on or before the Effective Date (each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Perfection Certificate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; and collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Perfection Certificates</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;). Borrower represents and warrants that all the information set forth on the Perfection Certificates pertaining to Borrower and each of its Subsidiaries is accurate and complete in all material respects as of the date delivered or supplemented (to the extent permitted hereunder).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The execution, delivery and performance by Borrower and each of its Subsidiaries of the Loan Documents to which it is a party have been duly authorized, and do not (i) conflict with any of Borrower&#8217;s or such Subsidiaries&#8217; organizational documents, including its respective Operating Documents, (ii) contravene, conflict with, constitute a default under or violate any material Requirement of Law applicable thereto, (iii) contravene, conflict or violate any applicable order, writ, judgment, injunction, decree, determination or award of any Governmental Authority by which Borrower or such Subsidiary, or any of their property or assets may be bound or affected, (iv) require any action by, filing, registration, or qualification with, or Governmental Approval from, any Governmental Authority (except such Governmental Approvals which have already been obtained and are in full force and effect) or are being obtained pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.1(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, or (v) constitute an event of default under or cause any Lien to arise under or otherwise cause a change under any material agreement by which Borrower or any of such Subsidiaries, or their respective properties, is bound. Neither Borrower nor any of its Subsidiaries is in default under any agreement to which it is a party or by which it or any of its assets is bound in which such default could reasonably be expected to result in a Material Adverse Effect.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;6</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Collateral</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower and each other Loan Party has good title to, have rights in, and the power to transfer each item of the Collateral upon which it purports to grant a Lien under the Loan Documents, free and clear of any and all Liens except Permitted Liens, and neither Borrower nor any other Loan Party has any Deposit Accounts, Securities Accounts, Commodity Accounts or other investment accounts other than the Collateral Accounts or the other investment accounts, if any, described in the Perfection Certificates delivered to Collateral Agent in connection herewith or otherwise with respect of which Borrower or such Subsidiary has given Collateral Agent timely notice pursuant to Section 6.6(a) and to the extent required under this Agreement, taken such actions as are necessary to give Collateral Agent a perfected security interest therein. The Accounts are bona fide, existing obligations of the Account Debtors.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">The security interest granted herein is and shall at all times continue to be a first priority perfected security interest in the Collateral, subject only to Permitted Liens that are permitted by the terms of this Agreement or Requirement of Law to have priority to Collateral Agent&#8217;s Lien.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">On the Effective Date, except as disclosed on the Perfection Certificate (i) the Collateral is not in the possession of any third party bailee, and (ii) no third party bailee possesses components of the Collateral in excess of Five Hundred Thousand Dollars ($500,000.00).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">All Inventory and Equipment of Borrower and its Subsidiaries is in all material respects of good and marketable quality, free from material defects, ordinary wear and tear excepted.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower and each of its Subsidiaries is the sole owner of the Intellectual Property each respectively purports to own, free and clear of all Liens other than Permitted Liens. Except as noted on the Perfection Certificates or disclosed in the next Compliance Certificate delivered after entry of such Material Agreement, neither Borrower nor any of its Subsidiaries is a party to, or is bound by, any Material Agreement, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, that the representation made in this sentence on the Effective Date shall be limited to Material Agreements for which Borrower or any of its Subsidiaries receives revenue or other payments.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.3</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Litigation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Except as disclosed on the Perfection Certificate or otherwise pursuant to Section 6.2(b)(v), there are no actions, suits, arbitrations, investigations, or other proceedings pending or, to the Knowledge of the Responsible Officers, threatened in writing by or against Borrower or any of its Subsidiaries involving more than Two Hundred Fifty Thousand Dollars ($250,000.00) or a claim for infringement of any intellectual property or seeking equitable or extraordinary relief. Except as disclosed on the Perfection Certificate or otherwise pursuant to Section 6.2(b)(v), there are no actions, suits, arbitrations, investigations or proceedings pending or, to the Knowledge of the Responsible Officers, threatened in writing by or against Borrower or any Subsidiaries involving challenges to the validity of the Intellectual Property except as would not reasonably be expected to have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">No Material Adverse Change&#59; Financial Statements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. All consolidated financial statements for Borrower and its Subsidiaries, delivered to Collateral Agent fairly present, in conformity with GAAP, in all material respects the consolidated financial condition of Borrower and its Subsidiaries, and the consolidated results of operations of Borrower and its Subsidiaries. Since the date of the most recent financial statements submitted as required by this Agreement, there has not been a Material Adverse Change.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Solvency. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower and each of its Subsidiaries, when taken as a whole, are Solvent.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Regulatory Compliance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Neither Borrower nor any of its Subsidiaries is required to be registered as an &#8220;investment company&#8221; under the Investment Company Act of 1940, as amended. Neither Borrower nor any of its Subsidiaries is engaged as one of its important activities in extending credit for margin stock (under Regulations X, T and U of the Federal Reserve Board of Governors). Borrower and each of its Subsidiaries has complied in all material respects with the Federal Fair Labor Standards Act. Neither Borrower nor any of its Subsidiaries is a &#8220;holding company&#8221; or an &#8220;affiliate&#8221; of a &#8220;holding company&#8221; or a &#8220;subsidiary company&#8221; of a &#8220;holding company&#8221; as each term is defined and used in the Public Utility Holding Company Act of 2005. Neither Borrower nor any of its Subsidiaries has violated any laws, ordinances or rules, the violation of which could reasonably be expected to result in a Material Adverse Effect. Neither Borrower&#8217;s nor any of its Subsidiaries&#8217; properties or assets has been used by Borrower or such Subsidiary or, to Borrower&#8217;s Knowledge, by previous Persons, in disposing, producing, storing, treating, or transporting any hazardous substance other than in material compliance with applicable laws. Borrower and each of its Subsidiaries has obtained all consents, approvals and authorizations of, made all declarations or </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;7</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">filings with, and given all notices to, all Governmental Authorities that are necessary to continue their respective businesses as currently conducted.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">None of Borrower, any of its Subsidiaries, or to such Person&#8217;s knowledge, any of Borrower&#8217;s or its Subsidiaries&#8217; Affiliates or any of their respective agents acting or benefiting in any capacity in connection with the transactions contemplated by this Agreement is (i) in violation of any Anti-Terrorism Law, (ii) engaging in or conspiring to engage in any transaction that evades or avoids, or has the purpose of evading or avoiding or attempts to violate, any of the prohibitions set forth in any Anti-Terrorism Law, or (iii) is a Blocked Person. None of Borrower, any of its Subsidiaries, or to the Knowledge of Borrower and any of their Affiliates or agents, acting or benefiting in any capacity in connection with the transactions contemplated by this Agreement, (x) conducts any business or engages in making or receiving any contribution of funds, goods or services to or for the benefit of any Blocked Person, or (y) deals in, or otherwise engages in any transaction relating to, any property or interest in property blocked pursuant to Executive Order No. 13224, any similar executive order or other Anti-Terrorism Law.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.7</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Investments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Neither Borrower nor any of its Subsidiaries owns any stock, shares, partnership interests or other equity securities except for Permitted Investments.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Tax Returns and Payments&#59; Pension Contributions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower and each of its Subsidiaries has timely filed all required tax returns and reports, and Borrower and each of its Subsidiaries, has timely paid all foreign, federal, state, and material local taxes, assessments, deposits and contributions owed by Borrower and such Subsidiaries in an amount greater than Fifty Thousand Dollars ($50,000.00), in all jurisdictions in which Borrower or any such Subsidiary is subject to taxes, including the United States, unless such taxes are being contested in accordance with the next sentence. Borrower and each of its Subsidiaries, may defer payment of any contested taxes, provided that Borrower or such Subsidiary in good faith contests its obligation to pay the taxes by appropriate proceedings promptly and diligently instituted and conducted and Borrower maintains adequate reserve therefor on Borrower&#8217;s Books. Neither Borrower nor any of its Subsidiaries is aware of any claims or adjustments proposed for any of Borrower&#8217;s or such Subsidiaries&#8217; prior tax years which could result in additional taxes becoming due and payable by Borrower or its Subsidiaries. Borrower and each of its Subsidiaries have paid all amounts necessary to fund all present pension, profit sharing and deferred compensation plans in accordance with their terms, and neither Borrower nor any of its Subsidiaries have, withdrawn from participation in, and have not permitted partial or complete termination of, or permitted the occurrence of any other event with respect to, any such plan which could reasonably be expected to result in any liability of Borrower or its Subsidiaries, including any liability to the Pension Benefit Guaranty Corporation or its successors or any other Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.9</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Use of Proceeds</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower shall use the proceeds of the Term Loan solely as working capital and to fund its general business requirements in accordance with the provisions of this Agreement, and not for personal, family, household or agricultural purposes or for payment of dividends or other distributions to equity holders of Borrower or any holders of Subordinated Debt.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Full Disclosure</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. No written representation, warranty or other statement of Borrower or any of its Subsidiaries in any certificate or written statement given to Collateral Agent or any Lender, as of the date such representation, warranty, or other statement was made, taken together with all such written certificates and written statements given to Collateral Agent or any Lender, contains any untrue statement of a material fact or omits to state a material fact necessary to make the statements contained in the certificates or statements not misleading (it being recognized that the projections and forecasts provided by Borrower in good faith and based upon reasonable assumptions are not viewed as facts and that actual results during the period or periods covered by such projections and forecasts may differ from the projected or forecasted result&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, on the Effective Date and on the date each Compliance Certificate or Disbursement Letter is delivered to any Lender, Borrower represents and warrants to the Lenders that Borrower&#58; (i) has delivered to Collateral Agent Borrower&#8217;s most recent projections or forecasts in accordance with the requirements set forth in Section 6.2(a)(iii), (ii) reaffirms the accuracy of the projections or forecasts delivered pursuant to sub-clause (i), and (iii) to the best of its Knowledge, no fact or facts exist which, taken together, are reasonably likely to cause Borrower&#8217;s actual financial results to, within six (6) months, deviate materially and adversely from the projections or forecasts delivered pursuant to sub-clause (i)). Furthermore, on the Effective Date and on the date each Compliance Certificate or Disbursement Letter is delivered to any Lender, Borrower represents and warrants to the Lenders that Borrower, to the best of its Knowledge, is not aware of any fact or facts which, taken together, will cause Borrower to receive an opinion from its independent certified public accounting firm with a going concern qualification on Borrower&#8217;s next annual financial statements (as required under </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.2(a)(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">) without factoring in proceeds of any pending Term Loans.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.11</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Definition of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Knowledge</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.&#8221; For purposes of the Loan Documents, whenever a representation or warranty is made to Borrower&#8217;s knowledge or awareness, to the &#8220;best of&#8221; Borrower&#8217;s knowledge, or with a similar </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;8</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">qualification, knowledge or awareness means the actual knowledge, after reasonable investigation, of the Responsible Officers.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.12</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Shares</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. If at any time Borrower owns any Shares, Borrower has full power and authority to create a first lien on the Shares and no disability or contractual obligation exists that would prohibit Borrower from pledging the Shares pursuant to this Agreement. To Borrower&#8217;s Knowledge, there are no subscriptions, warrants, rights of first refusal or other restrictions on transfer relative to, or options exercisable with respect to the Shares. The Shares have been and will be duly authorized and validly issued, and are fully paid and non-assessable. To Borrower&#8217;s Knowledge, the Shares are not the subject of any present or threatened suit, action, arbitration, administrative or other proceeding, and Borrower knows of no reasonable grounds for the institution of any such proceedings.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.13</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Subsidiaries</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. No Subsidiary of Borrower existing as of the Effective Date (i) owns any assets with a value in excess of $1,000, individually or in the aggregate, (ii) owns any Intellectual Property other than, with respect to Codexis Mayflower Holdings, LLC, non-active Intellectual Property, foreign-registered or filed Intellectual Property and United States Copyrights to be transferred to Borrower in accordance with Section 6.14(g), or (iii) conducts any operations or transactions other than those required for liquidation or dissolution of such Subsidiary. </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">AFFIRMATIVE COVENANTS</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower shall, and shall cause each of its Subsidiaries to, do all of the following&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Government Compliance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Maintain its and, subject to Section 7.2, all its Subsidiaries&#8217; legal existence and good standing in their respective jurisdictions of organization and maintain qualification in each jurisdiction in which the failure to so qualify could reasonably be expected to result in a Material Adverse Effect. Comply with all laws, ordinances and regulations to which Borrower or any of its Subsidiaries is subject, the noncompliance with which could reasonably be expected to result in a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Obtain and keep in full force and effect, all of the material Governmental Approvals necessary for the performance by Borrower and its Subsidiaries of their respective businesses and obligations under the Loan Documents and the grant of a security interest to Collateral Agent for the ratable benefit of the Lenders, in all of the Collateral.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Financial Statements, Reports, Certificates&#59; Notices</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Deliver to Collateral Agent&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">as soon as available, but no later than forty-five (45) days after the last day of each fiscal quarter of Borrower, a company prepared consolidated and consolidating balance sheet, income statement and cash flow statement covering the consolidated operations of Borrower and its Subsidiaries for such month certified by a Responsible Officer and in a form reasonably acceptable to Collateral Agent&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">as soon as available, but no later than the earlier of one hundred twenty (120) days after the last day of Borrower&#8217;s fiscal year and within five (5) days of filing with the Securities and Exchange Commission, audited consolidated financial statements prepared under GAAP, consistently applied, together with a report on the financial statements (which report and accompanying financial statements shall (i) not be qualified as to going concern or contain an emphasis of matter paragraph or like statement as to &#8220;going concern&#8221; (an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Unqualified Audit Opinion</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), and (ii) be unqualified as to scope of audit) without factoring in proceeds of any pending Term Loans from an independent certified public accounting firm acceptable to Collateral Agent in its reasonable discretion&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.03pt">as soon as available after approval thereof by Borrower&#8217;s board of directors, but no later than the earlier of ten (10) Business Days after such approval and sixty (60) days after the last day of Borrower&#8217;s fiscal year, Borrower&#8217;s annual (A) financial projections for the entire current fiscal year as approved by Borrower&#8217;s board of directors, which such annual financial projections shall be set forth in a month-by-month format and include separately revenues and costs and include income statement, balance sheet and statement of cash flow (such annual financial projections as originally delivered to Collateral Agent and reasonably acceptable to </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;9</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Collateral Agent are referred to herein as the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Annual Projections</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;&#59; provided that, any revisions of the Annual Projections approved by Borrower&#8217;s board of directors shall be delivered to Collateral Agent no later than seven (7) Business Days after such approval) and (B) budget for the entire current fiscal year (which shall be set forth in a month-by-month format and include separately all major categories of expenses and include income statement, balance sheet and statement of cash flow) as approved by Borrower&#8217;s board of directors&#59; provided that, any revisions to such budget approved by Borrower&#8217;s board of directors shall be delivered to Collateral Agent no later than seven (7) Business Days after such approval&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">within five (5) Business Days, copies of all non-ministerial materials provided to Borrower&#8217;s board of directors in connection with each regularly scheduled quarterly meetings of the board of directors&#59; provided, that Borrower shall not be required to deliver any information (i) that would jeopardize the attorney-client privilege between Borrower and its legal counsel, or (ii) that is highly confidential proprietary information of the Borrower&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">in the event that Borrower becomes subject to the reporting requirements under the Securities Exchange Act of 1934, as amended, within five (5) days of filing, all reports on Form 10-K, 10-Q and 8-K filed with the Securities and Exchange Commission&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(vi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">notice concurrent with the Compliance Certificate required to be delivered pursuant to Section 6.1(b) of any material amendments of or other changes to the capitalization table of Borrower and any amendments to the Operating Documents of Borrower or any of its Subsidiaries, together with any copies reflecting such amendments with respect thereto&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(vii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:18.8pt">as soon as available, but no later than forty-five (45) days after the last day of each fiscal quarter of Borrower, copies of the month end account statements for each Collateral Account maintained by Borrower or its Subsidiaries, which statements may be provided to Collateral Agent by Borrower or directly from the applicable institution(s)&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, screenshots of each Collateral Account maintained by Borrower shall be delivered to Collateral Agent promptly upon Collateral Agent or any Lender&#8217;s written request during the continuation of any Event of Default&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(viii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:16.03pt">prompt delivery of (and in any event within five (5) Business Days after the same are sent or received) copies of all material correspondence, reports, documents and other filings with any Governmental Authority that could reasonably be expected to have a material adverse effect on any of the Governmental Approvals material to Borrower&#8217;s business or otherwise could reasonably be expected to result in a Material Adverse Effect&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ix)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">prompt notice of any event that (A) could reasonably be expected to materially and adversely affect the Borrower&#8217;s Intellectual Property or (B) has had or could reasonably be expected to have a Material Adverse Effect&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(x)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">written notice within twenty (20) Business Days of Borrower&#8217;s creation of a New Subsidiary in accordance with the terms of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">written notice (x) at least ten (10) Business Days prior to Borrower&#8217;s (A) adding any new offices or business locations, including warehouses (unless such new offices or business locations contain less than Five Hundred Thousand Dollars ($500,000.00) in assets or property of Borrower or any of its Subsidiaries), (B) changing its jurisdiction of organization, (C) changing its organizational structure or type, (D) changing its legal name, (E) changing any organizational number (if any) assigned by its jurisdiction of organization, or (F) registering or filing any Intellectual Property with the United States Copyright Office, and (y) concurrently with the delivery of the Compliance Certificates required to be delivered pursuant to Section 6.1(b)(i), of new applications or registrations of any Intellectual Property with the United States Patent and Trademark Officer&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:18.8pt">upon Borrower becoming aware of the existence of any Event of Default or event which, with the giving of notice or passage of time, or both, would constitute an Event of Default, prompt (and in any event within three (3) Business Days) written notice of such occurrence, which such notice shall include a reasonably detailed description of such Event of Default or event which, with the giving of notice or passage of time, or both, would constitute an Event of Default&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xiii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:16.03pt">prompt (and in any event within one (1) day), notice if Borrower or such Subsidiary has Knowledge that Borrower, or any Subsidiary or Affiliate of Borrower, is listed on the OFAC Lists or </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;10</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a) is convicted on, (b) pleads </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">nolo contendere</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> to, (c) is indicted on, or (d) is arraigned and held over on charges involving money laundering or predicate crimes to money laundering&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xiv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:16.57pt">notice of any commercial tort claim with an expected value in excess of Two Hundred Fifty Thousand Dollars ($250,000) and of the general details thereof&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:19.34pt">if Borrower or any of its Subsidiaries is not now a Registered Organization but later becomes one, written notice of such occurrence and information regarding such Person&#8217;s organizational identification number within seven (7) Business Days of receiving such organizational identification number&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xvi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:16.57pt">no later than within seven (7) Business Days after the resignation, termination or change of Borrower&#8217;s external independent certified public accounting firm, written notice thereof along with a brief explanation for such resignation, termination or change, as applicable&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xvii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:13.8pt">no later than seven (7) Business Days after the receipt thereof by Borrower, any reports Borrower receives from its contract manufacturer and&#47; or contract research organization in connection with any material breaches by the Borrower or any material amendments to its existing agreements with such Person to the extent that such amendments would materially impair the perfection or priority of Collateral Agent&#8217;s Lien on the Collateral&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xviii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:11.03pt">promptly upon discovery, written notice of any action or inaction by or on behalf of a Lender (in any capacity) or Collateral Agent (in any capacity) that Borrower believes may be actionable against any Lender or Collateral Agent or a defense to payment of any or all Obligations for any reason&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(xix)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:16.57pt">other information as reasonably requested by Collateral Agent or any Lender (which information must be provided promptly but in any event no later than ten (10) Business Days after being requested, or such later time as Collateral Agent or such Lender may agree).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Notwithstanding the foregoing, documents required to be delivered pursuant to the terms hereof (to the extent any such documents are included in materials otherwise filed with the Securities and Exchange Commission) may be delivered electronically and if so delivered, shall be deemed to have been delivered on the date on which Borrower posts such documents, or provides a link thereto, on Borrower&#8217;s website on the internet at Borrower&#8217;s website address and Borrower notifies Collateral Agent via email of such posting.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Concurrently with the delivery of the financial statements specified in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.2(a)(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> above but no later than forty-five (45) days after the last day of each fiscal quarter of Borrower, deliver to Collateral Agent&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">a duly completed Compliance Certificate signed by a Responsible Officer&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">an updated Perfection Certificate to reflect any amendments, modifications and updates to certain information in the Perfection Certificate after the Effective Date to the extent such amendments, modifications and updates are permitted by one or more specific provisions in this Agreement&#59; in each case, subject to the review and approval of Collateral Agent&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.03pt">copies of any material Governmental Approvals obtained by Borrower or any of its Subsidiaries&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">written notice of the commencement of, and any material development in, the proceedings contemplated by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 5.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">written notice of (i) any litigation or governmental proceedings pending or threatened (in writing) against Borrower or any of its Subsidiaries, which could reasonably be expected to result in damages or costs to Borrower or any of its Subsidiaries of more than Two Hundred Fifty Thousand Dollars ($250,000.00)&#59; and (ii) any actions, suits, arbitrations, investigations or proceedings pending or, to the Knowledge of the Responsible Officers, threatened in writing by or against Borrower or any Subsidiaries involving challenges to the validity of any Intellectual Property necessary for, or used in, the generation of revenues exceeding 5% of Net Product Revenues for the most recently completed twelve month period&#59; </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;11</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(vi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">written notice within ten (10) Business Days of the termination of any Material Agreement&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(vii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:18.8pt">written notice of all returns, recoveries, disputes and claims (including, without limitation, warranty claims) regarding Inventory that involve more than One Hundred Fifty Thousand Dollars ($150,000.00) individually or in the aggregate in any calendar year.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Keep proper, complete and true books of record and account in accordance with GAAP in all material respects. Borrower shall, and shall cause each of its Subsidiaries to, allow, at the sole cost of Borrower (which shall include the reasonable fees and expenses of Collateral Agent&#8217;s auditor), Collateral Agent or any Lender, during regular business hours upon reasonable prior notice (provided that no notice shall be required when an Event of Default has occurred and is continuing), to visit and inspect any of its properties, to examine and make abstracts or copies from any of Borrower&#8217;s Books, and to conduct a collateral audit and analysis of its operations and the Collateral. Such audits shall be conducted no more often than twice every year unless (and more frequently if) an Event of Default has occurred and is continuing. Notwithstanding the foregoing, upon request of any Lender, Borrower agrees to permit such Lender to communicate with Borrower&#8217;s accounting firm with respect to the consolidated financial statements delivered pursuant to this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.3</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Inventory&#59; Returns</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Keep all Inventory in good and marketable condition, free from material defects. Returns and allowances between Borrower, or any of its Subsidiaries, and their respective Account Debtors shall follow Borrower&#8217;s, or such Subsidiary&#8217;s, customary practices as they exist at the Effective Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Taxes&#59; Pensions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Timely file and require each of its Subsidiaries to timely file, all required tax returns and reports and timely pay, and require each of its Subsidiaries to timely pay, all foreign, federal, state, and local taxes, assessments, deposits and contributions owed by Borrower or its Subsidiaries, except as otherwise permitted pursuant to the terms of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 5.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof, and shall deliver to Collateral Agent and each Lender, on demand, appropriate certificates attesting to such payments, and pay all amounts necessary to fund all present pension, profit sharing and deferred compensation plans in accordance with the terms of such plans.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Insurance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Keep Borrower&#8217;s and its Subsidiaries&#8217; business and the Collateral insured for risks and in amounts standard for companies in Borrower&#8217;s and its Subsidiaries&#8217; industry and location and as Collateral Agent may reasonably request, including, but not limited to, D&#38;O insurance reasonably satisfactory to Collateral Agent. Insurance policies shall be in a form, with companies, and in amounts that are reasonably satisfactory to Collateral Agent and Lenders (provided, that Collateral Agent and Lenders acknowledge and agree that the policies of insurance maintained by Borrower and its Subsidiaries as of the Effective Date is acceptable)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.  All property policies shall have a lender&#8217;s loss payable endorsement showing Collateral Agent as lender loss payee and waive subrogation against Collateral Agent, and all liability policies shall show, or have endorsements showing, Collateral Agent, as additional insured. Collateral Agent shall be named as lender loss payee and&#47;or additional insured with respect to any such insurance providing coverage in respect of any Collateral, and each provider of any such insurance shall agree, by endorsement upon the policy or policies issued by it or by independent instruments furnished to Collateral Agent, that it will give Collateral Agent thirty (30) days&#8217; prior written notice before any such policy or policies shall be materially altered or canceled (other than cancellation for non-payment of premiums, for which ten (10) days&#8217; prior written notice shall be required). At Collateral Agent&#8217;s request, Borrower shall deliver certified copies of policies and evidence of all premium payments. Proceeds payable under any policy shall, at Collateral Agent&#8217;s option, be payable to Collateral Agent, for the ratable benefit of the Lenders, on account of the Obligations. Notwithstanding the foregoing, (a) so long as no Event of Default has occurred and is continuing, Borrower shall have the option of applying the proceeds of any casualty policy within 90 days of receipt thereof up to Three Hundred Fifty Thousand Dollars ($350,000.00) with respect to any loss, and not exceeding Three Hundred Fifty Thousand Dollars ($350,000.00), in the aggregate for all losses under all casualty policies in any one year, toward the replacement or repair of destroyed or damaged property&#59; provided that any such replaced or repaired property (i) shall be of equal or like value as the replaced or repaired Collateral and (ii) shall be deemed Collateral in which Collateral Agent has been granted a first priority security interest, and (b) after the occurrence and during the continuance of an Event of Default, all proceeds payable under such casualty policy shall, at the option of Collateral Agent, be payable to Collateral Agent, for the ratable benefit of the Lenders, on account of the Obligations. If Borrower or any of its Subsidiaries fails to obtain insurance as required under this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> or to pay any amount or furnish any required proof of payment to third persons, Collateral Agent and&#47;or any Lender may make (but has no obligation to do so), at Borrower&#8217;s expense, all or part of such payment or obtain such insurance policies required in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, and take any action under the policies Collateral Agent or such Lender deems prudent.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;12</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Operating Accounts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower shall provide Collateral Agent five (5) days&#8217; prior written notice before Borrower or any of its Subsidiaries that is a Loan Party establishes any Collateral Account. In addition, for each Collateral Account that Borrower or any of its Subsidiaries that is a Loan Party at any time maintains, Borrower or such Subsidiary shall cause the applicable bank or financial institution at or with which such Collateral Account is maintained to execute and deliver a Control Agreement or other appropriate instrument with respect to such Collateral Account to perfect Collateral Agent&#8217;s Lien in such Collateral Account in accordance with the terms hereunder prior to the establishment of such Collateral Account, which Control Agreement may not be terminated without prior written consent of Collateral Agent. The provisions of the previous sentence shall not apply to Excluded Accounts.  </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Neither Borrower nor any of its Subsidiaries shall maintain any Collateral Accounts except Collateral Accounts maintained in accordance with </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Furthermore, neither Borrower nor any of its Subsidiaries shall maintain Collateral Accounts at banks or financial institutions that are not reasonably acceptable to Collateral Agent.&#59; provided, that Collateral Agent acknowledges and agrees that the financial institutions with which Borrower and its Subsidiaries maintain Collateral Accounts as of the Effective Date are reasonably acceptable to Collateral Agent.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.7</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Protection of Intellectual Property Rights</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower and each of its Subsidiaries shall&#58; (a)&#160;protect, defend and maintain the validity and enforceability of its Intellectual Property that, in the reasonable business judgment of Borrower, is material to its business&#59; (b) promptly advise Collateral Agent in writing of a challenge to the validity, or material infringement by a third party of its Intellectual Property&#59; and (c) not allow any Intellectual Property material to its business to be abandoned, forfeited or dedicated to the public without Collateral Agent&#8217;s prior written consent&#59; provided, for the avoidance of doubt, Borrower or its Subsidiaries, as applicable, may abandon, forfeit or dedicate to the public any Intellectual Property of such Person in the ordinary course of business that is not material to the Loan Parties&#8217; business. If Borrower or any of its Subsidiaries (i) obtains any patent, registered trademark or servicemark, registered copyright, registered mask work, or any pending application for any of the foregoing, whether as owner, licensee or otherwise, or (ii) applies for any patent or the registration of any trademark or servicemark, then Borrower or such Subsidiary shall provide written notice thereof to Collateral Agent concurrently with the Compliance Certificates required to be delivered pursuant to Section 6.1(b)(i), and shall execute such intellectual property security agreements and other documents and take such other actions as Collateral Agent shall reasonably request in its good faith business judgment to perfect and maintain a first priority perfected security interest in favor of Collateral Agent, for the ratable benefit of the Lenders, in such property. If Borrower or any of its Subsidiaries decides to register any copyrights or mask works in the United States Copyright Office, Borrower or such Subsidiary shall&#58; (x) provide Collateral Agent and each Lender with at least ten (10) days prior written notice of Borrower&#8217;s or such Subsidiary&#8217;s intent to register such copyrights or mask works together with a copy of the application it intends to file with the United States Copyright Office (excluding exhibits thereto)&#59; (y) execute an intellectual property security agreement and such other documents and take such other actions as Collateral Agent may reasonably request in its good faith business judgment to perfect and maintain a first priority perfected security interest in favor of Collateral Agent, for the ratable benefit of the Lenders, in the copyrights or mask works intended to be registered with the United States Copyright Office&#59; and (z) record such intellectual property security agreement with the United States Copyright Office contemporaneously with filing the copyright or mask work application(s) with the United States Copyright Office. Borrower or such Subsidiary shall promptly provide to Collateral Agent and each Lender with evidence of the recording of the intellectual property security agreement necessary for Collateral Agent to perfect and maintain a first priority perfected security interest in such property.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Litigation Cooperation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Commencing on the Effective Date and continuing through the termination of this Agreement, make available to Collateral Agent and the Lenders, without expense to Collateral Agent or the Lenders, Borrower and each of Borrower&#8217;s officers, employees and agents and Borrower&#8217;s Books, to the extent that Collateral Agent or any Lender may reasonably deem them necessary to prosecute or defend any third party suit or proceeding instituted by or against Collateral Agent or any Lender with respect to any Collateral or relating to Borrower.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.9</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Landlord Waivers&#59; Bailee Waivers</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. In the event that Borrower or any of its Subsidiaries, after the Effective Date, intends to add any new offices or business locations where Collateral in excess of Five Hundred Thousand ($500,000.00) will be maintained, including warehouses, or otherwise store any portion of the Collateral with a value in excess of Five Hundred Thousand ($500,000.00) with, or deliver any portion of such Collateral to, a bailee, in each case pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 7.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, then Borrower or such Subsidiary will first be required to receive the written consent of Collateral Agent (which consent Collateral Agent may grant or deny in its reasonable discretion) and, at Collateral Agent&#8217;s election, Borrower or such Subsidiary shall use commercially reasonable efforts to cause </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;13</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">such bailee or landlord, as applicable, to execute and deliver a bailee waiver or landlord waiver, as applicable, in form and substance reasonably satisfactory to Collateral Agent prior to the addition of any new offices or business locations, or any such storage with or delivery to any such bailee, as the case may be.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Creation&#47;Acquisition of Subsidiaries</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. In the event any Borrower or any Subsidiary of any Borrower creates or acquires any Subsidiary after the Effective Date, Borrower or such Subsidiary shall promptly notify Collateral Agent of such creation or acquisition with twenty (20) Business Days thereof, and Borrower or such Subsidiary shall take all actions reasonably requested by Collateral Agent to achieve any of the following with respect to such &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">New Subsidiary</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; (defined as a Subsidiary formed or acquired after the date hereof during the term of this Agreement)&#58; (i) to cause such New Subsidiary to become either a co-Borrower hereunder or, if such New Subsidiary is a Foreign Subsidiary, a secured guarantor with respect to the Obligations&#59; and (ii) to grant and pledge to Collateral Agent a perfected security interest in the Shares of such New Subsidiary.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.11</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Further Assurances</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Execute any further instruments and take further action as Collateral Agent or any Lender reasonably requests to perfect or continue Collateral Agent&#8217;s Lien in the Collateral or to effect the purposes of this Agreement, including without limitation, permit Collateral Agent or any Lender to discuss Borrower&#8217;s financial condition with Borrower&#8217;s accountants.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.12</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Net Product Revenue Covenant.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Borrower shall comply with the financial covenant set forth in Schedule 6.12.  </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.13</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Liquidity Covenant</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The Borrower shall comply with the liquidity covenant set forth on Schedule 6.13.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.14</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:18.5pt">Post-Closing Obligations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower shall deliver updated Perfection Certificates listing all Material Agreements that Borrower or any of its Subsidiaries is a party to or bound by within fourteen (14) days after the Effective Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Borrower shall deliver duly executed Control Agreements with respect to all Collateral Accounts (other than Excluded Accounts) maintained by Borrower or any of its Subsidiaries that is a Loan Party within thirty (30) days after the Effective Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower shall dissolve or cause the dissolution of any of its direct or indirect Subsidiaries that are not Loan Parties and existing on the Effective Date within sixty (60) days after the Effective Date.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Within sixty (60) days of the Effective Date, Borrower shall deliver a bailee waiver executed in favor of Collateral Agent in respect of each third party bailee where Borrower or any Subsidiary maintains Collateral having a book value in excess of Five Hundred Thousand Dollars ($500,000.00)&#59; provided, that Borrower shall have an additional fifteen (15) days to deliver such bailee waivers so long as Borrower is making diligent efforts to obtain such waivers.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Within sixty (60) days of the Effective Date, Borrower shall deliver a landlord&#8217;s consent executed in favor of Collateral Agent in respect of all of Borrower&#8217;s and each Subsidiaries&#8217; leased locations where Collateral is maintained with a book value in excess of Five Hundred Thousand Dollars ($500,000.00) or which leased location is the chief executive office of any Borrower&#59; provided, that Borrower shall have an additional fifteen (15) days to deliver such landlord consents so long as Borrower is making diligent efforts to obtain such consents. </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt">Within thirty (30) days of the Effective Date, Borrower shall deliver loss payable and additional insured clauses or endorsements, in favor of Collateral Agent, for the ratable benefit of the Lenders, as required pursuant to Section 6.5, in form and substance reasonably satisfactory to Collateral Agent.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Within ninety (90) days of the Effective Date, Codexis Mayflower Holdings, LLC, shall assign to Borrower all of its active foreign-registered Intellectual Property and its Intellectual property consisting of Copyrights registered or filed with the United States Copyright Office.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;14</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">NEGATIVE COVENANTS</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower shall not, and shall not permit any of its Subsidiaries to, do any of the following without the prior written consent of the Required Lenders&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.1&#160;&#160;&#160;&#160;Dispositions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Convey, sell, lease, transfer, assign, dispose of (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Transfer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), or permit any of its Subsidiaries to Transfer, all or any part of its business or property (including Intellectual Property), except for Transfers (a) of Inventory in the ordinary course of business, of Intellectual Property in lieu of out-licensing related to Deprioritized Biotherapeutics and Deprioritized Life Science Enzymes, Intellectual Property that is not material to the business of Borrower or its Subsidiaries and that otherwise would lapse, be abandoned, forfeited or dedicated to the public, and Intellectual Property in accordance with the terms of Section 6.7&#59; (b) of worn out, surplus, or obsolete Equipment&#59; (c) in connection with Permitted Liens, Permitted Investments and Permitted Licenses&#59; (d) the use or transfer of money or Cash Equivalents of investments in private stock or short term investments in the ordinary course of business&#59; (e) liquidation or dissolution of a Subsidiary of Borrower to the extent permitted under Section 7.2, (f) to any Loan Party&#59; (g) consisting of the granting of Permitted Liens and the making of Permitted Investments, and (h) other Transfers of assets (other than Intellectual Property of Borrower) having a fair market value of not more than $350,000 per fiscal year.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.2&#160;&#160;&#160;&#160;Changes in Business, Management, Ownership, or Business Locations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. (a) Engage in or permit any of its Subsidiaries to engage in any business other than the businesses engaged in by Borrower as of the Effective Date or any business reasonably related thereto&#59; (b) stop conducting or fail to conduct its business in the ordinary course, (c) liquidate or dissolve&#59; provided, that a Subsidiary of Borrower may liquidate or dissolve if, prior to such dissolution, such Subsidiary shall transfer substantially all of its assets to a Loan Party or (d)(i) any Key Person shall cease to be actively engaged in the management of Borrower unless written notice thereof is provided to Collateral Agent and each Lender within ten (10) days of such cessation and such Key Person is replaced with someone approved by the board of directors of Borrower within sixty (60) days of such cessation (furthermore, if such Key Person is terminated for cause, then within ten (10) Business Days of such termination, Borrower shall cause its remaining Key Persons (or other Responsible Officers designated by Borrower in the event of the departure of each of Stephen Dilly and Sri Ryali) to forthrightly discuss the reasons for the departure of the Key Person with Collateral Agent, except to the extent that such discussion would violate attorney-client privilege or the terms of any confidentiality agreement to which any such Responsible Officer is subject), or (ii) enter into any transaction or series of related transactions in which (A) the stockholders of Borrower who were not stockholders immediately prior to the first such transaction own or Control more than 49% of the voting interests and&#47;or economic interests in the capital stock of Borrower or shall have obtained the power (whether or not exercised) to elect a majority of the members of the board of directors of Borrower immediately after giving effect to such transaction or related series of such transactions or (B) Borrower ceases to own and Control 100% of the ownership interests of a Subsidiary of Borrower.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.3&#160;&#160;&#160;&#160;Mergers or Acquisitions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Merge or consolidate, or permit any of its Subsidiaries to merge or consolidate, with any other Person, or acquire, or permit any of its Subsidiaries to acquire, all or substantially all of the capital stock, shares or property of another Person. A Subsidiary may merge or consolidate into another Subsidiary (provided such surviving Subsidiary is a &#8220;co Borrower&#8221; hereunder or has provided a secured Guaranty of Borrower&#8217;s Obligations hereunder) or with (or into) Borrower provided Borrower is the surviving legal entity, and as long as no Event of Default is occurring prior thereto or arises as a result therefrom.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.4&#160;&#160;&#160;&#160;Indebtedness</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Create, incur, assume, or be liable for any Indebtedness, or permit any Subsidiary to do so, other than Permitted Indebtedness.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.5&#160;&#160;&#160;&#160;Encumbrance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Create, incur, allow, or suffer any Lien on any of its property, or assign or convey any right to receive income, including the sale of any Accounts, or permit any of its Subsidiaries to do so, except for Permitted Liens, or permit any Collateral not to be subject to the first priority security interest granted herein (except for Permitted Liens), or enter into any agreement, document, instrument or other arrangement (except with or in favor of Collateral Agent, for the ratable benefit of the Lenders) with any Person which directly or indirectly prohibits or has the effect of prohibiting Borrower, or any of its Subsidiaries, from assigning, mortgaging, pledging, granting a security interest in or upon, or encumbering any of Borrower&#8217;s or such Subsidiary&#8217;s Intellectual Property, except as is otherwise permitted in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 7.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof and except for &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Permitted Liens</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.6&#160;&#160;&#160;&#160;Maintenance of Collateral Accounts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Maintain any Collateral Account except pursuant to the terms of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;15</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.7&#160;&#160;&#160;&#160;Restricted Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Pay any dividends (other than dividends payable solely in capital stock) or make any distribution or payment in respect of or redeem, retire or purchase any capital stock (other than repurchases pursuant to the terms of employee stock purchase plans, employee restricted stock agreements, stockholder rights plans, director or consultant stock option plans, or similar plans, provided such repurchases do not exceed Two Hundred Fifty Thousand Dollars ($250,000.00) in the aggregate per fiscal year)&#59; provided, that (i) Borrower may convert any of its convertible stock (including warrants) into other stock issued by Borrower pursuant to the terms of such convertible securities or otherwise in exchange thereof, (ii) Borrower may convert Subordinated Debt issued by Borrower into capital stock issued by Borrower pursuant to the terms of such Subordinated Debt and to the extent permitted under the terms of the applicable subordination or intercreditor agreement&#59; and (iii) Borrower may make cash payments in lieu of fractional shares in an aggregate amount not to exceed $10,000.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.8&#160;&#160;&#160;&#160;Investments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Directly or indirectly make any Investment other than Permitted Investments.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.9&#160;&#160;&#160;&#160;Transactions with Affiliates</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Directly or indirectly enter into or permit to exist any material transaction with any Affiliate of Borrower or any of its Subsidiaries, except for (a) transactions that are (i) in the ordinary course of Borrower&#8217;s or such Subsidiary&#8217;s business, (ii) upon fair and reasonable terms (and which are in fact on such terms) that are no less favorable to Borrower or such Subsidiary than would be obtained in an arm&#8217;s length transaction with a non-affiliated Person, and (iii) disclosed to Collateral Agent in writing no later than ten (10) days after becoming effective&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> that such notice is not required for (A) confidential disclosure agreements or non-disclosure agreements, (B) transactions with Borrower&#8217;s board of directors, (C) sale and issuance of equity securities of Borrower for the primary purpose of raising capital, or  (D) director, officer and employee compensation and employment agreements (other than executive officer compensation agreements), benefit plans, including retirement, health and stock option, and indemnification arrangements, (b) ordinary indemnifications of customary covered persons in their capacities as representatives of a Borrower or a Subsidiary, or (c) Subordinated Debt or equity investments by Borrower&#8217;s investors in Borrower or its Subsidiaries.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.10&#160;&#160;&#160;&#160;Subordinated Debt</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. (a) Make or permit any payment on any Subordinated Debt, except under the terms of the subordination, intercreditor, or other similar agreement to which such Subordinated Debt is subject, or (b) amend any provision in any document relating to the Subordinated Debt which would increase the amount thereof, breach the terms of the subordination, intercreditor, or other similar agreement to which such Subordinated Debt is subject, or otherwise adversely affect the subordination of the Subordinated Debt to Obligations owed to the Lenders.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.11&#160;&#160;&#160;&#160;Compliance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Become an &#8220;investment company&#8221; or a company controlled by an &#8220;investment company&#8221;, under the Investment Company Act of 1940, as amended, or undertake as one of its important activities extending credit to purchase or carry margin stock (as defined in Regulation U of the Board of Governors of the Federal Reserve System), or use the proceeds of any Term Loan for that purpose&#59; fail to meet the minimum funding requirements of ERISA, permit a Reportable Event or Prohibited Transaction, as defined in ERISA, to occur&#59; fail to comply with the Federal Fair Labor Standards Act or violate any other law or regulation, if the failure to comply or violation could reasonably be expected to result in a Material Adverse Effect, or permit any of its Subsidiaries to do so&#59; withdraw or permit any Subsidiary to withdraw from participation in, permit partial or complete termination of, or permit the occurrence of any other event with respect to, any present pension, profit sharing and deferred compensation plan which could reasonably be expected to result in any liability of Borrower or any of its Subsidiaries, including any liability to the Pension Benefit Guaranty Corporation or its successors or any other Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.12&#160;&#160;&#160;&#160;Compliance with Anti-Terrorism Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Neither Borrower nor any of its Subsidiaries shall, nor shall Borrower or any of its Subsidiaries permit any Affiliate to, directly or indirectly, knowingly enter into any documents, instruments, agreements or contracts with any Person listed on the OFAC Lists. Neither Borrower nor any of its Subsidiaries shall, nor shall Borrower or any of its Subsidiaries, permit any Affiliate to, directly or indirectly, (i) conduct any business or engage in any transaction or dealing with any Blocked Person, including, without limitation, the making or receiving of any contribution of funds, goods or services to or for the benefit of any Blocked Person, (ii) deal in, or otherwise engage in any transaction relating to, any property or interests in property blocked pursuant to Executive Order No. 13224 or any similar executive order or other Anti-Terrorism Law, or (iii) engage in or conspire to engage in any transaction that evades or avoids, or has the purpose of evading or avoiding, or attempts to violate, any of the prohibitions set forth in Executive Order No. 13224 or other Anti-Terrorism Law.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.13&#160;&#160;&#160;&#160;Material Agreements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Neither Borrower nor any of its Subsidiaries shall (i) amend a Material Agreement in a manner materially adverse to the Collateral Agent or Lenders, or (ii) terminate a Material </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;16</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agreement, in each case, without providing written notice to Collateral Agent within fourteen (14) days of such amendment or termination, as applicable.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.14&#160;&#160;&#160;&#160;Subsidiaries</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. No more than five percent (5%) of the assets or revenues of Borrower and its Subsidiaries on a consolidated basis shall be owned or produced by any Foreign Subsidiary. Borrower shall not directly or indirectly lend to, contribute capital to, or guarantee obligations of, Foreign Subsidiaries in an amount exceeding $250,000.00 in the aggregate. No Subsidiary of Borrower existing on the Effective Date that is not a Loan Party may (i) own any assets with a value in excess of $1,000, individually, or in the aggregate, (ii) own any Intellectual Property, other than, with respect to Codexis Mayflower Holdings, LLC, non-active Intellectual Property, foreign-registered or filed Intellectual Property and United States Copyrights to be transferred to Borrower in accordance with Section 6.14(g), or (iii) conduct any operations or transactions other than those required for liquidation or dissolution of such Subsidiary.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">EVENTS OF DEFAULT</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Any one of the following shall constitute an event of default (an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Event of Default</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) under this Agreement&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.1&#160;&#160;&#160;&#160;Payment Default</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower fails to (a) make any payment of principal or interest on any Term Loan on its due date, or (b) pay any other Obligations within three (3) Business Days after such Obligations are due and payable (which three (3) Business Day grace period shall not apply to payments due on the Maturity Date or the date or acceleration pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.1(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.2&#160;&#160;&#160;&#160;Covenant Default</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower or any of its Subsidiaries fails or neglects to perform any obligation in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Sections 6.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Financial Statements, Reports, Certificates), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Taxes), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Insurance), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Operating Accounts), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.7</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Protection of Intellectual Property Rights),  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Creation&#47;Acquisition of Subsidiaries), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.12</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Financial Covenant), </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.13</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Liquidity Covenant), or </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">6.14</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (Post-Closing Obligations) or Borrower violates any provision in Section 7&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, in the event that Borrower fails to comply with the requirements of the financial covenant set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.12</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, Borrower may cure such breach by means of submitting a new Board-approved financial plan to Collateral Agent under which Borrower is expected to (i)(x) break even on a cash flow basis prior to Maturity Date (which financial plan must be acceptable to Collateral Agent in its sole discretion) and (y) pay all of its Obligations under the Loan Documents (including, without limitation, all payments of interest and principal), no later than thirty (30) days after the occurrence of the breach of the financial covenant and (ii) raise, no later than thirty (30) days after the submission of such financial plan to Collateral Agent, such amount of capital from the sale and issuance of its equity securities having terms acceptable to Required Lenders as required per the new financial plan&#59; provided, that upon such cure a set forth in (i) and (ii) above, the parties shall amend the covenant in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.12</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> in accordance with the new financial plan which amendment must be acceptable to Collateral Agent and shall, among other things, require Borrower to achieve One Hundred percent (100.00%) of the revenue projections set forth in the new financial plan&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided further</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, in the event that Borrower fails to comply with the requirement to deliver an Unqualified Audit Opinion on the financial statements set forth in Section 6.2(a)(ii), Borrower may cure such breach by either (i) raising, no later than sixty (60) days following the date of such audit opinion, an amount of capital, from the sale and issuance of its equity securities or Subordinated Debt, in each case on terms acceptable to Required Lenders, equal to the difference between the Borrower&#8217;s projected twelve months cash burn and the Borrower&#8217;s cash balance at the time of the audit opinion, or (ii) electing to increase the applicable minimum Liquidity Covenant in Section 6.13 to 35% of the aggregate principal amount of Term Loans funded (subject to appropriate increase in the event of Borrower&#8217;s delinquency in payment of its rent or accounts payable to critical vendors) until the issuance of an Unqualified Audit Opinion&#59; or</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Borrower, or any of its Subsidiaries, fails or neglects to perform, keep, or observe any other term, provision, condition, covenant or agreement contained in this Agreement or any Loan Documents, and as to any default (other than those specified in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">) under such other term, provision, condition, covenant or agreement that can be cured, has failed to cure the default within ten (10) days after the occurrence thereof&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, that if the default cannot by its nature be cured within the ten (10) day period or cannot after diligent attempts by Borrower be cured within such ten (10) day period, and such default is likely to be cured within a reasonable time, then Borrower shall have an additional period (which shall not in any case exceed thirty (30) days) to attempt to cure such default, and within such reasonable time period the failure to cure the default shall not be deemed an Event of Default (but no Term Loan shall be made during such cure period)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.3&#160;&#160;&#160;&#160;Material Adverse Change</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. A Material Adverse Change has occurred&#59;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;17</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.4&#160;&#160;&#160;&#160;Attachment&#59; Levy&#59; Restraint on Business</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">(i) The service of process seeking to attach, by trustee or similar process, any funds of Borrower or any of its Subsidiaries or of any entity under control of Borrower or its Subsidiaries on deposit with any institution at which Borrower or any of its Subsidiaries maintains a Collateral Account, or (ii) a notice of lien, levy, or assessment is filed against Borrower or any of its Subsidiaries or their respective assets by any government agency, and the same under subclauses (i) and (ii) hereof are not, within thirty (30) days after the occurrence thereof, discharged or stayed (whether through the posting of a bond or otherwise)&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">(i) any material portion of Borrower&#8217;s or any of its Subsidiaries&#8217; assets is attached, seized, levied on, or comes into possession of a trustee or receiver, or (ii) any court order enjoins, restrains, or prevents Borrower or any of its Subsidiaries from conducting any part of its business&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.5&#160;&#160;&#160;&#160;Insolvency</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. (a) Borrower or any of its Subsidiaries is or becomes Insolvent&#59; (b) Borrower or any of its Subsidiaries begins an Insolvency Proceeding&#59; or (c) an Insolvency Proceeding is begun against Borrower or any of its Subsidiaries and not dismissed or stayed within forty-five (45) days (but no Term Loan shall be extended while Borrower or any Subsidiary is Insolvent and&#47;or until any Insolvency Proceeding is dismissed)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.6&#160;&#160;&#160;&#160;Other Agreements</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. There is (a) a default in any agreement to which Borrower or any of its Subsidiaries is a party with a third party or parties (i) resulting in a right by such third party or parties, whether or not exercised, to accelerate the maturity of any Indebtedness in an amount in excess of Five Hundred Thousand Dollars ($500,000.00) or (ii) that could reasonably be expected to result in a Material Adverse Effect&#59; provided, however, that the Event of Default under this Section 8.6(a)(ii) caused by the occurrence of a default under such other agreement shall be cured or waived for purposes of this Agreement upon Collateral Agent receiving written notice from the party asserting cure or waiver of the default under such other agreement, if at the time of such cure or waiver under such other agreement (x) Collateral Agent has not declared an Event of Default under this Agreement and&#47;or exercised any rights with respect thereto&#59; (y) any such cure or waiver does not result in an Event of Default under any other provision of this Agreement or any other Loan Document&#59; and (z) in connection with any such cure or waiver under such other agreement, the terms of any agreement with such third party are not modified or amended in any manner which could in the good faith business judgment of Collateral be materially less advantageous to the Borrower or applicable Subsidiary&#59; (b) any default by Borrower or any Subsidiary under a Material Agreement that permits the counterparty thereto to accelerate the payments owed thereunder&#59; or (c) a revocation of a Material Agreement to the extent such revocation would materially adversely impair Collateral Agent&#8217;s ability to exercise its rights and remedies under this Agreement or would materially impair the perfection or priority of Collateral Agent&#8217;s Lien on the Collateral.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.7&#160;&#160;&#160;&#160;Judgments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. (a) One or more judgments, orders, or decrees for the payment of money in an amount, individually or in the aggregate, of at least Seven Hundred Fifty Thousand Dollars ($750,000.00) (not covered by independent third party insurance) shall be rendered against Borrower or any of its Subsidiaries and shall remain unsatisfied, unvacated, or unstayed for a period of thirty (30) days after the entry thereof or (b) any judgments, orders or decrees rendered against Borrower that could reasonably be expected to have a Material Adverse Effect&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.8&#160;&#160;&#160;&#160;Misrepresentations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower or any of its Subsidiaries or any Person acting for Borrower or any of its Subsidiaries makes any representation, warranty, or other statement now or later in this Agreement, any Loan Document or in any writing delivered to Collateral Agent and&#47;or Lenders or to induce Collateral Agent and&#47;or the Lenders to enter this Agreement or any Loan Document, and such representation, warranty, or other statement, when taken as a whole, is incorrect in any material respect when made&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.9&#160;&#160;&#160;&#160;Subordinated Debt</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. A default or breach occurs under any agreement between Borrower or any of its Subsidiaries and any creditor of Borrower or any of its Subsidiaries that signed a subordination, intercreditor, or other similar agreement with Collateral Agent or the Lenders, or any creditor that has signed such an agreement with Collateral Agent or the Lenders breaches any terms of such agreement&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.10&#160;&#160;&#160;&#160;Guaranty</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. (a) Any Guaranty terminates or ceases for any reason to be in full force and effect&#59; (b) any Guarantor does not perform any obligation or covenant under any Guaranty&#59; (c) any circumstance described in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> occurs with respect to any Guarantor&#59; or (d) a Material Adverse Change with respect to any Guarantor&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.11&#160;&#160;&#160;&#160;Governmental Approvals&#59; FDA Action</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. (a) Any Governmental Approval shall have been revoked, rescinded, suspended, modified in an adverse manner, or not renewed in the ordinary course for a full term and such revocation, rescission, suspension, modification or non-renewal has resulted in or could reasonably be </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;18</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">expected to result in a Material Adverse Effect&#59; or (b)(i) the FDA, DOJ, or other Governmental Authority initiates a Regulatory Action or any other enforcement action against Borrower or any of its Subsidiaries or any supplier of Borrower or any of its Subsidiaries that causes Borrower or any of its Subsidiaries to recall, withdraw, remove or discontinue manufacturing, distributing, and&#47;or marketing any of its products and such enforcement action could reasonably be expected to result in a Material Adverse Effect, even if such action is based on previously disclosed conduct&#59; (ii) the FDA issues a warning letter or Regulatory Action to Borrower or any of its Subsidiaries with respect to any of its activities or products which could reasonably be expected to result in a Material Adverse Effect&#59; (iii) Borrower or any of its Subsidiaries conducts a mandatory or voluntary recall which could reasonably be expected to result in liability and expense to Borrower or any of its Subsidiaries of Seven Hundred Fifty Thousand Dollars ($750,000.00) or more&#59; (iv) Borrower or any of its Subsidiaries enters into a settlement agreement with the FDA, DOJ, or other Governmental Authority that results in aggregate liability as to any single or related series of transactions, incidents or conditions, of Seven Hundred Fifty Thousand Dollars ($750,000.00) or more, or that could reasonably be expected to result in a Material Adverse Effect even if such settlement agreement is based on previously disclosed conduct&#59; or (v) Borrower or any of its Subsidiaries fails to remediate observations identified in an FDA Form 483 notice of inspection observation to Collateral Agent&#8217;s reasonable satisfaction within six (6) months of receipt&#59; or (vi) the FDA revokes any authorization or permission granted under any Registration, or Borrower or any of its Subsidiaries withdraws any Registration, that could reasonably be expected to result in a Material Adverse Change.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.12&#160;&#160;&#160;&#160;Lien Priority&#59; Intellectual Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Any Lien created hereunder or by any other Loan Document shall at any time fail to constitute a valid and perfected Lien on any of the Collateral purported to be secured thereby, subject to no prior or equal Lien, other than Permitted Liens arising as a matter of applicable law. Any Intellectual Property material to Borrower&#8217;s business shall cease to be validly owned or licensed by Borrower free and clear of any Liens other than Permitted Liens, or the Borrower or any of its Subsidiaries is prohibited, banned, enjoined, restrained or prevented from developing, manufacturing or commercializing any product as a result of an infringement or other violation of any such Intellectual Property.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.13&#160;&#160;&#160;&#160;Delisting</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The shares of common stock of Borrower are delisted from the primary stock exchange on which they are traded after their initial public offering and such delisting results in such shares not being listed immediately on any other nationally recognized stock exchange in the United States having listing standards at least as restrictive as the primary stock exchange on which such shares were traded after their initial public offering.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.14&#160;&#160;&#160;&#160;Stock Price Decline</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. The price as of the shares of common stock of Borrower listed on the primary stock exchange on which they are listed decreases by 95% or more in the aggregate (and after taking into account any stock splits and stock combinations) from the closing price on the Effective Date, and remains at such decreased level for a period of thirty consecutive calendar days.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">RIGHTS AND REMEDIES</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.1&#160;&#160;&#160;&#160;Rights and Remedies</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Upon the occurrence and during the continuance of an Event of Default, Collateral Agent may, without notice or demand, do any or all of the following&#58; (i) deliver notice of the Event of Default to Borrower, (ii) by notice to Borrower declare all Obligations immediately due and payable (but if an Event of Default described in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 8.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> occurs all Obligations shall be immediately due and payable without any action by Collateral Agent or the Lenders)&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, all obligations, if any, of the Lenders to advance money or extend credit for Borrower&#8217;s benefit under this Agreement or under any other agreement between Borrower and Collateral Agent and&#47;or the Lenders shall be immediately terminated without any action by Collateral Agent or the Lenders.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Without limiting the rights of Collateral Agent and the Lenders set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.1(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> above, upon the occurrence and during the continuance of an Event of Default, Collateral Agent shall have the right, without notice or demand, to do any or all of the following&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">engage such industry, workout, liquidation, and other such consultants as it may elect, and the reasonable fees and expenses thereof shall become part of the Obligations&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">give written notice to Borrower to not dispose of, conceal, transfer, sell, or encumber any or all of the Collateral (including cash) without Collateral Agent&#8217;s prior written consent, even if such disposition would otherwise be permitted hereunder in the ordinary course of business absent an Event of Default. Any such disposition, concealment, transfer, or sale after the giving of such notice shall constitute a wrongful </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;19</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">conversion of the Collateral. Collateral Agent may obtain a temporary restraining order, injunction, or other equitable relief, without bond, to enforce Borrower&#8217;s obligation to refrain from so impairing the Collateral&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.03pt">foreclose upon and&#47;or sell or otherwise liquidate all or any portion of the Collateral&#59;</font></div><div style="margin-bottom:12pt;text-indent:144pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">to the extent that notice of a particular disposition may be required under the UCC, the notice shall be commercially reasonable if given at least ten (10) days prior to the disposition, unless a shorter notice period is commercially reasonable under the circumstances. Once notice is given of the date after which a private disposition may occur, the notice shall remain in effect regardless of the period of time between the notice date and the ultimate disposition, unless and until the notice is revoked by Collateral Agent in writing&#59;</font></div><div style="margin-bottom:12pt;text-indent:144pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Collateral Agent may sufficiently advertise dispositions of Collateral through publications or media of general business circulation&#59; may contact other persons, whether or not in the same business as Borrower, for expressions of interest in acquiring all or any portion of the Collateral&#59; may publicly advertise the Collateral for sale by type, providing further details that Collateral Agent may have readily available only to prospective purchasers who make direct inquiry&#59; may require potential purchasers to execute confidentiality agreements&#59; and may require potential purchasers to post deposits and&#47;or to otherwise demonstrate their financial ability and legal eligibility to perform upon any bid&#59;</font></div><div style="margin-bottom:12pt;text-indent:144pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">the Collateral may be disposed of in such lots as Collateral Agent may elect. Collateral Agent may adjourn any public or private sale to a different time or place without notice or publication of such adjournment, and may adjourn any sale either before or after offers are received. Collateral Agent (i) may disclaim disposition warranties, including warranties of title, infringement, possession, quiet enjoyment, merchantability, or other like warranties, whether express or implied&#59; (ii) may dispose of assets in wholesale rather than retail markets&#59; (iii) may dispose of Collateral by utilizing Internet sites that provide for the auction of assets of the types of Collateral so offered or that generally match buyers and sellers of assets&#59; (iv) may require the purchaser at any foreclosure sale to indemnify Collateral Agent and other parties against damages incurred in connection with their removal or possession of the Collateral, to require such purchaser to maintain insurance in connection therewith, or both&#59; and (v) shall not be obligated to, and may rely upon a buyer to, obtain any third-party consents for access to Collateral or to obtain governmental or third party consents for the collection or disposition of Collateral to be collected or disposed of&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">apply to the Obligations any (a) balances and deposits of Borrower that Collateral Agent or any Lender holds or controls, or (b) any amount held or controlled by Collateral Agent or any Lender owing to or for the credit or the account of Borrower&#59; and&#47;or</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">commence and prosecute an Insolvency Proceeding or consent to Borrower commencing any Insolvency Proceeding.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Without limiting the rights of Collateral Agent and the Lenders set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Sections 9.1(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and (b) above, upon the occurrence and during the continuance of an Event of Default, Collateral Agent shall have the right, without notice or demand, to do any or all of the following&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">settle or adjust disputes and claims directly with Account Debtors for amounts on terms and in any order that Collateral Agent considers advisable, notify any Person owing Borrower money of Collateral Agent&#8217;s security interest in such funds, and verify the amount of such account&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">make any payments and do any acts it considers necessary or reasonable to protect the Collateral and&#47;or its security interest in the Collateral. Borrower shall assemble the Collateral if Collateral Agent requests and make it available in a location as Collateral Agent reasonably designates. Collateral Agent may enter premises where the Collateral is located, take and maintain possession of any part of the Collateral, and pay, purchase, contest, or compromise any Lien which appears to be prior or superior to its security interest and pay all expenses incurred. Borrower grants Collateral Agent a license to enter and occupy any of its premises, without charge, to exercise any of Collateral Agent&#8217;s rights or remedies&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.03pt">ship, reclaim, recover, store, finish, maintain, repair, prepare for sale, and&#47;or advertise for sale, the Collateral. Collateral Agent is hereby granted a nonexclusive, royalty free license or other right to use, without charge, Borrower&#8217;s and each of its Subsidiaries&#8217; labels, Patents, Copyrights, mask works, rights of use of any name, trade secrets, trade names, Trademarks, service marks, and advertising matter, or any similar property as it pertains to the Collateral, in completing production of, advertising for sale, and selling any Collateral </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;20</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">and, in connection with Collateral Agent&#8217;s exercise of its rights under this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, Borrower&#8217;s and each of its Subsidiaries&#8217; rights under all licenses and all franchise agreements inure to Collateral Agent, for the benefit of the Lenders&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">place a &#8220;hold&#8221; on any account maintained with Collateral Agent or the Lenders and&#47;or deliver a notice of exclusive control, any entitlement order, or other directions or instructions pursuant to any Control Agreement or similar agreements providing control of any Collateral&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">demand and receive possession of Borrower&#8217;s Books&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(vi)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">appoint a receiver to seize, manage and realize upon any of the Collateral, and such receiver shall have any right and authority as any competent court will grant or authorize in accordance with any applicable law, including any power or authority to manage the business of Borrower or any of its Subsidiaries. Borrower hereby irrevocably consents to and waives any right to object to or otherwise contest the appointment of a receiver as provided above. Borrower (i) grants such waiver and consent knowingly after having discussed the implications thereof with counsel, (ii) acknowledges that (A) the uncontested right to have a receiver appointed for the foregoing purposes is considered essential by Collateral Agent in connection with the enforcement of its rights and remedies hereunder and under the other Loan Documents and (B) the availability of such appointment as a remedy under the foregoing circumstances was a material factor in inducing Lenders to extend the Term Loans, and (iii) agrees to enter into any and all stipulations in any legal actions, or agreements or other instruments in connection with the foregoing, and to cooperate fully with Lenders and Collateral Agent in connection with the assumption and exercise of control by any receiver&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(vii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:18.8pt">subject to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.1(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, exercise all rights and remedies available to Collateral Agent and each Lender under the Loan Documents or at law or equity, including all remedies provided under the Code (including disposal of the Collateral pursuant to the terms thereof).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">With respect to a security interest in any Shares&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Collateral Agent may cause any Issuer to register the ownership of its Shares in the name of Collateral Agent or of Collateral Agent&#8217;s nominee or transferee. Such registration shall be deemed a registration for the purpose of facilitating Collateral Agent&#8217;s preservation of rights, and not a disposition or strict foreclosure, unless and until all requirements of Section 9-610 or Section 9-620 of the UCC are satisfied&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">upon written notice to the applicable Borrower and Issuer, whether or not the Shares are registered in the name of Collateral Agent or its nominee, Collateral Agent (or Collateral Agent&#8217;s nominee if so registered) may exercise any or all of any Borrower&#8217;s rights arising from ownership of such Shares, pursuant to the irrevocable proxy granted in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.1(d)(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> of this Agreement or any other proxy or as otherwise permitted under applicable law. Without limiting the foregoing, Collateral Agent or its nominee may (a) cast any votes in any matter, (b) take actions by written consent in any matter, (c) receive distributions, and (d) otherwise exercise or waive such Borrower&#8217;s rights in all respects. Upon further written notice to such Borrower and Issuer, Collateral Agent or its nominee may terminate the exercise of such voting rights and likewise reinstate them from time to time&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.03pt">Borrower acknowledges that although the Shares may be securities for the purpose of applicable securities laws, as of the Effective Date, none of the Shares have been registered for public sale pursuant to applicable securities laws. Borrower acknowledges and agrees that (a) although a disposition of such Shares absent such a registration may result in prices and other terms less favorable than if such sale were a sale made absent such restrictions, Collateral Agent shall be under no obligation to delay a sale of any of the Shares for the period of time necessary to permit an Issuer or Borrower to register such securities for public sale under the Securities Act of 1933, as amended, or under applicable state securities laws, even if the Issuer or Borrower would agree to do so, (b) Collateral Agent may restrict such sale to purchasers who will represent and agree that such purchaser is purchasing for its own account, for investment, and not with a view to the distribution or sale of such Shares or part thereof, and (c) Collateral Agent may take such other actions as Collateral Agent deems appropriate to assure that the sale is undertaken in compliance with all applicable securities laws&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">Borrower is aware that the staff of the Securities and Exchange Commission have issued various No-Action Letters that describe procedures which, in the view of which staff, permit a foreclosure sale of securities to occur in a manner that is public for purposes of Part 6 of Article 9 of the UCC, yet not public for purposes of Section 4(2) of the Securities Act. Borrower agrees that a foreclosure sale conducted in conformity with the principles set forth in such No-Action Letters (a) shall be considered to be a &#8220;public disposition&#8221; </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;21</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">for purposes of Section 9-610(c) of the UCC&#59; (b) shall be considered commercially reasonable notwithstanding that Collateral Agent has not registered or sought to register the interests under the Securities Act, even if such Borrower or the applicable Issuer would agree to pay all costs of the registration process&#59; and (c) shall not be considered to be commercially unreasonable on account of such procedures&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(v)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Borrower hereby irrevocably appoints Collateral Agent as the proxy and attorney-in-fact of such Borrower, with full authority in the place and stead of Borrower, and in the name of Borrower or otherwise, to cast the votes and otherwise exercise all rights arising from the ownership of the Shares as provided in this Agreement upon and during the continuation of an Event of Default. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">THIS APPOINTMENT IS IRREVOCABLE AND COUPLED WITH AN INTEREST AND SHALL BE EFFECTIVE UNTIL ALL OBLIGATIONS (OTHER THAN INCHOATE INDEMNITY OBLIGATIONS) HAVE BEEN FULLY REPAID AND PERFORMED AND COLLATERAL AGENT&#8217;S AND THE LENDERS&#8217; OBLIGATION TO PROVIDE THE TERM LOAN TERMINATES</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. No separate proxy shall be necessary to evidence such proxy rights, but if there is such a proxy, Collateral Agent&#8217;s rights thereunder are cumulative with those in this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">As provided in Annex I, Collateral Agent shall have the exclusive right to exercise any and all remedies referenced in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Additionally, notwithstanding any other provision of this Agreement, Collateral Agent may take any action that Collateral Agent deems appropriate to address an Exigent Circumstance, even if such action would ordinarily require the consent of the Required Lenders or of all Lenders under other Sections of this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.2&#160;&#160;&#160;&#160;Power of Attorney</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower hereby irrevocably appoints Collateral Agent as its lawful attorney in fact, exercisable upon the occurrence and during the continuance of an Event of Default, to&#58; (a) endorse Borrower&#8217;s or any of its Subsidiaries&#8217; name on any checks or other forms of payment or security&#59; (b) sign Borrower&#8217;s or any of its Subsidiaries&#8217; name on any invoice or bill of lading for any Account or drafts against Account Debtors&#59; (c) settle and adjust disputes and claims about the Accounts directly with Account Debtors, for amounts and on terms Collateral Agent determines reasonable&#59; (d) make, settle, and adjust all claims under Borrower&#8217;s insurance policies&#59; (e) pay, contest or settle any Lien, charge, encumbrance, security interest, and adverse claim in or to the Collateral, or any judgment based thereon, or otherwise take any action to terminate or discharge the same&#59; and (f) transfer the Collateral into the name of Collateral Agent or a third party as the Code or any applicable law permits. Borrower hereby appoints Collateral Agent as its lawful attorney in fact to sign Borrower&#8217;s or any of its Subsidiaries&#8217; name on any documents necessary to perfect or continue the perfection of Collateral Agent&#8217;s security interest in the Collateral regardless of whether an Event of Default has occurred until all Obligations (other than inchoate indemnity obligations) have been satisfied in full and Collateral Agent and the Lenders are under no further obligation to extend the Term Loan hereunder. Collateral Agent&#8217;s foregoing appointment as Borrower&#8217;s or any of its Subsidiaries&#8217; attorney in fact, and all of Collateral Agent&#8217;s rights and powers, coupled with an interest, are irrevocable until all Obligations (other than inchoate indemnity obligations) have been fully repaid and performed and Collateral Agent&#8217;s and the Lenders&#8217; obligation to provide the Term Loan terminates.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.3&#160;&#160;&#160;&#160;Protective Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. If Borrower or any of its Subsidiaries fail to obtain the insurance called for by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> or fails to pay any premium thereon or fails to pay any other amount which Borrower or any of its Subsidiaries is obligated to pay under this Agreement or any other Loan Document, Collateral Agent may obtain such insurance or make such payment, and all amounts so paid by Collateral Agent are Lenders&#8217; Expenses and immediately due and payable, bearing interest at the Default Rate, and secured by the Collateral. Collateral Agent will make reasonable efforts to provide Borrower with notice of Collateral Agent obtaining such insurance or making such payment at the time it is obtained or paid or within a reasonable time thereafter. No such payments by Collateral Agent are deemed an agreement to make similar payments in the future or Collateral Agent&#8217;s waiver of any Event of Default.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.4&#160;&#160;&#160;&#160;Application of Payments and Proceeds</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Notwithstanding anything to the contrary contained in this Agreement, upon the occurrence and during the continuance of an Event of Default, (a) Borrower irrevocably waives the right to direct the application of any and all payments at any time or times thereafter received by Collateral Agent from or on behalf of Borrower or any of its Subsidiaries of all or any part of the Obligations, and, as between Borrower on the one hand and Collateral Agent and Lenders on the other, Collateral Agent shall have the continuing and exclusive right to apply and to reapply any and all payments received against the Obligations in such manner as Collateral Agent may deem advisable notwithstanding any previous application by Collateral Agent, and (b) the proceeds of any sale of, or other realization upon all or any part of the Collateral shall be applied&#58; first, to the Lenders&#8217; Expenses&#59; second, to accrued and unpaid interest and any make-whole amount due on the Obligations (including any amounts which, but for the provisions of the United States Bankruptcy Code, would have accrued on such amounts)&#59; third, to any applicable Prepayment Fee or Final Fee&#59; fourth, to the principal amount of the Obligations outstanding&#59; and fifth, to any other indebtedness or obligations of Borrower owing to Collateral Agent or any Lender under the Loan Documents. Any balance remaining shall be delivered to Borrower or to whoever may </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;22</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">be lawfully entitled to receive such balance or as a court of competent jurisdiction may direct. In carrying out the foregoing, (x) amounts received shall be applied in the numerical order provided until exhausted prior to the application to the next succeeding category, and (y) each of the Persons entitled to receive a payment in any particular category shall receive an amount equal to its </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">pro rata</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> share of amounts available to be applied pursuant thereto for such category. Any reference in this Agreement to an allocation between or sharing by the Lenders of any right, interest or obligation &#8220;ratably,&#8221; &#8220;proportionally&#8221; or in similar terms shall refer to Pro Rata Share unless expressly provided otherwise. Collateral Agent, or if applicable, each Lender, shall promptly remit to the other Lenders such sums as may be necessary to ensure the ratable repayment of each Lender&#8217;s portion of any Term Loan and the ratable distribution of interest, fees and reimbursements paid or made by Borrower. Notwithstanding the foregoing, a Lender receiving a scheduled payment shall not be responsible for determining whether the other Lenders also received their scheduled payment on such date&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, if it is later determined that a Lender received more than its ratable share of scheduled payments made on any date or dates, then such Lender shall remit to Collateral Agent or other Lenders such sums as may be necessary to ensure the ratable payment of such scheduled payments, as instructed by Collateral Agent. If any payment or distribution of any kind or character, whether in cash, properties or securities, shall be received by a Lender in excess of its ratable share, then the portion of such payment or distribution in excess of such Lender&#8217;s ratable share shall be received by such Lender in trust for and shall be promptly paid over to the other Lender for application to the payments of amounts due on the other Lenders&#8217; claims. To the extent any payment for the account of Borrower is required to be returned as a voidable transfer or otherwise, the Lenders shall contribute to one another as is necessary to ensure that such return of payment is on a pro rata basis. If any Lender shall obtain possession of any Collateral, it shall hold such Collateral for itself and as agent and bailee for Collateral Agent and other Lenders for purposes of perfecting Collateral Agent&#8217;s security interest therein.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.5&#160;&#160;&#160;&#160;Liability for Collateral</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. So long as Collateral Agent and the Lenders comply with reasonable lending practices regarding the safekeeping of the Collateral in the possession or under the control of Collateral Agent and the Lenders, Collateral Agent and the Lenders shall not be liable or responsible for&#58; (a) the safekeeping of the Collateral&#59; (b) any loss or damage to the Collateral&#59; (c) any diminution in the value of the Collateral&#59; or (d) any act or default of any carrier, warehouseman, bailee, or other Person. Borrower bears all risk of loss, damage or destruction of the Collateral.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.6&#160;&#160;&#160;&#160;No Waiver&#59; Remedies Cumulative</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Failure by Collateral Agent or any Lender, at any time or times, to require strict performance by Borrower of any provision of this Agreement or any other Loan Document shall not waive, affect, or diminish any right of Collateral Agent or any Lender thereafter to demand strict performance and compliance herewith or therewith. No waiver hereunder shall be effective unless signed by Collateral Agent and the Required Lenders and then is only effective for the specific instance and purpose for which it is given. The rights and remedies of Collateral Agent and the Lenders under this Agreement and the other Loan Documents are cumulative. Collateral Agent and the Lenders have all rights and remedies provided under the Code, any applicable law, by law, or in equity. The exercise by Collateral Agent or any Lender of one right or remedy is not an election, and Collateral Agent&#8217;s or any Lender&#8217;s waiver of any Event of Default is not a continuing waiver. Collateral Agent&#8217;s or any Lender&#8217;s delay in exercising any remedy is not a waiver, election, or acquiescence.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.7&#160;&#160;&#160;&#160;Demand Waiver</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower waives, to the fullest extent permitted by law, demand, notice of default or dishonor, notice of payment and nonpayment, notice of any default, nonpayment at maturity, release, compromise, settlement, extension, or renewal of accounts, documents, instruments, chattel paper, and guarantees held by Collateral Agent or any Lender on which Borrower or any Subsidiary is liable.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.8&#160;&#160;&#160;&#160;Standards</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Where not expressly founded upon specific rights of Collateral Agent as a secured party under the UCC, the provisions of this Article 9 shall be interpreted as the agreement of Collateral Agent, Lenders and Borrower as to the standards measuring the fulfillment of the duties of Collateral Agent as a secured party. Borrower warrants, represents, and agrees that none of the provisions of this Article are &#8220;manifestly unreasonable&#8221; for the purposes of Section 9-603 of Article 9 of the UCC. Nothing contained in this Article shall be construed to grant any rights to Borrower or to impose any duties on Collateral Agent that would not have been granted or imposed by this Agreement or by applicable law in the absence of this Article.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">NOTICES</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">All notices, consents, requests, approvals, demands, or other communication (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Communication</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) by any party to this Agreement or any other Loan Document must be in writing and shall be deemed to have been validly served, given, or delivered&#58; (a) upon the earlier of actual receipt and three (3) Business Days after deposit in the U.S. mail, first class, registered or certified mail return receipt requested, with proper postage prepaid&#59; (b) upon transmission, when sent by facsimile or email transmission with confirmation&#59; (c) one (1) Business Day after deposit </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;23</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">with a reputable overnight courier with all charges prepaid and required verification of delivery&#59; or (d) when delivered, if hand delivered by messenger, all of which shall be addressed to the party to be notified and sent to the address, facsimile number, or email address indicated below. Any of Collateral Agent, Lender or Borrower may change its mailing address or facsimile number by giving the other party written notice thereof in accordance with the terms of this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 10</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">If to Borrower&#58;&#160;&#160;&#160;&#160;CODEXIS, INC.<br>200 Penobscot Drive<br>Redwood City, CA 94063<br>Attn&#58; Sri Ryali<br>Email&#58; &#91;*&#93;</font></div><div style="padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">with a copy (which shall</font></div><div style="padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">not constitute notice) to&#58;&#160;&#160;&#160;&#160;<br>Sidley Austin LLP<br>1001 Page Mill Road, Building 1 Palo Alto, CA 94304</font></div><div style="margin-bottom:12pt;padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;Attn&#58; Cynthia Bai<br>Email&#58; &#91;*&#93;</font></div><div style="margin-bottom:12pt;padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">If to Collateral Agent&#58;&#160;&#160;&#160;&#160;INNOVATUS LIFE SCIENCES<br>LENDING FUND I, LP<br>777 Third Avenue, 25</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">th</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> Floor<br>New York, NY 10017<br>Attn&#58; Claes Ekstrom, Webb George<br>Email&#58; &#91;*&#93;</font></div><div style="padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">with a copy (which shall</font></div><div style="margin-bottom:12pt;padding-left:180pt;text-indent:-108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">not constitute notice) to&#58;&#160;&#160;&#160;&#160;Cooley LLP<br>3 Embarcadero Center, 20</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">th</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> Floor<br>San Francisco, CA 94111<br>Attn&#58; Mischi a Marca<br>Fax&#58; (415) 693 2222<br>Email&#58; &#91;*&#93;</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">11.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">CHOICE OF LAW, VENUE AND JURY TRIAL WAIVER</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">11.1&#160;&#160;&#160;&#160;Waiver of Jury Trial</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. EACH OF BORROWER, COLLATERAL AGENT AND LENDERS UNCONDITIONALLY WAIVES ANY AND ALL RIGHT TO A JURY TRIAL OF ANY CLAIM OR CAUSE OF ACTION (WHETHER BASED ON CONTRACT, TORT OR OTHERWISE) BASED UPON OR ARISING OUT OF THIS AGREEMENT, ANY OF THE OTHER LOAN DOCUMENTS, ANY OF THE INDEBTEDNESS SECURED HEREBY, ANY DEALINGS AMONG BORROWER, COLLATERAL AGENT AND&#47;OR LENDERS RELATING TO THE SUBJECT MATTER OF THIS TRANSACTION OR ANY RELATED TRANSACTIONS, AND&#47;OR THE RELATIONSHIP THAT IS BEING ESTABLISHED AMONG BORROWER, COLLATERAL AGENT AND&#47;OR LENDERS. THE SCOPE OF THIS WAIVER IS INTENDED TO BE ALL ENCOMPASSING OF ANY AND ALL DISPUTES THAT MAY BE FILED IN ANY COURT. THIS WAIVER IS IRREVOCABLE. THIS WAIVER MAY NOT BE MODIFIED EITHER ORALLY OR IN WRITING. THE WAIVER ALSO SHALL APPLY TO ANY SUBSEQUENT AMENDMENTS, RENEWALS, SUPPLEMENTS OR MODIFICATIONS TO THIS AGREEMENT, ANY OTHER LOAN DOCUMENTS, OR TO ANY OTHER DOCUMENTS OR AGREEMENTS RELATING TO THIS TRANSACTION OR ANY RELATED TRANSACTION. THIS AGREEMENT MAY BE FILED AS A WRITTEN CONSENT TO A TRIAL BY THE COURT.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">11.2&#160;&#160;&#160;&#160;Governing Law and Jurisdiction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Governing Law. THIS AGREEMENT, THE OTHER LOAN DOCUMENTS (EXCLUDING THOSE LOAN DOCUMENTS THAT BY THEIR OWN TERMS ARE EXPRESSLY GOVERNED BY THE LAWS OF ANOTHER JURISDICTION) AND THE RIGHTS AND OBLIGATIONS OF THE PARTIES HEREUNDER AND THEREUNDER AND ALL MATTERS ARISING FROM OR RELATED THERETO SHALL IN ALL RESPECTS BE GOVERNED BY AND CONSTRUED IN ACCORDANCE WITH, THE INTERNAL LAWS OF THE STATE OF NEW YORK (WITHOUT REGARD TO THE CONFLICT OF LAWS PRINCIPLES THAT WOULD RESULT IN THE APPLICATION OF ANY LAWS OTHER THAN THE LAWS OF THE STATE OF NEW YORK), INCLUDING ALL MATTERS OF CONSTRUCTION, VALIDITY </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;24</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">AND PERFORMANCE, REGARDLESS OF THE LOCATION OF THE COLLATERAL, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">PROVIDED</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">HOWEVER</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, THAT IF THE LAWS OF ANY JURISDICTION OTHER THAN NEW YORK SHALL GOVERN IN REGARD TO THE VALIDITY, PERFECTION OR EFFECT OF PERFECTION OF ANY LIEN OR IN REGARD TO PROCEDURAL MATTERS AFFECTING ENFORCEMENT OF ANY LIENS IN COLLATERAL, SUCH LAWS OF SUCH OTHER JURISDICTIONS SHALL CONTINUE TO APPLY TO THAT EXTENT.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Submission to Jurisdiction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Any legal action or proceeding with respect to the Loan Documents shall be brought exclusively in the courts of the State of New York located in the City of New York, Borough of Manhattan, or of the United States of America for the Southern District of New York and, by execution and delivery of this Agreement, Borrower hereby accepts for itself and in respect of its Property, generally and unconditionally, the jurisdiction of the aforesaid courts. Notwithstanding the foregoing, Collateral Agent and Lenders shall have the right to bring any action or proceeding against Borrower (or any property of Borrower) in the court of any other jurisdiction Collateral Agent or Lenders deem necessary or appropriate in order to realize on the Collateral or other security for the Obligations. The parties hereto hereby irrevocably waive any objection, including any objection to the laying of venue or based on the grounds of forum non conveniens, that any of them may now or hereafter have to the bringing of any such action or proceeding in such jurisdictions.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt;text-decoration:underline">Service of Process</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower irrevocably waives personal service of any and all legal process, summons, notices and other documents and other service of process of any kind and consents to such service in any suit, action or proceeding brought in the United States of America with respect to or otherwise arising out of or in connection with any Loan Document by any means permitted by applicable requirements of law, including by the mailing thereof (by registered or certified mail, postage prepaid) to Codexis, Inc., attention&#58; Sri Ryali, located at 200 Penobscot Drive, Redwood City, California 94063, and each Borrower hereby appoints Codexis, Inc. as its agent to receive such service of process. Borrower agrees that a final judgment in any such action or proceeding shall be conclusive and may be enforced in other jurisdictions by suit on the judgment or in any other manner provided by law.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt;text-decoration:underline">Non-exclusive Jurisdiction</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Nothing contained in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 11.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> shall affect the right of Collateral Agent or Lenders to serve process in any other manner permitted by applicable requirements of law or commence legal proceedings or otherwise proceed against Borrower in any other jurisdiction.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12. &#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">GENERAL PROVISIONS</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.1&#160;&#160;&#160;&#160;Successors and Assigns</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. This Agreement binds and is for the benefit of the successors and permitted assigns of each party. Borrower may not transfer, pledge or assign this Agreement or any rights or obligations under it without Collateral Agent&#8217;s prior written consent (which may be granted or withheld in Collateral Agent&#8217;s discretion, subject to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">). The Lenders have the right, without the consent of or notice to Borrower, to sell, transfer, assign, pledge, negotiate, or grant participation in (any such sale, transfer, assignment, negotiation, or grant of a participation, a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Lender Transfer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) all or any part of, or any interest in, the Lenders&#8217; obligations, rights, and benefits under this Agreement and the other Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.2&#160;&#160;&#160;&#160;Indemnification</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower agrees to indemnify, defend and hold Collateral Agent and the Lenders and their respective directors, officers, employees, consultants, agents, attorneys, or any other Person affiliated with or representing Collateral Agent or the Lenders (each, an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Indemnified Person</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) harmless against&#58; (a) all obligations, demands, claims, and liabilities (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) asserted by any other party in connection with&#59; related to&#59; following&#59; or arising from, out of or under, the transactions contemplated by the Loan Documents&#59; and (b) all losses or Lenders&#8217; Expenses incurred, or paid by Indemnified Person in connection with&#59; related to&#59; following&#59; or arising from, out of or under, the transactions contemplated by the Loan Documents between Collateral Agent, and&#47;or the Lenders and Borrower (including reasonable attorneys&#8217; fees and expenses), except for Claims and&#47;or losses directly caused by such Indemnified Person&#8217;s gross negligence or willful misconduct (as determined in a final, non-appealable judgment of a court of competent jurisdiction). Borrower hereby further indemnifies, defends and holds each Indemnified Person harmless from and against any and all liabilities, obligations, losses, damages, penalties, actions, judgments, suits, claims, costs, expenses and disbursements of any kind or nature whatsoever (including the fees and disbursements of counsel for such Indemnified Person) in connection with any investigative, response, remedial, administrative or judicial matter or proceeding, whether or not such Indemnified Person shall be designated a party thereto and including any such proceeding initiated by or on behalf of Borrower, and the reasonable expenses of investigation by engineers, environmental consultants and similar technical personnel and any commission, fee or compensation claimed by any broker (other than any broker retained by Collateral Agent or Lenders) asserting any right to payment for the transactions contemplated hereby which may be imposed on, incurred by or asserted against such Indemnified Person as a result of or in connection with the transactions contemplated hereby and the use or intended use of the proceeds of the loan proceeds except </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;25</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">for liabilities, obligations, losses, damages, penalties, actions, judgments, suits, claims, costs, expenses and disbursements directly caused by such Indemnified Person&#8217;s gross negligence or willful misconduct (as determined in a final, non-appealable judgment of a court of competent jurisdiction).</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.3&#160;&#160;&#160;&#160;Severability of Provisions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Each provision of this Agreement is severable from every other provision in determining the enforceability of any provision.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Notwithstanding the foregoing, this Agreement and any other Loan Document may be amended by Collateral Agent without the need to obtain the consent of Borrower or any Lender if such amendment is delivered in order to correct or cure (x) ambiguities, errors, omissions, or defects, (y) to effect administrative changes of a technical or immaterial nature or (z) incorrect cross references or similar inaccuracies in this Agreement or the applicable Loan Document.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.4&#160;&#160;&#160;&#160;Interest Rate Limitation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Notwithstanding anything herein to the contrary, if at any time the interest rate applicable to any Loan, together with all fees, charges and other amounts that are treated as interest on such Loan under Applicable Law (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">charges</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;), shall exceed the maximum lawful rate (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Maximum Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) that may be contracted for, charged, taken, received or reserved by the Lender holding such Loan in accordance with Applicable Law, the rate of interest payable in respect of such Loan hereunder, together with all charges payable in respect thereof, shall be limited to the Maximum Rate. To the extent lawful, the interest and charges that would have been paid in respect of such Loan but were not paid as a result of the operation of this Section shall be cumulated and the interest and charges payable to such Lender in respect of other Loans or periods shall be increased (but not above the amount collectible at the Maximum Rate therefor). Any amount collected by such Lender that exceeds the maximum amount collectible at the Maximum Rate shall be applied to the reduction of the principal balance of such Loan or refunded to Borrower so that at no time shall the interest and charges paid or payable in respect of such Loan exceed the maximum amount collectible at the Maximum Rate.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.5&#160;&#160;&#160;&#160;Correction of Loan Documents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Collateral Agent may correct patent errors and fill in any blanks in this Agreement and the other Loan Documents consistent with the agreement of the parties, and shall provide Borrower copies of any such amended Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.6&#160;&#160;&#160;&#160;Amendments in Writing&#59; Integration</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">No amendment, modification, termination or waiver of any provision of this Agreement or any other Loan Document, no approval or consent thereunder, or any consent to any departure by Borrower or any of its Subsidiaries therefrom, shall in any event be effective unless the same shall be in writing and signed by Borrower, Collateral Agent and the Required Lenders provided that&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">no such amendment, waiver or other modification that would have the effect of increasing or reducing a Lender&#8217;s Term Loan Commitment or Commitment Percentage shall be effective as to such Lender without such Lender&#8217;s written consent&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.8pt">no such amendment, waiver or modification that would affect the rights and duties of Collateral Agent shall be effective without Collateral Agent&#8217;s written consent or signature&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.03pt">no such amendment, waiver or other modification shall, unless signed by all the Lenders directly affected thereby, (A) reduce the principal of, rate of interest on or any fees with respect to any Term Loan or forgive any principal, interest (other than default interest) or fees (other than late charges) with respect to any Term Loan&#59; (B) postpone the date fixed for, or waive, any payment of principal of any Term Loan or of interest on any Term Loan (other than default interest) or any fees provided for hereunder (other than late charges or for any termination of any commitment)&#59; (C) change the definition of the term &#8220;Required Lenders&#8221; or the percentage of Lenders which shall be required for the Lenders to take any action hereunder&#59; (D) release all or substantially all, or any material portion, of the Collateral, authorize Borrower to sell or otherwise dispose of all or substantially all, or any material portion, of the Collateral or release any Guarantor of all or any portion of the Obligations or its guaranty obligations with respect thereto, except, in each case with respect to this clause (D), as otherwise may be expressly permitted under this Agreement or the other Loan Documents (including in connection with any disposition permitted hereunder)&#59; (E) amend, waive or otherwise modify this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> or the definitions of the terms used in this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> insofar as the definitions affect the substance of this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#59; (F) consent to the assignment, delegation or other transfer by Borrower of any of its rights and obligations under any Loan Document or release Borrower of its payment obligations under any Loan Document, except, in each case with respect to this clause (F), pursuant to a merger or consolidation permitted pursuant to this Agreement&#59; (G) amend any of the provisions of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> or amend any of the definitions of Pro Rata Share, Term Loan Commitment, Commitment Percentage or that provide for the Lenders to receive their Pro Rata Shares of any fees, payments, setoffs or proceeds of Collateral hereunder&#59; (H) subordinate the Liens granted in favor of Collateral Agent securing the Obligations&#59; or </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;26</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(I) amend any of the provisions of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. It is hereby understood and agreed that all Lenders shall be deemed directly affected by an amendment, waiver or other modification of the type described in the preceding clauses (C), (D), (E), (F), (G) and (H) of the immediately preceding sentence&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:108pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(iv)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">Borrower&#8217;s consent shall not be required as to any amendment or waiver to Annex I, except as to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 9</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> thereof.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Other than as expressly provided for in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.5(a)(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> and (iii), Collateral Agent may, if requested by the Required Lenders, from time to time designate covenants in this Agreement less restrictive by notification to a representative of Borrower.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">This Agreement and the Loan Documents represent the entire agreement about this subject matter and supersede prior negotiations or agreements with respect to such subject matter. All prior agreements, understandings, representations, warranties, and negotiations between the parties about the subject matter of this Agreement and the Loan Documents merge into this Agreement and the Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.7&#160;&#160;&#160;&#160;Counterparts</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. This Agreement may be executed in any number of counterparts and by different parties on separate counterparts, each of which, when executed and delivered, is an original, and all taken together, constitute one Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.8&#160;&#160;&#160;&#160;Survival</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. All covenants, representations and warranties made in this Agreement continue in full force and effect until this Agreement has terminated pursuant to its terms and all Obligations (other than inchoate indemnity obligations and any other obligations which, by their terms, are to survive the termination of this Agreement) have been satisfied. The obligation of Borrower in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> to indemnify each Lender and Collateral Agent, as well as the confidentiality provisions in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> below, shall survive until the statute of limitations with respect to such claim or cause of action shall have run.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.9&#160;&#160;&#160;&#160;Confidentiality</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. In handling any confidential information each of Borrower, the Lenders and Collateral Agent shall exercise the same degree of care that it exercises for their own proprietary information, but disclosure of information may be made&#58; (a) subject to the terms and conditions of this Agreement, to the Lenders&#8217; and Collateral Agent&#8217;s Subsidiaries or Affiliates&#59; (b) to prospective transferees (other than those identified in (a) above) or purchasers of any interest in the Term Loan (</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, the Lenders and Collateral Agent shall, except upon the occurrence and during the continuance of an Event of Default, obtain such prospective transferee&#8217;s or purchaser&#8217;s agreement to the terms of this provision or to similar confidentiality terms)&#59; (c) as required by law, regulation, subpoena, or other order&#59; (d) to Lenders&#8217; or Collateral Agent&#8217;s regulators (including any self-regulatory authority) or as otherwise required in connection with an examination or audit&#59; (e) in exercising remedies under the Loan Documents or in connection with any suit, action or proceeding relating to this Agreement, any other Loan Document or the enforcement of rights hereunder or the defense of any claim, suit, action or proceeding&#59; (f) with the consent of the Borrower, and (g) to third party service providers of the Lenders and&#47;or Collateral Agent so long as such service providers have executed a confidentiality agreement or have agreed to similar confidentiality terms with the Lenders and Collateral Agent with terms no less restrictive than those contained herein. Confidential information does not include information that either&#58; (i) is in the public domain or in the Lenders&#8217; and&#47;or Collateral Agent&#8217;s possession when disclosed to the Lenders and&#47;or Collateral Agent, or becomes part of the public domain after disclosure to the Lenders and&#47;or Collateral Agent at no fault of the Lenders or Collateral Agent&#59; or (ii) is disclosed to the Lenders and&#47;or Collateral Agent by a third party, if the Lenders and&#47;or Collateral Agent does not know that the third party is prohibited from disclosing the information&#59; or (iii) is independently developed by such Person other than as a result of a breach of this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Collateral Agent and the Lenders may use confidential information for any purpose, including, without limitation, for the development of client databases, reporting purposes, and market analysis. The provisions of the immediately preceding sentence shall survive the termination of this Agreement. The agreements provided under this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> supersede all prior agreements, understanding, representations, warranties, and negotiations between the parties about the subject matter of this </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.8</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.10&#160;&#160;&#160;&#160;Limitations of Damages</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. In no event shall Lenders or Collateral Agent ever be liable to Borrower, nor shall Borrower be liable to Collateral Agent or any Lender for (i) special, consequential, incidental, or other such damages arising from or related to the Term Loans or any of the Loan Documents, or (ii) punitive, exemplary, or other such damages arising from or related to the Term Loans or any of the Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.11&#160;&#160;&#160;&#160;Waiver as to Assignees</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. To the fullest extent permitted by Section 9-403 of the UCC, Borrower agrees not to assert against an assignee of any of the Obligations any claim or defense that they may have against Collateral Agent or a Lender.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;27</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.12&#160;&#160;&#160;&#160;Right of Set Off</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower hereby grants to Collateral Agent and to each Lender, a lien, security interest and right of set off as security for all Obligations to Collateral Agent and each Lender hereunder, whether now existing or hereafter arising upon and against all deposits, credits, collateral and property, now or hereafter in the possession, custody, safekeeping or control of Collateral Agent or the Lenders or any entity under the control of Collateral Agent or the Lenders (including a Collateral Agent affiliate) or in transit to any of them. At any time after the occurrence and during the continuance of an Event of Default, without demand or notice, Collateral Agent or the Lenders may set off the same or any part thereof and apply the same to any liability or obligation of Borrower even though unmatured and regardless of the adequacy of any other collateral securing the Obligations. ANY AND ALL RIGHTS TO REQUIRE COLLATERAL AGENT TO EXERCISE ITS RIGHTS OR REMEDIES WITH RESPECT TO ANY OTHER COLLATERAL WHICH SECURES THE OBLIGATIONS, PRIOR TO EXERCISING ITS RIGHT OF SETOFF WITH RESPECT TO SUCH DEPOSITS, CREDITS OR OTHER PROPERTY OF BORROWER ARE HEREBY KNOWINGLY, VOLUNTARILY AND IRREVOCABLY WAIVED BY BORROWER.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.13&#160;&#160;&#160;&#160;Cooperation of Borrower</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. If necessary, Borrower agrees to (i) execute any documents reasonably required to effectuate and acknowledge each assignment of a Term Loan Commitment or Term Loan to an assignee in accordance with </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, (ii) make Borrower&#8217;s management available to meet with Collateral Agent and prospective participants and assignees of Term Loan Commitments (which meetings shall be conducted no more often than twice every twelve months unless an Event of Default has occurred and is continuing), and (iii) assist Collateral Agent or the Lenders in the preparation of information relating to the financial affairs of Borrower as any prospective participant or assignee of a Term Loan Commitment or Term Loan reasonably may request. Subject to the provisions of </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.9</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, Borrower authorizes each Lender to disclose to any prospective participant or assignee of a Term Loan Commitment, any and all information in such Lender&#8217;s possession concerning Borrower and its financial affairs which has been delivered to such Lender by or on behalf of Borrower pursuant to this Agreement, or which has been delivered to such Lender by or on behalf of Borrower in connection with such Lender&#8217;s credit evaluation of Borrower prior to entering into this Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.14&#160;&#160;&#160;&#160;Public Announcement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Borrower hereby agrees that Collateral Agent and each Lender may make a public announcement of the transactions contemplated by this Agreement, and may publicize the same in marketing materials, newspapers and other publications, and otherwise, and in connection therewith may use Borrower&#8217;s name, tradenames and logos.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.15&#160;&#160;&#160;&#160;Collateral Agent and Lender Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Collateral Agent and each Lender hereby agree to the terms and conditions set forth on </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Annex I</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> attached hereto. Borrower acknowledges and agrees to the terms and conditions set forth on </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Annex I</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> attached hereto.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12.16&#160;&#160;&#160;&#160;Borrower Liability</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. Any Borrower may, acting singly, request Credit Extensions hereunder. Each Borrower hereby appoints the other as agent for the other for all purposes hereunder, including with respect to requesting Credit Extensions hereunder. Each Borrower hereunder shall be jointly and severally obligated to repay all Credit Extensions made hereunder, regardless of which Borrower actually receives said Credit Extension, as if each Borrower hereunder directly received all Credit Extensions. Each Borrower waives (a) any suretyship defenses available to it under the Code or any other applicable law, and (b) any right to require Collateral Agent or any Lender to&#58; (i) proceed against any Borrower or any other person&#59; (ii) proceed against or exhaust any security&#59; or (iii) pursue any other remedy. Collateral Agent and or any Lender may exercise or not exercise any right or remedy it has against any Borrower or any security it holds (including the right to foreclose by judicial or non-judicial sale) without affecting any Borrower&#8217;s liability. Notwithstanding any other provision of this Agreement or other related document, each Borrower (i) irrevocably waives all rights that it may have at law or in equity subrogating Borrower to the rights of Collateral Agent and the Lenders under this Agreement or otherwise allowing Borrower to benefit from, or to participate in, any security for the Obligations and (ii) waives, until the Obligations have been paid in full, all rights that it may have at law or in equity to seek contribution, indemnification or any other form of reimbursement from any other Borrower, or any other Person now or hereafter primarily or secondarily liable for any of the Obligations, for any payment made by Borrower with respect to the Obligations in connection with this Agreement or otherwise. Any agreement providing for indemnification, reimbursement or any other arrangement prohibited or limited under this Section shall be null and void to the extent of such prohibition or limitation. If any payment is made to a Borrower in contravention of this Section, such Borrower shall hold such payment in trust for Collateral Agent and the Lenders and such payment shall be promptly delivered to Collateral Agent for application to the Obligations, whether matured or unmatured.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">13.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">DEFINITIONS</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">As used in this Agreement, the following terms have the following meanings&#58;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;28</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Account</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any &#8220;account&#8221; as defined in the Code.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Account Debtor</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any &#8220;account debtor&#8221; as defined in the Code with such additions to such term as may hereafter be made under the Code.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Affiliate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means, with respect to a specified Person, another Person that, directly or indirectly through one or more intermediaries, (i) Controls or is Controlled by, or is under common Control with, the Person specified, (ii) owns, is owned by, or is under common ownership with, the Person specified, as to more than ten percent (10%) of voting equity or of equity value, or (iii) has a Managing Role with respect to the Person specified or with another Person that is an Affiliate of the specified Person by operation of subsection (i) of this definition.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortization Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the earliest of (i) an Event of Default occurring and (ii)(x) March 1, 2027, or (y) if the I&#47;O Extension Event occurs, March 1, 2028.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Annual Projections</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is defined in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.2(a)(iii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Anti-Terrorism Laws</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are any laws relating to terrorism or money laundering, including without limitation Executive Order No. 13224 (effective September 24, 2001), the USA PATRIOT Act, the laws comprising or implementing the Bank Secrecy Act, and the laws administered by OFAC.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Basic Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is with respect to each Term Loan, the floating per annum rate of interest (based on a year of three hundred sixty five (365) days) equal to the sum of (a) the greater of (i) Prime Rate, subject to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.3(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, and (ii) seven and one half percent (7.50%), plus (b) three and one quarter percent (3.25%).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Blocked Person</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any Person&#58; (a) listed in the annex to, or is otherwise subject to the provisions of, Executive Order No. 13224, (b) a Person owned or controlled by, or acting for or on behalf of, any Person that is listed in the annex to, or is otherwise subject to the provisions of, Executive Order No. 13224, (c) a Person with which any Lender is prohibited from dealing or otherwise engaging in any transaction by any Anti-Terrorism Law, (d) a Person that commits, threatens or conspires to commit or supports &#8220;terrorism&#8221; as defined in Executive Order No. 13224, or (e) a Person that is named a &#8220;specially designated national&#8221; or &#8220;blocked person&#8221; on the most current list published by OFAC or other similar list.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Borrower&#8217;s Books</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are Borrower&#8217;s or any of its Subsidiaries&#8217; books and records including ledgers, federal, and state tax returns, records regarding Borrower&#8217;s or its Subsidiaries&#8217; assets or liabilities, the Collateral, business operations or financial condition, and all computer programs or storage or any equipment containing such information.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Business Day</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any day that is not a Saturday, Sunday or a day on which Collateral Agent is closed.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Cash Equivalents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are (a) marketable direct obligations issued or unconditionally guaranteed by the United States or any agency or any State thereof having maturities of not more than one (1) year from the date of acquisition&#59; (b) commercial paper maturing no more than one (1) year after its creation and having the highest rating from either Standard &#38; Poor&#8217;s Ratings Group or Moody&#8217;s Investors Service, Inc., and (c) certificates of deposit maturing no more than one (1) year after issue provided that the account in which any such certificate of deposit is maintained is subject to a Control Agreement in favor of Collateral Agent.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Code</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the Uniform Commercial Code, as the same may, from time to time, be enacted and in effect in the State of New York&#59; provided, that, to the extent that the Code is used to define any term herein or in any Loan Document and such term is defined differently in different Articles or Divisions of the Code, the definition of such term contained in Article or Division 9 shall govern&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">further</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, that in the event that, by reason of mandatory provisions of law, any or all of the attachment, perfection, or priority of, or remedies with respect to, Collateral Agent&#8217;s Lien on any Collateral is governed by the Uniform Commercial Code in effect in a jurisdiction other than the State of New York, the term &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Code</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; shall mean the Uniform Commercial Code as enacted and in effect in such other jurisdiction solely for purposes of the provisions thereof relating to such attachment, perfection, priority, or remedies and for purposes of definitions relating to such provisions.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Collateral</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any and all properties, rights and assets of Borrower described on </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit A</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Collateral Account</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any Deposit Account, Securities Account, or Commodity Account, or any other bank account maintained by Borrower or any Subsidiary at any time.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;29</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Commitment Percentage</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Schedule 1.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, as amended from time to time.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Commodity Account</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any &#8220;commodity account&#8221; as defined in the Code with such additions to such term as may hereafter be made under the Code, except for deposit accounts exclusively used for payroll, payroll taxes and other employee wage and benefit payments to or for the benefit of Borrower&#8217;s, or any of its Subsidiaries&#8217;, employees and identified to Collateral Agent by Borrower as such in the Perfection Certificate.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Compliance Certificate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is that certain certificate in substantially the form attached hereto as </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit C</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Contingent Obligation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, for any Person, any direct or indirect liability, contingent or not, of that Person for (a) any indebtedness, lease, dividend, letter of credit or other obligation of another Person such as an obligation directly or indirectly guaranteed, endorsed, co made, discounted or sold with recourse by that Person, or for which that Person is directly or indirectly liable&#59; (b) any obligations for undrawn letters of credit for the account of that Person&#59; and (c) all obligations from any interest rate, currency or commodity swap agreement, interest rate cap or collar agreement, or other agreement or arrangement designated to protect a Person against fluctuation in interest rates, currency exchange rates or commodity prices&#59; but &#8220;Contingent Obligation&#8221; does not include endorsements in the ordinary course of business. The amount of a Contingent Obligation is the stated or determined amount of the primary obligation for which the Contingent Obligation is made or, if not determinable, the maximum reasonably anticipated liability for it determined by the Person in good faith&#59; but the amount may not exceed the maximum of the obligations under any guarantee or other support arrangement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Control</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means the possession, directly or indirectly, of the power to direct or cause the direction of the management or policies of a Person, whether through the ability to exercise voting power, by contract or otherwise. &#8220;Controlling&#8221; and &#8220;Controlled&#8221; have meanings analogous thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Control Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any control agreement entered into among the depository institution at which Borrower or any of its Subsidiaries maintains a Deposit Account or the securities intermediary or commodity intermediary at which Borrower or any of its Subsidiaries maintains a Securities Account or a Commodity Account, Borrower and such Subsidiary, and Collateral Agent pursuant to which Collateral Agent, for the benefit of the Lenders, obtains &#8220;control&#8221; (within the meaning of the Code) over such Deposit Account, Securities Account, or Commodity Account.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Copyrights</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are any and all copyright rights, copyright applications, copyright registrations and like protections in each work of authorship and derivative work thereof, whether published or unpublished and whether or not the same also constitutes a trade secret.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Credit Extension</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means an advance of funds under a Term Loan.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Default</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means an event that with the passage of time could result in an Event of Default.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Deposit Account</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any &#8220;deposit account&#8221; as defined in the Code with such additions to such term as may hereafter be made.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Deprioritized Biotherapeutics</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are &#91;*&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Deprioritized Life Science Enzymes</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are &#91;*&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Disbursement Letter</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is that certain form attached hereto as </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit B-2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">DOJ</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means the U.S. Department of Justice or any successor thereto or any other comparable Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Dollars</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">,&#8221; &#8220;dollars&#8221; and &#8220;$&#8221; each mean lawful money of the United States.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Equipment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is all &#8220;equipment&#8221; as defined in the Code with such additions to such term as may hereafter be made, and includes without limitation all machinery, fixtures, and vehicles (including motor vehicles and trailers) not held for sale or lease, and any interest in any of the foregoing.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">ERISA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the Employee Retirement Income Security Act of 1974, as amended, and its regulations.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;30</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Excluded Account</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means (i) deposit accounts exclusively used for payroll, payroll taxes and other employee wage and benefit payments to or for the benefit of Borrower&#8217;s, or any of its Subsidiaries&#8217; employees, (ii) collateral accounts permitted under clause (l) of the definition of Permitted Liens, in each case identified to Collateral Agent by Borrower as such, and (iii) any other deposit account of Borrower or any Subsidiary which Collateral Agent agrees in its discretion may be deemed an &#8220;Excluded Account&#8221;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Exigent Circumstance</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means any event or circumstance that, in the reasonable judgment of Collateral Agent, imminently threatens the ability of Collateral Agent to realize upon all or any material portion of the Collateral, such as, without limitation, fraudulent removal, concealment, or abscondment thereof, destruction or material waste thereof, or failure of Borrower or any of its Subsidiaries after reasonable demand to maintain or reinstate adequate casualty insurance coverage, or which, in the judgment of Collateral Agent, could reasonably be expected to result in a material diminution in value of the Collateral.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Facility Fee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is a fee due on each Funding Date, an amount equal to 1.00% of the amount of Term Loan funded on such Funding Date, payable to the Lenders in accordance with their respective Pro Rata Shares.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">FDA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means the U.S. Food and Drug Administration or any successor thereto or any other comparable Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Final Fee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is a payment (in addition to and not a substitution for the regular monthly payments of principal or accrued interest or any other fee payable hereunder) due on the earliest to occur of (a) the Maturity Date, or (b) the acceleration of any Term Loan, or (c) the prepayment of the Term Loan pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.2(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> or </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, in each case equal to three percent (3.00%) </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">multiplied</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> by the aggregate amount of the Term Loans funded under this Agreement, payable to Lenders in accordance with their respective Pro Rata Shares.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Foreign Subsidiary</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is a Subsidiary that is not an entity organized under the laws of the United States or any state thereof.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Funding Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any date on which the Term Loan is made to or on account of Borrower, which shall be a Business Day.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">GAAP</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is generally accepted accounting principles set forth in the opinions and pronouncements of the Accounting Principles Board of the American Institute of Certified Public Accountants and statements and pronouncements of the Financial Accounting Standards Board or in such other statements by such other Person as may be approved by a significant segment of the accounting profession in the United States, which are applicable to the circumstances as of the date of determination.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">General Intangibles</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are all &#8220;general intangibles&#8221; as defined in the Code in effect on the date hereof with such additions to such term as may hereafter be made, and includes without limitation, all copyright rights, copyright applications, copyright registrations and like protections in each work of authorship and derivative work, whether published or unpublished, any patents, trademarks, service marks and, to the extent permitted under applicable law, any applications therefor, whether registered or not, any trade secret rights, including any rights to unpatented inventions, payment intangibles, royalties, contract rights, goodwill, franchise agreements, purchase orders, customer lists, route lists, telephone numbers, domain names, claims, income and other tax refunds, security and other deposits, options to purchase or sell real or personal property, rights in all litigation presently or hereafter pending (whether in contract, tort or otherwise), insurance policies (including without limitation key man, property damage, and business interruption insurance), payments of insurance and rights to payment of any kind.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Governmental Approval</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any consent, authorization, approval, order, license, franchise, permit, certificate, accreditation, registration, filing or notice, of, issued by, from or to, or other act by or in respect of, any Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Governmental Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any nation or government, any state or other political subdivision thereof, any agency, authority, instrumentality, regulatory body (including, without limitation, the FDA and any state board of pharmacy or state pharmacy licensing authority), court, central bank, arbitration authority, or other entity exercising executive, legislative, judicial, quasi-judicial, taxing, regulatory or administrative functions of or pertaining to government, any securities exchange and any self-regulatory organization.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Guarantor</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any Person providing a Guaranty in favor of Collateral Agent for the benefit of the Lenders.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;31</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Guaranty</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any guarantee of all or any part of the Obligations, as the same may from time to time be amended, restated, modified or otherwise supplemented.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">I&#47;O Extension Event</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means Borrower has achieved, prior to March 1, 2027, trailing twelve months of Operating Cash Flow greater than $0.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Indebtedness</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is (a) indebtedness for borrowed money or the deferred price of property or services, such as reimbursement and other obligations for surety bonds and letters of credit, excluding unsecured trade payables arising in the ordinary course of business, (b) obligations evidenced by notes, bonds, debentures or similar instruments, (c) capital lease obligations, and (d) Contingent Obligations.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Insolvency Proceeding</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any proceeding by or against any Person under the United States Bankruptcy Code, or any other bankruptcy or insolvency law, including assignments for the benefit of creditors, compositions or proceedings seeking reorganization, arrangement, or other relief.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Insolvent</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means not Solvent.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Intellectual Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means all of Borrower&#8217;s or any of its Subsidiaries&#8217; right, title and interest in and to the following&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">its Copyrights, Trademarks and Patents&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">any and all trade secrets and trade secret rights, including, without limitation, any rights to unpatented inventions, know how, operating manuals&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">any and all source code&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">any and all design rights which may be available to Borrower&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">any and all claims for damages by way of past, present and future infringement of any of the foregoing, with the right, but not the obligation, to sue for and collect such damages for said use or infringement of the Intellectual Property rights identified above&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt">all amendments, renewals and extensions of any of the Copyrights, Trademarks or Patents&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">all licenses, sublicenses or other contracts under which Borrower or any Subsidiary is granted rights by third parties in any Intellectual Property asset.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Inventory</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is all &#8220;inventory&#8221; as defined in the Code in effect on the date hereof with such additions to such term as may hereafter be made under the Code, and includes without limitation all merchandise, raw materials, parts, supplies, packing and shipping materials, work in process and finished products, including without limitation such inventory as is temporarily out of any Person&#8217;s custody or possession or in transit and including any returned goods and any documents of title representing any of the above.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Investment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any beneficial ownership interest in any Person (including stock, partnership interest or other securities), and any loan, advance or capital contribution to any Person.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">IP Security Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is that certain Intellectual Property Security Agreement executed and delivered by Borrower to Collateral Agent and dated as of the Effective Date, as may be amended, restated, or otherwise modified or supplemented from time to time.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Issuer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means an issuer of Shares.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Key Person</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is each of Borrower&#8217;s (i) &#91;*&#93;, (ii) &#91;*&#93;and (iii) &#91;*&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Knowledge</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means to the &#8220;best of&#8221; Borrower&#8217;s knowledge, or with a similar qualification, knowledge or awareness means the actual knowledge, after reasonable investigation, of the Responsible Officers.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;32</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Lender</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any one of the Lenders.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Lenders</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are the Persons identified on </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Schedule 1.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereto and each assignee that becomes a party to this Agreement pursuant to </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 12.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Lenders&#8217; Expenses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are all reasonable and documented audit fees and expenses, costs, and expenses (including reasonable and documented out-of-pocket attorneys&#8217; fees and expenses, as well as appraisal fees, fees incurred on account of lien searches, inspection fees, auditor fees and filing fees) for preparing, amending, negotiating, administering, defending and enforcing the Loan Documents (including, without limitation, those incurred in connection with appeals or Insolvency Proceedings) or otherwise incurred by Collateral Agent and&#47;or the Lenders in connection with the Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Lien</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is a claim, mortgage, deed of trust, levy, charge, pledge, security interest, or other encumbrance of any kind, whether voluntarily incurred or arising by operation of law or otherwise against any property.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Loan Documents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are, collectively, this Agreement, the IP Security Agreement, each Secured Promissory Note, each Warrant, the Perfection Certificate(s), each Control Agreement, each Compliance Certificate, each Loan Payment Request Form, each Disbursement Letter, any subordination agreements, any note, or notes or guaranties executed by Borrower or any other Person, and any other present or future agreement entered into by Borrower, any Guarantor or any other Person for the benefit of the Lenders and Collateral Agent in connection with this Agreement&#59; all as amended, restated, or otherwise modified or supplemented from time to time.</font></div><div style="margin-top:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Loan Party</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; or &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Loan Parties</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means each Borrower and each Guarantor.</font></div><div style="margin-bottom:12pt;margin-top:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Loan Payment Request Form</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is that certain form attached hereto as </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibit B-1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Management Plan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is Borrower&#8217;s projected revenue provided to Collateral Agent as of the Effective Date, as such Management Plan may be updated from time to time in accordance with Section 8.2.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Managing Role</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means a managing member, manager, director, executive officer, or other role with senior management responsibilities as to a Person.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Market Capitalization</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means, with respect to Borrower, as of any date of determination, an amount equal to the closing price (or 30-day volume weighted average price where specified) of Borrower&#8217;s common shares multiplied by the total outstanding common shares of Borrower as of such date. </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Material Adverse Change</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is an event or circumstance that, either individually or in the aggregate, has had or could reasonably be expected to have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Material Adverse Effect</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is (a) a material adverse change in, or a material adverse effect on, the operations, business, properties, liabilities (actual or contingent), condition (financial or otherwise), or prospects of Borrower or any Subsidiary or guarantor of the Obligations, including such changes affecting Borrower that result from matters that generally affect the industries and markets in which Borrower operates, such as changes in financial markets or general economic conditions and outbreak or escalation of war or major hostilities or epidemic or acts of terrorism, or (b) a material adverse effect on (i) the ability of Borrower to timely perform its Obligations including with respect to the Collateral, (ii) the legality, validity, binding effect, or enforceability against Borrower of any Loan Document to which it is a party or (iii) the rights, remedies and benefits available to, or conferred upon, Collateral Agent or any Lender under any Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Material Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any license, agreement or other contractual arrangement with any Person (i) whereby Borrower or any of its Subsidiaries is or is reasonably likely to pay or receive aggregate consideration on or after the Effective Date equal to at least $5,000,000, (ii) that is otherwise material to the business, condition (financial or otherwise), operations, performance, properties, or prospects of Borrower or any Subsidiary such that the termination thereof of or default thereunder by any Person would reasonably be expected to have a Material Adverse Effect.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Maturity Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is February 13, 2029.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net Product Revenue</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the sum, as of any period of determination, of (i) consolidated product revenue determined in accordance with GAAP for such period and (ii) revenue from licensing, royalties, collaboration and </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;33</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">partnership transactions for such period related to Borrower&#8217;s ECO Synthesis and CodeEvolver platforms, or other partnered enzymes that may not be accounted for as product revenue under GAAP (but otherwise determined in accordance with GAAP)&#59; provided that Net Product Revenue excludes Research and Development Revenue and Paxlovid Revenue.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Obligations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are all of Borrower&#8217;s obligations to pay when due any debts, principal, interest, make-whole amount, Lenders&#8217; Expenses, the Prepayment Fee, the Final Fee, and other amounts Borrower owes the Lenders now or later, in connection with, related to, following, or arising from, out of or under, this Agreement or the other Loan Documents (other than the Warrant), or otherwise, and including interest and other amounts accruing after Insolvency Proceedings begin (whether or not allowed) and debts, liabilities, or obligations of Borrower assigned to the Lenders and&#47;or Collateral Agent, and the performance of Borrower&#8217;s duties under the Loan Documents (other than the Warrant).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">OFAC</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the U.S. Department of Treasury Office of Foreign Assets Control.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">OFAC Lists</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are, collectively, the Specially Designated Nationals and Blocked Persons List maintained by OFAC pursuant to Executive Order No. 13224, 66 Fed. Reg. 49079 (Sept. 25, 2001) and&#47;or any other list of terrorists or other restricted Persons maintained pursuant to any of the rules and regulations of OFAC or pursuant to any other applicable Executive Orders.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Operating Cash Flow</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, for any period, cash flow from operations including capital expenditures for such period, determined in accordance with GAAP.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Operating Documents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are, for any Person, such Person&#8217;s formation documents, as certified by the Secretary of State (or equivalent agency) of such Person&#8217;s jurisdiction of organization on a date that is no earlier than thirty (30) days prior to the Effective Date, and, (a) if such Person is a corporation, its bylaws in current form, (b) if such Person is a limited liability company, its limited liability company agreement (or similar agreement), and (c) if such Person is a partnership, its partnership agreement (or similar agreement), each of the foregoing with all current amendments or modifications thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Patents</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means all patents, patent applications and like protections including without limitation improvements, divisions, continuations, renewals, reissues, re-examination certificates, utility models, extensions and continuations-in-part of the same.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Paxlovid Revenue</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the retainer fee to the extent recognized as revenue on Borrower&#8217;s statement of operations prepared in accordance with GAAP arising out of the sale of CDX-616 to Pfizer Inc. and its affiliates for the manufacture of Paxlovid (including any such revenue recognized in respect of that certain Enzyme Supply Agreement, dated July 14, 2022, between Borrower and Pfizer Ireland Pharmaceuticals, as amended, restatement, replaced, supplemented or otherwise modified from time to time).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Payment Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the first (1st) calendar day of each calendar month, commencing on March 1, 2024. </font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Permitted Exclusive Licenses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are (i) exclusive licenses existing as of the Effective Date and disclosed to Lender in the Perfection Certificate, including any extensions, renewals, and replacements thereof, (ii) &#91;*&#93;, (iii) &#91;*&#93;, (iv) &#91;*&#93;, and (v) &#91;*&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Permitted Indebtedness</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Borrower&#8217;s Indebtedness to the Lenders and Collateral Agent under this Agreement and the other Loan Documents&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(h)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Indebtedness existing on the Effective Date and disclosed on the Perfection Certificate(s)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Subordinated Debt&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(j)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Indebtedness in connection with credit cards incurred in the ordinary course of business&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(k)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Indebtedness consisting of capitalized lease obligations and purchase money Indebtedness, in each case incurred by Borrower or any of its Subsidiaries to finance the acquisition, repair, improvement or construction of fixed or capital assets of such Person, provided that (i) the aggregate outstanding </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;34</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">principal amount of all such Indebtedness does not exceed Two Hundred Fifty Thousand Dollars ($250,000.00) at any time and (ii) the principal amount of such Indebtedness does not exceed the lower of the cost or fair market value of the property so acquired or built or of such repairs or improvements financed with such Indebtedness (each measured at the time of such acquisition, repair, improvement or construction is made)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(l)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Indebtedness incurred as a result of endorsing negotiable instruments received in the ordinary course of Borrower&#8217;s business&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(m)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">Indebtedness consisting of letters of credit in an amount not to exceed Five Hundred Thousand Dollars ($500,000) in the aggregate at any time&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(n)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Intercompany indebtedness constituting a Permitted Investment&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(o)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">guarantees of Permitted Indebtedness&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(p)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">unsecured Indebtedness in an aggregate amount not to exceed Two Hundred Fifty Thousand Dollars ($250,000) at any time&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(q)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">extensions, refinancings, modifications, amendments and restatements of any items of Permitted Indebtedness (a) through (j) above, provided that the principal amount thereof is not increased or the terms thereof are not modified to impose materially more burdensome terms upon Borrower, or its Subsidiary, as the case may be.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Permitted Investments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Investments disclosed on the Perfection Certificate(s) and existing on the Effective Date&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Investments consisting of cash and Cash Equivalents, and any Investments permitted by Borrower&#8217;s investment policy, as amended from time to time, provided that such investment policy (and any such amendment thereto) has been approved in writing by Collateral Agent&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Investments consisting of the endorsement of negotiable instruments for deposit or collection or similar transactions in the ordinary course of Borrower&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Investments consisting of Excluded Accounts and Deposit Accounts in which Collateral Agent has a perfected security interest&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Investments in connection with Transfers permitted by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 7.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt">Investments consisting of (i) travel advances and employee relocation loans and other employee loans and advances in the ordinary course of business, and (ii) loans to employees, officers or directors relating to the purchase of equity securities of Borrower or its Subsidiaries pursuant to employee stock purchase plans or agreements approved by Borrower&#8217;s board of directors, not to exceed One Hundred Seventy Five Thousand Dollars ($175,000.00) in the aggregate for (i) and (ii) in any fiscal year&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Investments (including debt obligations) received in connection with the bankruptcy or reorganization of customers or suppliers and in settlement of delinquent obligations of, and other disputes with, customers or suppliers arising in the ordinary course of business&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(h)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Investments consisting of notes receivable of, or prepaid royalties and other credit extensions, to customers and suppliers who are not Affiliates, in the ordinary course of business&#59; provided that this paragraph (h) shall not apply to Investments of Borrower in any Subsidiary&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Investments (i) by a Loan Party in another Loan Party, (ii) by a Subsidiary that is not a Loan Party in a Loan Party, (iii) by a Loan Party in Subsidiaries (other than Subsidiaries existing on the Effective Date that are not Loan Parties), that are not Loan Parties in an aggregate amount not to exceed Fifty Thousand Dollars ($50,000.00) per fiscal year&#59;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;35</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(j)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">cash Investments in joint ventures or strategic alliances in an amount not to exceed Two Hundred Fifty Thousand Dollars ($250,000.00) in any fiscal year and One Million Dollars ($1,000,000.00) in the aggregate&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(k)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">non-cash Investments in joint ventures or strategic alliances in the ordinary course of Borrower&#8217;s business consisting of the non-exclusive licensing of technology, the development of technology or the providing of technical support&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(l)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">other Investments not exceeding Five Hundred Thousand Dollars ($500,000) in the aggregate in any fiscal year of Borrower.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Permitted Licenses</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are (A) licenses of over-the-counter software that is commercially available to the public, (B) non-exclusive licenses for the use of the Intellectual Property of Borrower or any of its Subsidiaries related to ECO Synthesis and CodeEvolver platforms entered into in the ordinary course of business, (C) Permitted Exclusive Licenses, (D) any other licenses for the use of the Intellectual Property of Borrower or any of its Subsidiaries consented to by the Required Lenders (which shall not be unreasonably withheld), and (E) non-exclusive intercompany licenses, sublicenses or grants of rights for development, manufacture, production, commercialization (including commercial sales to end users), marketing, promotion, co-promotion, sales or distribution, in each case, solely among the Loan Parties&#59; provided, that, with respect to each such license described in clauses (B), (C) or (D), the license constitutes an arm&#8217;s-length transaction, the terms of which, on their face, do not provide for a sale or assignment of such Intellectual Property that would result in or the equivalent of a transfer of title of such Intellectual Property, and do not restrict the ability of Borrower or any of its Subsidiaries, as applicable, to (i) pledge, grant a security interest in or lien on, or assign or otherwise Transfer any Intellectual Property or (ii) grant a security interest to Collateral Agent therein.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Permitted Liens</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; are&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Liens existing on the Effective Date and disclosed on the Perfection Certificates or arising under this Agreement and the other Loan Documents&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Liens for taxes, fees, assessments or other government charges or levies, either (i) not due and payable or (ii) being contested in good faith and for which Borrower maintains adequate reserves on Borrower&#8217;s Books, provided that no notice of any such Lien has been filed or recorded under the Internal Revenue Code of 1986, as amended, and the Treasury Regulations adopted thereunder&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">liens securing Indebtedness permitted under clause (e) of the definition of &#8220;Permitted Indebtedness,&#8221; provided that (i) such liens exist prior to the acquisition of, or attach substantially simultaneous with, or within twenty (20) days after the, acquisition, lease, repair, improvement or construction of, such property financed or leased by such Indebtedness and (ii) such liens do not extend to any property of Borrower other than the property (and proceeds thereof) acquired, leased or built, or the improvements or repairs, financed by such Indebtedness&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Liens of carriers, warehousemen, suppliers, or other Persons that are possessory in nature arising in the ordinary course of business so long as such Liens attach only to Inventory, securing liabilities in the aggregate amount not to exceed Three Hundred Fifty Thousand Dollars ($350,000.00), and which are not delinquent or remain payable without penalty or which are being contested in good faith and by appropriate proceedings which proceedings have the effect of preventing the forfeiture or sale of the property subject thereto&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">Liens to secure payment of workers&#8217; compensation, employment insurance, old age pensions, social security and other like obligations incurred in the ordinary course of business (other than Liens imposed by ERISA)&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.01pt">servitudes, easements, rights of way, restrictions and other similar encumbrances on real property imposed by applicable laws and encumbrances consisting of zoning or building restrictions, easements, licenses, restrictions on the use of property or minor imperfections in title thereto which, in the aggregate, are not material, and which do not in any case materially detract from the value of the property subject thereto or interfere with the ordinary conduct of the business&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">deposits or pledges of cash to secure bids, tenders, contracts (other than contracts for the payment of money), leases, surety and appeal bonds and other obligations of a like nature arising in the ordinary </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;36</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">course of business, in an aggregate amount not exceeding Two Hundred and Fifty Thousand Dollars ($250,000) at any time&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(h)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Liens incurred in the extension, renewal or refinancing of the indebtedness secured by Liens described in (a) through (c), but any extension, renewal or replacement Lien must be limited to the property encumbered by the existing Lien and the principal amount of the indebtedness may not increase&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">leases or subleases of real property granted in the ordinary course of Borrower&#8217;s business (or, if referring to another Person, in the ordinary course of such Person&#8217;s business), and leases, subleases, non-exclusive licenses or sublicenses of personal property (other than Intellectual Property) granted in the ordinary course of Borrower&#8217;s business (or, if referring to another Person, in the ordinary course of such Person&#8217;s business), if the leases, subleases, licenses and sublicenses do not prohibit granting Collateral Agent or any Lender a security interest in such license&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(j)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">banker&#8217;s liens, rights of setoff and Liens in favor of financial institutions incurred in the ordinary course of business arising in connection with Borrower&#8217;s deposit accounts or securities accounts held at such institutions solely to secure payment of fees and similar costs and expenses and provided such accounts are maintained in compliance with </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 6.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> hereof&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(k)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">Liens arising from judgments, decrees or attachments in circumstances not constituting an Event of Default under </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 8.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> or </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">8.7</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(l)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:26.57pt">Liens securing Indebtedness described in clause (g) of the definition of &#8220;Permitted Indebtedness&#8221;&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(m)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:21.57pt">Permitted Licenses.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Person</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any individual, sole proprietorship, partnership, limited liability company, joint venture, company, trust, unincorporated organization, association, corporation, institution, public benefit corporation, firm, joint stock company, estate, entity or Governmental Authority.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Prepayment Fee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, with respect to any Term Loan subject to prepayment prior to the Maturity Date, whether by mandatory or voluntary prepayment, acceleration or otherwise, an additional fee payable to the Lenders in amount equal to&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">for a prepayment made on or after the Effective Date through and including the first anniversary of the Effective Date, three percent (3.00%) of the principal and accrued interest amount of the Term Loan prepaid&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, no voluntary prepayment may be made during such period&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">for a prepayment made after the date which is the first anniversary of the Effective Date through and including the date which is the second anniversary of the Effective Date, two percent (2.00%) of the principal and accrued interest amount of the Term Loan prepaid&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.91pt">for a prepayment made after the date which is the second anniversary of the Effective Date through and including the date which is the third anniversary of the Effective Date, one percent (1.00%) of the principal and accrued interest amount of the Term Loan prepaid&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:24.34pt">for a prepayment made after the date which is the third anniversary of the Effective Date and prior to the Maturity Date, zero percent (0.00%) of the principal and accrued interest amount of the Term Loan prepaid.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Prime Rate</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the Prime Rate published in the Money Rates section of The Wall Street Journal.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means any interest in any kind of property or asset, whether real, personal or mixed, and whether tangible or intangible.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Pro Rata Share</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, as of any date of determination, with respect to each Lender, a percentage (expressed as a decimal, rounded to the ninth decimal place) determined by dividing the outstanding principal amount of the Term Loan held by such Lender by the aggregate outstanding principal amount of the Term Loan.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;37</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Registered Organization</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any &#8220;registered organization&#8221; as defined in the Code with such additions to such term as may hereafter be made under the Code.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Registration</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means any registration, authorization, approval, license, permit, clearance, certificate, and exemption issued or allowed by the FDA or state pharmacy licensing authorities (including, without limitation, new drug applications, abbreviated new drug applications, biologics license applications, investigational new drug applications, over-the-counter drug monograph, device pre-market approval applications, device pre-market notifications, investigational device exemptions, product recertifications, manufacturing approvals, registrations and authorizations, CE Marks, pricing and reimbursement approvals, labeling approvals or their foreign equivalent, controlled substance registrations, and wholesale distributor permits).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Regulatory Action</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means an administrative, regulatory, or judicial enforcement action, proceeding, investigation or inspection, FDA Form 483 notice of inspectional observation, warning letter, untitled letter, other notice of violation letter, recall, seizure, Section 305 notice or other similar written communication, injunction or consent decree, issued by the FDA or a federal or state court.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Related Persons</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means, with respect to any Person, each Affiliate of such Person and each director, officer, employee, agent, trustee, representative, attorney, accountant and each insurance, environmental, legal, financial and other advisor and other consultants and agents of or to such Person or any of its Affiliates.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Required Lenders</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means (i) for so long as all of the Persons that are Lenders on the Effective Date (each an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Original Lender</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) have not assigned or transferred any of their interests in the Term Loan, Lenders holding one hundred percent (100%) of the aggregate outstanding principal balance of the Term Loan, or (ii) at any time from and after any Original Lender has assigned or transferred any interest in its Term Loan, Lenders holding at least fifty one percent (51%) of the aggregate outstanding principal balance of the Term Loan.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Requirement of Law</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is as to any Person, the organizational or governing documents of such Person, and any law (statutory or common), treaty, rule or regulation or determination of an arbitrator or a court or other Governmental Authority, in each case applicable to or binding upon such Person or any of its property or to which such Person or any of its property is subject.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Research and Development Revenue</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is all research services fees classified as research and development revenue on Borrower&#8217;s statement of operations prepared in accordance with GAAP.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Responsible Officer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any of the &#91;*&#93;.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Secured Promissory Note</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is defined in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Secured Promissory Note Record</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is a record maintained by each Lender with respect to the outstanding Obligations owed by Borrower to Lender and credits made thereto.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Securities Account</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is any &#8220;securities account&#8221; as defined in the Code with such additions to such term as may hereafter be made under the Code.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is one hundred percent (100.00%) of the stock, units or other evidence of ownership held by Borrower or its Subsidiaries of any Subsidiary&#59; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">provided</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">however</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, as to any stock, units or other evidence of ownership held by Borrower or its Subsidiary in a Foreign Subsidiary, &#8220;Shares&#8221; shall be limited to the greater of sixty-five percent (65%) of the Foreign Subsidiary or the maximum portion thereof that may from time to time be pledged without causing a material adverse tax consequence to Borrower.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Solvent</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, with respect to any Person&#58; the fair salable value of such Person&#8217;s consolidated assets (including goodwill minus disposition costs) exceeds the fair value of such Person&#8217;s liabilities&#59; such Person is not left with unreasonably small capital after the transactions in this Agreement&#59; and such Person is able to pay its debts (including trade debts) as they mature in the ordinary course (without taking into account any forbearance and extensions related thereto).</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Subordinated Debt</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is indebtedness incurred by Borrower or any of its Subsidiaries subordinated to all Indebtedness of Borrower and&#47;or its Subsidiaries to the Lenders (pursuant to a subordination, intercreditor, or other similar agreement in form and substance satisfactory to Collateral Agent and the Lenders entered into between </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;38</font></div><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:89.28pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Collateral Agent, Borrower, and&#47;or any of its Subsidiaries, and the other creditor), on terms acceptable to Collateral Agent and the Lenders, as determined in their sole discretion.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Subsidiary</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, with respect to any Person, any Person of which more than fifty percent (50%) of the voting stock or other equity interests (in the case of Persons other than corporations) is owned or controlled, directly or indirectly, by such Person or through one or more intermediaries. Unless otherwise specified, references herein to a Subsidiary means a Subsidiary of Borrower.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is defined in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.2(a)(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term A Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is defined in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.2(a)(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term B Loan</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is defined in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section 2.2(a)(ii)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term B Draw Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means the period commencing on the later of January 1, 2025 and the first date on which Borrower achieves the Term B Milestone and ending on the earlier of (i) June 30, 2025 or (ii) the occurrence of an Event of Default (unless such Event of Default is waived by Collateral Agent and Lenders for the purposes of the continuation of the Term B Draw Period)&#59; provided, however, that the Term B Draw Period shall not commence if when Borrower achieves the Term B Milestone, an Event of Default has occurred and is continuing.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term B Milestone</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is the achievement by Borrower of (i) TTM Net Product Revenue of &#91;*&#93;, and (ii) the pro forma, after giving effect to the Term B Loan, ratio of aggregate amount of Indebtedness of Borrower to its then Market Capitalization (based on a 30-day volume weighted average price) equal to twenty five percent (25.00%) or less.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term Loan Commitment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; is, for any Lender, the obligation of such Lender to make the Term Loan, up to the principal amount shown on </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Schedule 1.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">. &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Term Loan Commitments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means the aggregate amount of such commitments of all Lenders.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Trademarks</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means any trademark and servicemark rights, whether registered or not, applications to register and registrations of the same and like protections, and the entire goodwill of the business of Borrower and each of its Subsidiaries connected with and symbolized by such trademarks.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">TTM Net Product Revenue</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means trailing twelve (12) months&#8217; Net Product Revenue, as of any date of determination.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Warrant</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221; means any of that certain Warrant to Purchase Stock dated the Effective Date issued by Borrower in favor of each Lender or such Lender&#8217;s Affiliates or any other warrant entered into in connection with the Term Loan, all as may be amended, restated, or otherwise modified or supplemented from time to time.</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">&#91;Balance of Page Intentionally Left Blank&#93;</font></div><div><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;39</font></div><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_13"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:77.76pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div style="margin-bottom:12pt"><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">IN WITNESS WHEREOF</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">, the parties hereto have caused this Agreement to be executed as of the Effective Date.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">BORROWER&#58;</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CODEXIS, INC.</font></div><div><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">&#47;s&#47; Sri Ryali&#160;&#160;&#160;&#160;</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Name&#58; Sri Ryali</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Title&#58; Chief Financial Officer</font></div><div><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">COLLATERAL AGENT AND LENDER&#58;</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">INNOVATUS LIFE SCIENCES LENDING FUND I, LP</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58; Innovatus Life Sciences GP, LP</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Its&#58; General Partner</font></div><div><font><br></font></div><div style="padding-left:18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">&#47;s&#47; Andy Dym&#160;&#160;&#160;&#160;</font></div><div style="padding-left:18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Name&#58; Andy Dym</font></div><div style="padding-left:18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Title&#58; Authorized Signer</font></div><div><font><br></font></div><div><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_16"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:77.76pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div style="margin-bottom:12pt"><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">SCHEDULE&#160;1.1<br><br></font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Lenders and Commitments</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_19"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:90.72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">EXHIBIT A<br><br></font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description of Collateral</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Collateral consists of all of Borrower&#8217;s presently owned and hereafter acquired or arising right, title and interest in and to following personal property and fixtures&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">All goods, Accounts (including health care insurance receivables), Equipment, fixtures, Inventory, contract rights or rights to payment of money, leases, license agreements, franchise agreements, General Intangibles (including Intellectual Property, payment intangibles, and software), commercial tort claims, documents, instruments (including any promissory notes), chattel paper (whether tangible or electronic), cash, money, deposit accounts and other Collateral Accounts, all certificates of deposit, fixtures, letters of credit (whether or not the letter of credit is evidenced by a writing) and letter-of-credit rights, investment property (including certificated securities, uncertificated securities, securities entitlements, securities accounts, commodity contracts, and commodity accounts), supporting obligations, and financial assets, whether now owned or hereafter acquired, wherever located&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">All Borrower&#8217;s Books relating to the foregoing, and any and all claims, rights and interests in any of the above and all substitutions for, additions, attachments, accessories, accessions and improvements to and replacements, products, proceeds and insurance proceeds of any or all of the foregoing.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Notwithstanding the foregoing, the Collateral shall not include&#58; (i) any interest of a Loan Party as a lessee under an Equipment lease if such Loan Party is prohibited by the terms of such lease from granting a security interest in such lease or under which such an assignment or Lien would cause a default to occur under such lease&#59; provided, however, that upon termination of such prohibition, such interest shall immediately become Collateral without any action by any Loan Party or Lender, (ii) Equipment that is subject to a Permitted Lien in connection with the financing of such Equipment if the holder of such Lien has prohibited in writing the applicable Loan Party from granting Liens on such property in favor of third parties&#59;  provided that immediately upon the ineffectiveness, lapse or termination of any such provision, the term &#8220;Collateral&#8221; shall automatically include, and the applicable Loan Party shall be deemed to have granted a security interest in, all of its rights, title and interests in and to such property as if such provision had never been in effect, (iii) any Excluded Accounts, (iv) the equity interests in any joint venture where the pledge of such equity interests would be prohibited by any applicable contractual requirement pertaining to any such joint venture, or (v) any leases, licenses, permits or agreements to which Borrower is a party, or any of its right, title or interest thereunder, to the extent that, and for so long as, a grant of a security interest therein would, under the express terms of such lease, license, permit or agreement, result in a breach of the terms of, constitute a default under or create a right of termination in favor of any party thereto (other than Borrower) under, such lease, license, permit or agreement (other than to the extent that any such term (a) has been waived or (b) would be rendered ineffective pursuant to Sections 9-406, 9-407, 9-408, 9-409 of the UCC or other applicable provisions of the UCC of any relevant jurisdiction or any other applicable law or principles of equity)&#59; provided, however, that (x) the Collateral shall include (and such security interest shall attach) immediately upon the ineffectiveness, lapse, termination or waiver of such provision and (y) the Collateral shall include all proceeds arising under or from any such lease, license, permit or contract.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_22"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">EXHIBIT B-1<br><br>Loan Payment Request Form</font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">EXHIBIT B-2<br><br></font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Form of Disbursement Letter</font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_25"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">EXHIBIT C-1<br><br>Compliance Certificate</font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_28"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-top:3.9pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:232%">Exhibit C-2</font></div><div style="margin-top:3.9pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:232%">Loan Confirmation </font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_31"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:79.2pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">EXHIBIT D<br><br></font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Form of Secured Promissory Note</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;see attached&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_34"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">SECURED PROMISSORY NOTE<br>(Term&#160;&#91;A&#93;&#91;B&#93; Loan)</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$____________________&#160;&#160;&#160;&#160;Dated&#58; &#91;_______&#93;, 2024</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">FOR VALUE RECEIVED, the undersigned, CODEXIS, INC., a Delaware corporation (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Borrower</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) HEREBY PROMISES TO PAY to the order of INNOVATUS LIFE SCIENCES LENDING FUND I, LP (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Lender</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;) the principal amount of &#91;___________&#93; MILLION DOLLARS ($______________) or such lesser amount as shall equal the outstanding principal balance of the Term&#160;&#91;A&#93;&#91;B&#93; Loan made to Borrower by Lender, plus interest on the aggregate unpaid principal amount of such Term&#160;&#91;A&#93;&#91;B&#93; Loan, at the rates and in accordance with the terms of the Loan and Security Agreement dated February 13, 2024 by and among Borrower, Lender, INNOVATUS LIFE SCIENCES LENDING FUND I, LP, as Collateral Agent, and the other Lenders from time to time party thereto (as amended, restated, supplemented or otherwise modified from time to time, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Loan Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;). If not sooner paid, the entire principal amount and all accrued and unpaid interest hereunder shall be due and payable on the Maturity Date as set forth in the Loan Agreement. Any capitalized term not otherwise defined herein shall have the meaning attributed to such term in the Loan Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Principal, interest and all other amounts due with respect to the Term&#160;&#91;A&#93;&#91;B&#93; Loan, are payable in lawful money of the United States of America to Lender as set forth in the Loan Agreement and this Secured Promissory Note (this &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Note</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8221;). The principal amount of this Note and the interest rate applicable thereto, and all payments made with respect thereto, shall be recorded by Lender and, prior to any transfer hereof, endorsed on the grid attached hereto which is part of this Note.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Loan Agreement, among other things, (a)&#160;provides for the making of a secured Term&#160;&#91;A&#93;&#91;B&#93; Loan by Lender to Borrower, and (b)&#160;contains provisions for acceleration of the maturity hereof upon the happening of certain stated events.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This Note may not be prepaid except as set forth in </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section&#160;2.2(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;and </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Section&#160;2.2(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;of the Loan Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This Note and the obligation of Borrower to repay the unpaid principal amount of the Term&#160;&#91;A&#93;&#91;B&#93; Loan, interest on the Term&#160;&#91;A&#93;&#91;B&#93; Loan and all other amounts due Lender under the Loan Agreement is secured under the Loan Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Presentment for payment, demand, notice of protest and all other demands and notices of any kind in connection with the execution, delivery, performance and enforcement of this Note are hereby waived.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower shall pay all reasonable fees and expenses, including, without limitation, reasonable attorneys&#8217; fees and costs, incurred by Lender in the enforcement or attempt to enforce any of Borrower&#8217;s obligations hereunder not performed when due.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This Note shall be governed by, and construed and interpreted in accordance with, the internal laws of the State of New York.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The ownership of an interest in this Note shall be registered on a record of ownership maintained by Lender or its agent. Notwithstanding anything else in this Note to the contrary, the right to the principal of, and stated interest on, this Note may be transferred only if the transfer is registered on such record of ownership and the transferee is identified as the owner of an interest in the obligation. Borrower shall be entitled to treat the registered holder of this Note (as recorded on such record of ownership) as the owner in fact thereof for all purposes and shall not be bound to recognize any equitable or other claim to or interest in this Note on the part of any other person or entity.</font></div><div style="margin-bottom:12pt;text-align:justify"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:100%">&#91;Balance of Page Intentionally Left Blank&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:43.108%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:143%">296116227 v13</font></div><div><font><br></font></div></td></tr></table></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_37"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">IN WITNESS WHEREOF, Borrower has caused this Note to be duly executed by one of its officers thereunto duly authorized on the date hereof.</font></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:45.140%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.580%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:44.980%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">BORROWER&#58;</font></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CODEXIS, INC.</font></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Name&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Title&#58;</font></td></tr></table></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:43.108%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:143%">296116227 v13</font></div><div><font><br></font></div></td></tr></table></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_40"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">EXHIBIT E</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">CORPORATE BORROWING CERTIFICATE</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="margin-bottom:12pt;text-align:justify"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">ANNEX I<br><br></font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Collateral Agent and Lender Terms</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_43"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">ANNEX Y</font></div><div style="text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">LOAN INTEREST RATE AND PAYMENT OF PRINCIPAL<br></font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Term&#160;Loan)</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="text-align:center"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_46"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:79.2pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">SCHEDULE 6.12</font></div><div style="text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">NET PRODUCT REVENUE COVENANT</font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div><div id="iba48b620532f41eeb28fb1554c099fd6_49"></div><hr style="page-break-after:always"><div style="background-color:#ffffff"><div style="min-height:72pt;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">SCHEDULE 6.13</font></div><div style="text-align:center"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">LIQUIDITY COVENANT</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#91;*&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>5
<FILENAME>exhibit231auditconsent2023.htm
<DESCRIPTION>EX-23.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i45c20e428c8b487c9e80baed74e46167_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">Exhibit 23.1</font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="margin-top:12pt;text-align:right"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%;text-decoration:underline">Consent of Independent Registered Public Accounting Firm</font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="margin-top:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">Codexis, Inc.</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">Redwood City, California</font></div><div style="margin-bottom:0.04pt;padding-left:0.45pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:112%">We hereby consent to the incorporation by reference in the Registration Statements on Form S-3 (No. 333-255926) and Form S-8 (No. 333-167752, 333-172166, 333-179903, 333-187711, 333-194524, 333-202596, 333-210022, 333-216587, 333-223693, 333-224885, 333-230037, 333-232262, 333-269163, 333-273661, and 333-273662) of Codexis, Inc. of our reports dated February 28, 2024, relating to the consolidated financial statements, and the effectiveness of the Company&#8217;s internal control over financial reporting, which appear in this Annual Report on Form 10-K.</font></div><div style="margin-top:0.12pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">&#47;s&#47; BDO USA, P.C.</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">San Francisco, CA</font></div><div style="margin-top:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">February 28, 2024</font></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="margin-bottom:0.04pt;margin-top:12pt;padding-left:18pt;text-align:justify;text-indent:-0.18pt"><font><br></font></div><div style="height:92.16pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="padding-right:-4.3pt;text-align:justify"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>6
<FILENAME>exhibit311cdxs-20231231.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i2ec8caaaa2874a1382edfb887e3edff2_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 31.1 </font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">CERTIFICATION </font></div><div style="margin-top:4.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Stephen Dilly, certify that&#58; </font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">I have reviewed this Annual Report on Form 10-K of Codexis, Inc.&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">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&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">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&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) 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&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">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&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">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 accepted accounting principles&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">Evaluated the effectiveness of the registrant'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&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions)&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">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's ability to record, process, summarize and report financial information&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-18pt"><font><br></font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; February&#160;28, 2024 </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Stephen Dilly</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stephen Dilly</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer</font></td></tr></table></div><div><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>7
<FILENAME>exhibit312cdxs-20231231.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i3b81efc7eec34fa68063c1137521b626_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 31.2 </font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">CERTIFICATION </font></div><div style="margin-top:4.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Sriram Ryali, certify that&#58; </font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">I have reviewed this Annual Report on Form 10-K of Codexis, Inc.&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">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&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">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&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) 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&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">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&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">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 accepted accounting principles&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">Evaluated the effectiveness of the registrant'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&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions)&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">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's ability to record, process, summarize and report financial information&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-18pt"><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; February&#160;28, 2024 </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Sriram Ryali</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sriram Ryali</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief Financial Officer</font></td></tr></table></div><div><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>8
<FILENAME>exhibit321cdxs-20231231.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="ie9273f938e174d6d93dc5426e898fee1_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 32.1 </font></div><div style="margin-top:4.5pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CERTIFICATION PURSUANT TO </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">18 U.S.C. SECTION 1350, </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">AS ADOPTED PURSUANT TO </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002 </font></div><div style="margin-top:9pt;text-indent:24.75pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the Annual Report of Codexis, Inc. (the &#8220;Company&#8221;) on Form 10-K for the fiscal year ended December&#160;31, 2023, as filed with the Securities and Exchange Commission (the &#8220;Report&#8221;), Stephen Dilly, President and Chief Executive Officer of the Company and Sriram Ryali, Chief Financial Officer of the Company, respectively, do each hereby certify, pursuant to 18 U.S.C. Section&#160;1350, as adopted pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002, that&#58; </font></div><div style="margin-top:9pt;padding-left:54pt;text-indent:-27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.5pt">The Report fully complies with the requirements of Section&#160;13(a) or 15(d) of the Securities Exchange Act of 1934&#59; and</font></div><div style="margin-top:9pt;padding-left:54pt;text-indent:-27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.5pt">The information in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; February&#160;28, 2024 </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Stephen Dilly</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stephen Dilly</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Sriram Ryali</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sriram Ryali</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief&#160;Financial&#160;Officer</font></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-97.1
<SEQUENCE>9
<FILENAME>codexis-ex971policyonrecou.htm
<DESCRIPTION>EX-97.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="if684f6f628ff4729abeac4d992fbbc94_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">CODEXIS, INC.</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">POLICY ON RECOUPMENT OF INCENTIVE COMPENSATION</font></div><div style="text-align:center"><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Introduction</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%"> </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">The Board of Directors (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Board</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;) of Codexis, Inc. (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Company</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;) has adopted this Policy on Recoupment of Incentive Compensation (this &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Policy</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;), which provides for the recoupment of compensation in certain circumstances in the event of a restatement of financial results by the Company.</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%"> This Policy shall be interpreted to comply with the requirements of U.S. Securities and Exchange Commission (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">SEC</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;) rules and Nasdaq Stock Market (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Nasdaq</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;) listing standards implementing Section 954 of the Dodd-Frank Wall Street Reform and Consumer Protection Act of 2010 (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Dodd-Frank Act</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;) and, to the extent this Policy is in any manner deemed inconsistent with such rules, this Policy shall be treated as retroactively amended to be compliant with such rules.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Administration</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">This Policy shall be administered by the Compensation Committee (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Compensation Committee</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;) of the Board.  Any determinations made by the Compensation Committee shall be final and binding on all affected individuals.  The Compensation Committee is authorized to interpret and construe this Policy and to make all determinations necessary, appropriate or advisable for the administration of this Policy, in all cases consistent with the Dodd-Frank Act.  The Board or Compensation Committee may amend this Policy from time to time in its discretion.</font></div><div><font><br></font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Covered Executives</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">This Policy applies to any current or former &#8220;executive officer,&#8221; within the meaning of Rule 10D-1 under the Securities Exchange Act of 1934, as amended, of the Company or a subsidiary of the Company (each such individual, an &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Executive</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;).  This Policy shall be binding and enforceable against all Executives and their beneficiaries, executors, administrators, and other legal representatives.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Recoupment Upon Financial Restatement</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">If the Company is required to prepare an accounting restatement due to the material noncompliance of the Company with any financial reporting requirement under the securities laws, including any required accounting restatement to correct an error in previously issued financial statements that is material to the previously issued financial statements, or that would result in a material misstatement if the error were corrected in the current period or left uncorrected in the current period (a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Financial Restatement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;), the Compensation Committee shall cause the Company to recoup from each Executive, as promptly as reasonably possible, any erroneously awarded Incentive-Based Compensation, as defined below.  </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">No-Fault Recovery</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">Recoupment under this Policy shall be required regardless of whether the Executive or any other person was at fault or responsible for accounting errors that contributed to the need for the Financial Restatement or engaged in any misconduct.  </font></div><div style="padding-left:36pt"><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Compensation Subject to Recovery&#59; Enforcement</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">This Policy applies to all compensation granted, earned or vested based wholly or in part upon the attainment of any financial reporting measure determined and presented in accordance with </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">the accounting principles used in preparing the Company&#8217;s financial statements, and any measure that is derived wholly or in part from such measures, whether or not presented within the Company&#8217;s financial statements or included in a filing with the SEC, including stock price and total shareholder return (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">TSR</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;), including but not limited to performance-based cash, stock, options or other equity-based awards paid or granted to the Executive (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Incentive-Based Compensation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221;).  Compensation that is granted, vests or is earned based solely upon the occurrence of non-financial events, such as base salary, restricted stock or options with time-based vesting, or a bonus awarded solely at the discretion of the Board or Compensation Committee and not based on the attainment of any financial measure, is not subject to this Policy. </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">In the event of a Financial Restatement, the amount to be recovered will be the excess of (i) the Incentive-Based Compensation received by the Executive during the Recovery Period (as defined below) based on the erroneous data and calculated without regard to any taxes paid or withheld, over (ii) the Incentive-Based Compensation that would have been received by the Executive had it been calculated based on the restated financial information, as determined by the Compensation Committee.  For purposes of this Policy, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:700;line-height:100%">Recovery Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#8221; means the three completed fiscal years immediately preceding the date on which the Company is required to prepare the Financial Restatement, as determined in accordance with the last sentence of this paragraph, or any transition period that results from a change in the Company&#8217;s fiscal year (as set forth in Section 5608(b)(i)(D) of the Nasdaq Listing Rules).  The date on which the Company is required to prepare a Financial Restatement is the earlier to occur of (A) the date the Board or a Board committee (or authorized officers of the Company if Board action is not required) concludes, or reasonably should have concluded, that the Company is required to prepare a Financial Restatement or (B) the date a court, regulator, or other legally authorized body directs the Company to prepare a Financial Restatement.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">For Incentive-Based Compensation based on stock price or TSR, where the amount of erroneously awarded compensation is not subject to mathematical recalculation directly from the information in the Financial Restatement, then the Compensation Committee shall determine the amount to be recovered based on a reasonable estimate of the effect of the Financial Restatement on the stock price or TSR upon which the Incentive-Based Compensation was received and the Company shall document the determination of that estimate and provide it to Nasdaq.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">Incentive-Based Compensation is considered to have been received by an Executive in the fiscal year during which the applicable financial reporting measure was attained or purportedly attained, even if the payment or grant of such Incentive-Based Compensation occurs after the end of that period.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">The Company may use any legal or equitable remedies that are available to the Company to</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">recoup any erroneously awarded Incentive-Based Compensation, including but not limited to by collecting from the Executive cash payments or shares of Company common stock from or by forfeiting any amounts that the Company owes to the Executive.    </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">No Indemnification</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">The Company shall not indemnify any Executive or pay or reimburse the premium for any insurance policy to cover any losses incurred by such Executive under this Policy.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Exceptions</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">The compensation recouped under this Policy shall not include Incentive-Based Compensation received by an Executive (i) prior to beginning service as an Executive or (ii) if he or she did not serve as an Executive at any time during the performance period applicable to the Incentive-</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">Based Compensation in question. The Compensation Committee (or a majority of independent directors serving on the Board) may determine not to seek recovery from an Executive in whole or part to the extent it determines in its sole discretion that such recovery would be impracticable because (A) the direct expense paid to a third party to assist in enforcing recovery would exceed the recoverable amount (after having made a reasonable attempt to recover the erroneously awarded Incentive-Based Compensation and providing corresponding documentation of such attempt to Nasdaq), (B) recovery would violate the home country law that was adopted prior to November 28, 2022, as determined by an opinion of counsel licensed in the applicable jurisdiction that is acceptable to and provided to Nasdaq, or (C) recovery would likely cause the Company&#8217;s 401(k) plan or any other tax-qualified retirement plan to fail to meet the requirements of Section 401(a)(13) or Section 411(a) of the Internal Revenue Code of 1986, as amended, and the regulations thereunder.</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Other Remedies Not Precluded</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">The exercise by the Compensation Committee of any rights pursuant to this Policy shall be without prejudice to any other rights or remedies that the Company, the Board or the Compensation Committee may have with respect to any Executive subject to this Policy.  </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline">Effective Date and Applicability</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%">This Policy has been adopted by the Board on August 24, 2023, and shall apply to any Incentive-Based Compensation that is received by an Executive on or after October 2, 2023.</font></div><div style="text-align:justify"><font><br></font></div><div><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></div><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>10
<FILENAME>cdxs-20231231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:94d45509-9aef-44d3-a47e-c1e1904e3223,g:402e078b-413f-4095-9479-d13944eb3b89-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cdxs="http://www.codexis.com/20231231" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:dtr-types1="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.codexis.com/20231231">
  <xs:import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd"/>
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.xbrl.org/2003/xlink-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd"/>
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/ecd/2023" schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd"/>
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20231231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20231231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20231231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20231231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="CoverPage" roleURI="http://www.codexis.com/role/CoverPage">
        <link:definition>0000001 - Document - Cover Page</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AuditInformation" roleURI="http://www.codexis.com/role/AuditInformation">
        <link:definition>0000002 - Document - Audit Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedBalanceSheets" roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheets">
        <link:definition>0000003 - Statement - Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedBalanceSheetsParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical">
        <link:definition>0000004 - Statement - Consolidated Balance Sheets (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 id="ConsolidatedStatementsofOperations" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations">
        <link:definition>0000005 - Statement - Consolidated Statements of Operations</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofOperationsParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical">
        <link:definition>0000006 - Statement - Consolidated Statements of Operations (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 id="ConsolidatedStatementsofStockholdersEquity" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity">
        <link:definition>0000007 - Statement - Consolidated Statements of Stockholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofStockholdersEquityParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical">
        <link:definition>0000008 - Statement - Consolidated Statements of Stockholders' Equity (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 id="ConsolidatedStatementsofCashFlows" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows">
        <link:definition>0000009 - Statement - Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofCashFlowsParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical">
        <link:definition>0000010 - Statement - Consolidated Statements of Cash Flows (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 id="DescriptionofBusiness" roleURI="http://www.codexis.com/role/DescriptionofBusiness">
        <link:definition>0000011 - Disclosure - Description of Business</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BasisofPresentationandSummaryofSignificantAccountingPolicies" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies">
        <link:definition>0000012 - Disclosure - Basis of Presentation and 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 id="RevenueRecognition" roleURI="http://www.codexis.com/role/RevenueRecognition">
        <link:definition>0000013 - Disclosure - Revenue Recognition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NetLossperShare" roleURI="http://www.codexis.com/role/NetLossperShare">
        <link:definition>0000014 - Disclosure - Net Loss 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 id="CollaborativeArrangements" roleURI="http://www.codexis.com/role/CollaborativeArrangements">
        <link:definition>0000015 - Disclosure - Collaborative Arrangements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InvestmentsinNonMarketableSecurities" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecurities">
        <link:definition>0000016 - Disclosure - Investments in Non-Marketable Securities</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurements" roleURI="http://www.codexis.com/role/FairValueMeasurements">
        <link:definition>0000017 - 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 id="BalanceSheetDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetails">
        <link:definition>0000018 - Disclosure - Balance Sheet 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 id="StockbasedCompensation" roleURI="http://www.codexis.com/role/StockbasedCompensation">
        <link:definition>0000019 - 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 id="CapitalStock" roleURI="http://www.codexis.com/role/CapitalStock">
        <link:definition>0000020 - Disclosure - Capital Stock</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="A401kPlan" roleURI="http://www.codexis.com/role/A401kPlan">
        <link:definition>0000021 - Disclosure - 401(k) Plan</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxes" roleURI="http://www.codexis.com/role/IncomeTaxes">
        <link:definition>0000022 - 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 id="CommitmentsandContingencies" roleURI="http://www.codexis.com/role/CommitmentsandContingencies">
        <link:definition>0000023 - 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 id="RelatedPartyTransactions" roleURI="http://www.codexis.com/role/RelatedPartyTransactions">
        <link:definition>0000024 - 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 id="SegmentGeographicalandOtherRevenueInformation" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation">
        <link:definition>0000025 - Disclosure - Segment, Geographical and Other Revenue Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AllowanceforCreditLosses" roleURI="http://www.codexis.com/role/AllowanceforCreditLosses">
        <link:definition>0000026 - Disclosure - Allowance for Credit Losses</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RestructuringCharges" roleURI="http://www.codexis.com/role/RestructuringCharges">
        <link:definition>0000027 - Disclosure - Restructuring Charges</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SubsequentEvents" roleURI="http://www.codexis.com/role/SubsequentEvents">
        <link:definition>0000028 - 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 id="BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies">
        <link:definition>9954471 - Disclosure - Basis of Presentation and 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 id="BasisofPresentationandSummaryofSignificantAccountingPoliciesTables" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables">
        <link:definition>9954472 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (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 id="RevenueRecognitionTables" roleURI="http://www.codexis.com/role/RevenueRecognitionTables">
        <link:definition>9954473 - Disclosure - Revenue Recognition (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 id="NetLossperShareTables" roleURI="http://www.codexis.com/role/NetLossperShareTables">
        <link:definition>9954474 - Disclosure - Net Loss 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 id="InvestmentsinNonMarketableSecuritiesTables" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables">
        <link:definition>9954475 - Disclosure - Investments in Non-Marketable Securities (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 id="FairValueMeasurementsTables" roleURI="http://www.codexis.com/role/FairValueMeasurementsTables">
        <link:definition>9954476 - 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 id="BalanceSheetDetailsTables" roleURI="http://www.codexis.com/role/BalanceSheetDetailsTables">
        <link:definition>9954477 - Disclosure - Balance Sheet Details (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 id="StockbasedCompensationTables" roleURI="http://www.codexis.com/role/StockbasedCompensationTables">
        <link:definition>9954478 - 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 id="IncomeTaxesTables" roleURI="http://www.codexis.com/role/IncomeTaxesTables">
        <link:definition>9954479 - Disclosure - Income Taxes (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 id="CommitmentsandContingenciesTables" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesTables">
        <link:definition>9954480 - Disclosure - Commitments and Contingencies (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 id="SegmentGeographicalandOtherRevenueInformationTables" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables">
        <link:definition>9954481 - Disclosure - Segment, Geographical and Other Revenue Information (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 id="AllowanceforCreditLossesTables" roleURI="http://www.codexis.com/role/AllowanceforCreditLossesTables">
        <link:definition>9954482 - Disclosure - Allowance for Credit Losses (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 id="DescriptionofBusinessDetails" roleURI="http://www.codexis.com/role/DescriptionofBusinessDetails">
        <link:definition>9954483 - Disclosure - Description of Business (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 id="BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails">
        <link:definition>9954484 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Narrative (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 id="BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails">
        <link:definition>9954485 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (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 id="RevenueRecognitionDisaggregationofRevenueDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails">
        <link:definition>9954486 - Disclosure - Revenue Recognition - Disaggregation of 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 id="RevenueRecognitionContractswithCustomerDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails">
        <link:definition>9954487 - Disclosure - Revenue Recognition - Contracts with Customer (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 id="RevenueRecognitionNarrativeDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails">
        <link:definition>9954488 - Disclosure - Revenue Recognition - Narrative (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 id="RevenueRecognitionRevenueRecognizedDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails">
        <link:definition>9954489 - Disclosure - Revenue Recognition - Revenue Recognized (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 id="RevenueRecognitionPerformanceObligationDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails">
        <link:definition>9954490 - Disclosure - Revenue Recognition - Performance Obligation (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 id="RevenueRecognitionPerformanceObligationDetails_1" roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1">
        <link:definition>9954490 - Disclosure - Revenue Recognition - Performance Obligation (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 id="NetLossperShareDetails" roleURI="http://www.codexis.com/role/NetLossperShareDetails">
        <link:definition>9954491 - Disclosure - Net Loss 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 id="CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails">
        <link:definition>9954492 - Disclosure - Collaborative Arrangements - GSK Platform Technology Transfer, Collaboration and License Agreement (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 id="CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails">
        <link:definition>9954493 - Disclosure - Collaborative Arrangements - Merck Platform Technology Transfer and License Agreement (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 id="CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails">
        <link:definition>9954494 - Disclosure - Collaborative Arrangements - Merck Sitagliptin Catalyst Supply Agreement (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 id="CollaborativeArrangementsEnzymeSupplyAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails">
        <link:definition>9954495 - Disclosure - Collaborative Arrangements - Enzyme Supply Agreement (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 id="CollaborativeArrangementsCommercialAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails">
        <link:definition>9954496 - Disclosure - Collaborative Arrangements - Commercial Agreement (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 id="CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails">
        <link:definition>9954497 - Disclosure - Collaborative Arrangements - Global Development, Option and License Agreement and Strategic Collaboration Agreement (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 id="CollaborativeArrangementsAcquisitionAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails">
        <link:definition>9954498 - Disclosure - Collaborative Arrangements - Acquisition Agreement (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 id="CollaborativeArrangementsStrategicCollaborationAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails">
        <link:definition>9954499 - Disclosure - Collaborative Arrangements - Strategic Collaboration Agreement (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 id="CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails">
        <link:definition>9954500 - Disclosure - Collaborative Arrangements - Platform Technology Transfer and License Agreement (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 id="CollaborativeArrangementsLicenseAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails">
        <link:definition>9954501 - Disclosure - Collaborative Arrangements - License Agreement (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 id="CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails">
        <link:definition>9954502 - Disclosure - Collaborative Arrangements - Strategic Collaboration and License Agreement (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 id="CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails">
        <link:definition>9954503 - Disclosure - Collaborative Arrangements - Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement (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 id="CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails">
        <link:definition>9954504 - Disclosure - Collaborative Arrangements - Pfizer Enzyme Supply Agreement (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 id="InvestmentsinNonMarketableSecuritiesNarrativeDetails" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails">
        <link:definition>9954505 - Disclosure - Investments in Non-Marketable Securities - Narrative (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 id="InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails">
        <link:definition>9954506 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (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 id="FairValueMeasurementsDetails" roleURI="http://www.codexis.com/role/FairValueMeasurementsDetails">
        <link:definition>9954507 - Disclosure - Fair Value Measurements (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 id="BalanceSheetDetailsCashandCashEquivalentsDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails">
        <link:definition>9954508 - Disclosure - Balance Sheet Details - Cash and Cash Equivalents (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 id="BalanceSheetDetailsNarrativeDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails">
        <link:definition>9954509 - Disclosure - Balance Sheet Details - Narrative (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 id="BalanceSheetDetailsScheduleofInventoryComponentsDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails">
        <link:definition>9954510 - Disclosure - Balance Sheet Details - Schedule of Inventory Components (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 id="BalanceSheetDetailsPropertyandEquipmentnetDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails">
        <link:definition>9954511 - Disclosure - Balance Sheet Details - Property and Equipment, 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 id="BalanceSheetDetailsScheduleofGoodwillDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails">
        <link:definition>9954512 - Disclosure - Balance Sheet Details - 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 id="BalanceSheetDetailsOtherAccruedLiabilitiesDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails">
        <link:definition>9954513 - Disclosure - Balance Sheet Details - Other Accrued 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 id="StockbasedCompensationNarrativeDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails">
        <link:definition>9954514 - Disclosure - Stock-based Compensation - Narrative (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 id="StockbasedCompensationStockBasedCompensationExpenseDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails">
        <link:definition>9954515 - Disclosure - Stock-based Compensation - 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 id="StockbasedCompensationAssumptionsUsedDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails">
        <link:definition>9954516 - Disclosure - Stock-based Compensation - Assumptions Used (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 id="StockbasedCompensationOptionActivityDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails">
        <link:definition>9954517 - Disclosure - Stock-based Compensation - 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 id="StockbasedCompensationAwardActivityDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails">
        <link:definition>9954518 - Disclosure - Stock-based Compensation - Award 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 id="CapitalStockDetails" roleURI="http://www.codexis.com/role/CapitalStockDetails">
        <link:definition>9954519 - Disclosure - Capital Stock (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 id="A401kPlanDetails" roleURI="http://www.codexis.com/role/A401kPlanDetails">
        <link:definition>9954520 - Disclosure - 401(k) Plan (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 id="IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails">
        <link:definition>9954521 - Disclosure - Income Taxes - Components of Loss Before Provision for Income Taxes (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 id="IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails">
        <link:definition>9954522 - Disclosure - Income Taxes - Components of Provision for Income Taxes (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 id="IncomeTaxesTaxRateReconciliationDetails" roleURI="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails">
        <link:definition>9954523 - Disclosure - Income Taxes - Tax Rate Reconciliation (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 id="IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails">
        <link:definition>9954524 - Disclosure - Income Taxes - Components of Deferred Tax 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 id="IncomeTaxesNarrativeDetails" roleURI="http://www.codexis.com/role/IncomeTaxesNarrativeDetails">
        <link:definition>9954525 - Disclosure - Income Taxes - Narrative (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 id="IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" roleURI="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails">
        <link:definition>9954526 - Disclosure - Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (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 id="IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails" roleURI="http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails">
        <link:definition>9954527 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (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 id="CommitmentsandContingenciesNarrativeDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails">
        <link:definition>9954528 - Disclosure - Commitments and Contingencies - Narrative (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 id="CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails" roleURI="http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails">
        <link:definition>9954529 - Disclosure - Commitment and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (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 id="CommitmentsandContingenciesLeaseCostsDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails">
        <link:definition>9954530 - Disclosure - Commitments and Contingencies - Lease Costs (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 id="CommitmentsandContingenciesOtherLeaseInformationDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails">
        <link:definition>9954531 - Disclosure - Commitments and Contingencies - Other Lease Information (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 id="CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails">
        <link:definition>9954532 - Disclosure - Commitments and Contingencies - Maturity Analysis of 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 id="CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1">
        <link:definition>9954532 - Disclosure - Commitments and Contingencies - Maturity Analysis of 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 id="CommitmentsandContingenciesOtherCommitmentsDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails">
        <link:definition>9954533 - Disclosure - Commitments and Contingencies - Other Commitments (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 id="RelatedPartyTransactionsDetails" roleURI="http://www.codexis.com/role/RelatedPartyTransactionsDetails">
        <link:definition>9954534 - Disclosure - Related Party Transactions (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 id="SegmentGeographicalandOtherRevenueInformationNarrativeDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails">
        <link:definition>9954535 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (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 id="SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails">
        <link:definition>9954536 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (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 id="SegmentGeographicalandOtherRevenueInformationRevenuesDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails">
        <link:definition>9954537 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues (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 id="SegmentGeographicalandOtherRevenueInformationGoodwillDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails">
        <link:definition>9954538 - Disclosure - Segment, Geographical and Other Revenue Information - 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 id="AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails" roleURI="http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails">
        <link:definition>9954539 - Disclosure - Allowance for Credit Losses - Analysis of Allowance for Credit Losses (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 id="AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails" roleURI="http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails">
        <link:definition>9954540 - Disclosure - Allowance for Credit Losses - Summary of Accounts Receivable by Aging Category (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 id="RestructuringChargesDetails" roleURI="http://www.codexis.com/role/RestructuringChargesDetails">
        <link:definition>9954541 - Disclosure - Restructuring Charges (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 id="SubsequentEventsDetails" roleURI="http://www.codexis.com/role/SubsequentEventsDetails">
        <link:definition>9954542 - Disclosure - Subsequent Events (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:element id="cdxs_A2022PSUAnd2022PBOMember" abstract="true" name="A2022PSUAnd2022PBOMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_SeriesAAndBPreferredStockMember" abstract="true" name="SeriesAAndBPreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" abstract="false" name="ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="cdxs_SeriesCAndC1PreferredStockMember" abstract="true" name="SeriesCAndC1PreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_TateLyleMember" abstract="true" name="TateLyleMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" abstract="false" name="EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_A2022PBOMember" abstract="true" name="A2022PBOMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CollaborativeArrangementConcentrationRiskMember" abstract="true" name="CollaborativeArrangementConcentrationRiskMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MilestonePaymentPerTargetGeneMember" abstract="true" name="MilestonePaymentPerTargetGeneMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_FourCustomersMember" abstract="true" name="FourCustomersMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_FinancialReceivablesPastDueMember" abstract="true" name="FinancialReceivablesPastDueMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_PfizerMember" abstract="true" name="PfizerMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_NonStatutoryStockOptionsMember" abstract="true" name="NonStatutoryStockOptionsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MAIAgreementMember" abstract="true" name="MAIAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A2022PSUMember" abstract="true" name="A2022PSUMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CommercializationAndEnzymeSupplyAgreementMember" abstract="true" name="CommercializationAndEnzymeSupplyAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SeriesC1PreferredStockMember" abstract="true" name="SeriesC1PreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_SaleOfStockValueOfSharesForIssuance" abstract="false" name="SaleOfStockValueOfSharesForIssuance" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_AllowanceForCreditLossAdjustment" abstract="false" name="AllowanceForCreditLossAdjustment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_A2019AmendedPlanMember" abstract="true" name="A2019AmendedPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_MilestoneOneMember" abstract="true" name="MilestoneOneMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CommercialAgreementMember" abstract="true" name="CommercialAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CollaborativeArrangementNumberOfMilestonePayments" abstract="false" name="CollaborativeArrangementNumberOfMilestonePayments" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" abstract="false" name="LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_LesseeOperatingLeaseOptionToExtendNumber" abstract="false" name="LesseeOperatingLeaseOptionToExtendNumber" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_RevenueFromContractWithCustomerPaymentTerms" abstract="false" name="RevenueFromContractWithCustomerPaymentTerms" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_MolecularAssembliesIncMember" abstract="true" name="MolecularAssembliesIncMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" abstract="false" name="RevenueRecognitionContingentAnnualPaymentsTerm" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_AccountingPoliciesLineItems" abstract="true" name="AccountingPoliciesLineItems" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_AuditorInformationAbstract" abstract="true" name="AuditorInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_ResearchandDevelopmentRevenueMember" abstract="true" name="ResearchandDevelopmentRevenueMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_NovartisMember" abstract="true" name="NovartisMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_TermLoansMember" abstract="true" name="TermLoansMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_DeferredTaxLiabilitiesRightOfUseAssets" abstract="false" name="DeferredTaxLiabilitiesRightOfUseAssets" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_OfficeEquipmentAndFurnitureMember" abstract="true" name="OfficeEquipmentAndFurnitureMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_RevenueFromCollaborativeArrangementContingentAmounts" abstract="false" name="RevenueFromCollaborativeArrangementContingentAmounts" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_CustomerCMember" abstract="true" name="CustomerCMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A400PenoscotMember" abstract="true" name="A400PenoscotMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CollaborativeArrangementUpfrontFeeAmount" abstract="false" name="CollaborativeArrangementUpfrontFeeAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" abstract="false" name="SaleOfStockConsiderationReceivedOnTransactionGross" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_EnzymeSupplyAgreementMember" abstract="true" name="EnzymeSupplyAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_PerformanceShareUnitsPSUsMember" abstract="true" name="PerformanceShareUnitsPSUsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ContractWithCustomerSalesMilestone" abstract="false" name="ContractWithCustomerSalesMilestone" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" abstract="false" name="IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_AcquisitionAgreementMember" abstract="true" name="AcquisitionAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_ComputerEquipmentAndSoftwareMember" abstract="true" name="ComputerEquipmentAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_AllowanceForCreditLossWriteOff" abstract="false" name="AllowanceForCreditLossWriteOff" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_AccountingPoliciesTable" abstract="true" name="AccountingPoliciesTable" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:hypercubeItem" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" abstract="false" name="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_NoncashActivityAbstract" abstract="true" name="NoncashActivityAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_A2019PlanMember" abstract="true" name="A2019PlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_FacilityMaintenanceAgreementMember" abstract="true" name="FacilityMaintenanceAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MasterCollaborationResearchAgreementMember" abstract="true" name="MasterCollaborationResearchAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_FinanceLeaseCost" abstract="false" name="FinanceLeaseCost" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_AssetRetirementObligationWriteoff" abstract="false" name="AssetRetirementObligationWriteoff" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" abstract="false" name="SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRetainerFee" abstract="false" name="ContractWithCustomerLiabilityRetainerFee" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_CustomerBMember" abstract="true" name="CustomerBMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_OperatingLeaseRightOfUseAssetRollForward" abstract="true" name="OperatingLeaseRightOfUseAssetRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:perShareItemType"/>
  <xs:element id="cdxs_PiperSandlerCoMember" abstract="true" name="PiperSandlerCoMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:perShareItemType"/>
  <xs:element id="cdxs_TermLoanMember" abstract="true" name="TermLoanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerAMember" abstract="true" name="CustomerAMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_StrategicCollaborationAgreementMember" abstract="true" name="StrategicCollaborationAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_UpFrontPaymentMember" abstract="true" name="UpFrontPaymentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SaleOfStockPeriod" abstract="false" name="SaleOfStockPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_OperatingLeaseInterestAccretion" abstract="false" name="OperatingLeaseInterestAccretion" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" abstract="false" name="RevenueRecognitionContingentAnnualReceivableIncrease" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_NestleHealthScienceMember" abstract="true" name="NestleHealthScienceMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" abstract="false" name="EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cdxs_A2021PBOMember" abstract="true" name="A2021PBOMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MerckMember" abstract="true" name="MerckMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" abstract="false" name="ContractWithCustomerLiabilityPortionOfRetainerFee" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_GSKMember" abstract="true" name="GSKMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" abstract="false" name="ConcentrationRiskSupplyRiskPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cdxs_RevenueFromContractWithCustomerSettlementFee" abstract="false" name="RevenueFromContractWithCustomerSettlementFee" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" abstract="false" name="TermOfCollaborativeResearchAndDevelopmentAgreement" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" abstract="false" name="ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" abstract="false" name="RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_PerformanceStockUnitsMember" abstract="true" name="PerformanceStockUnitsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_MilestoneTwoMember" abstract="true" name="MilestoneTwoMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" abstract="false" name="ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" abstract="false" name="ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SupplyAgreementMember" abstract="true" name="SupplyAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cdxs_CommonStockWarrantsMember" abstract="true" name="CommonStockWarrantsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_RocheMember" abstract="true" name="RocheMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerEMember" abstract="true" name="CustomerEMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" abstract="false" name="EquitySecuritiesWithoutReadilyDeterminableFairValueShares" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cdxs_CashPaidAbstract" abstract="true" name="CashPaidAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_A2022InducementPlanMember" abstract="true" name="A2022InducementPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ReceivableFromCollaborativeArrangement" abstract="false" name="ReceivableFromCollaborativeArrangement" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_DebtInstrumentNumberOfTranches" abstract="false" name="DebtInstrumentNumberOfTranches" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_NovelBiotherapeuticsMember" abstract="true" name="NovelBiotherapeuticsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" abstract="false" name="PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_OperatingLeaseLiabilityRollForward" abstract="true" name="OperatingLeaseLiabilityRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cdxs_NumberOfBusinessSegments" abstract="false" name="NumberOfBusinessSegments" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_LongTermUnbilledReceivablesMember" abstract="true" name="LongTermUnbilledReceivablesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" abstract="true" name="TechnologyTransferCollaborationandLicenseAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_TermLoansSecondTrancheMember" abstract="true" name="TermLoansSecondTrancheMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_PerformanceBasedOptionsPBOsMember" abstract="true" name="PerformanceBasedOptionsPBOsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_RevenueRecognitionNumberOfAnnualPayment" abstract="false" name="RevenueRecognitionNumberOfAnnualPayment" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_OtherInformationAbstract" abstract="true" name="OtherInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_AssetImpairmentAndOtherCharges" abstract="false" name="AssetImpairmentAndOtherCharges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SitagliptinEnzymeMember" abstract="true" name="SitagliptinEnzymeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EnzymeProductMember" abstract="true" name="EnzymeProductMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_DebtInstrumentInterestPeriod" abstract="false" name="DebtInstrumentInterestPeriod" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_IncentiveStockOptionsMember" abstract="true" name="IncentiveStockOptionsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_CashDepositMember" abstract="true" name="CashDepositMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_NestecLtd.NestleHealthSciencesMember" abstract="true" name="NestecLtd.NestleHealthSciencesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" abstract="false" name="SaleOfStockCommissionsPercentageOfGrossSalesPrice" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_LaboratoryEquipmentMember" abstract="true" name="LaboratoryEquipmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_TakedaPharmaceuticalCoLtdMember" abstract="true" name="TakedaPharmaceuticalCoLtdMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ShippingAndDistributionCost" abstract="false" name="ShippingAndDistributionCost" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_DeferredTaxAssetsLeaseLiability" abstract="false" name="DeferredTaxAssetsLeaseLiability" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SanCarlosMember" abstract="true" name="SanCarlosMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" abstract="true" name="OperatingLossAndTaxCreditCarryforwardsLineItems" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_CustomerFMember" abstract="true" name="CustomerFMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_OperatingLeaseWriteOffDueToLeaseModification" abstract="false" name="OperatingLeaseWriteOffDueToLeaseModification" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ShortTermUnbilledReceivablesMember" abstract="true" name="ShortTermUnbilledReceivablesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_TermLoansFirstTrancheMember" abstract="true" name="TermLoansFirstTrancheMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_SeqWellMember" abstract="true" name="SeqWellMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ArzedaMember" abstract="true" name="ArzedaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" abstract="false" name="SaleOfStockSecuritiesRegisteredAggregateAmount" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RevenueRecognitionContingentReceivable" abstract="false" name="RevenueRecognitionContingentReceivable" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RSUsAndRSAsMember" abstract="true" name="RSUsAndRSAsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SeriesB2PreferredStockMember" abstract="true" name="SeriesB2PreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" abstract="false" name="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_A200220PenobscotMember" abstract="true" name="A200220PenobscotMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" abstract="false" name="ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cdxs_A2021PSUAnd2021PBOMember" abstract="true" name="A2021PSUAnd2021PBOMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A2021PSUMember" abstract="true" name="A2021PSUMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_RelatedPartyTransactionMilestonePaymentReceived" abstract="false" name="RelatedPartyTransactionMilestonePaymentReceived" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_A501ChesapeakeMember" abstract="true" name="A501ChesapeakeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_PortonMember" abstract="true" name="PortonMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_OperatingLossAndTaxCreditCarryforwardsTable" abstract="true" name="OperatingLossAndTaxCreditCarryforwardsTable" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:hypercubeItem" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_CustomerDMember" abstract="true" name="CustomerDMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_RevenueRecognitionAnnualPayment" abstract="false" name="RevenueRecognitionAnnualPayment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_TwoCustomersMember" abstract="true" name="TwoCustomersMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" abstract="false" name="ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>11
<FILENAME>cdxs-20231231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:94d45509-9aef-44d3-a47e-c1e1904e3223,g:402e078b-413f-4095-9479-d13944eb3b89-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedBalanceSheets"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_508f5ac3-7121-4c58-923f-28ffb63e81a5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_c9a1f7b0-a435-4599-9746-fdac9e231f80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_508f5ac3-7121-4c58-923f-28ffb63e81a5" xlink:to="loc_us-gaap_LiabilitiesCurrent_c9a1f7b0-a435-4599-9746-fdac9e231f80" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_856aba91-369c-491a-9387-1d1351159786" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_508f5ac3-7121-4c58-923f-28ffb63e81a5" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_856aba91-369c-491a-9387-1d1351159786" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_08c45419-8b5a-47cd-8aa2-795b10c5675b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_508f5ac3-7121-4c58-923f-28ffb63e81a5" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_08c45419-8b5a-47cd-8aa2-795b10c5675b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_b8f6a768-8b55-4ed9-bae8-0380e48aaabc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_508f5ac3-7121-4c58-923f-28ffb63e81a5" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_b8f6a768-8b55-4ed9-bae8-0380e48aaabc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent_047314a6-eeb4-436b-bf20-113c409e3c41" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_RestrictedCashNoncurrent_047314a6-eeb4-436b-bf20-113c409e3c41" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_d77d5973-87c3-4cb5-856a-0b638f747b72" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_AssetsCurrent_d77d5973-87c3-4cb5-856a-0b638f747b72" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_a554b3f7-248b-47da-bcc3-70a41cc75066" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_a554b3f7-248b-47da-bcc3-70a41cc75066" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_ee39efcf-bf7d-4f8f-804c-b84fd8509935" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_ee39efcf-bf7d-4f8f-804c-b84fd8509935" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_91a32fae-7f97-48cc-b8f6-1e7ccb9e2bce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_91a32fae-7f97-48cc-b8f6-1e7ccb9e2bce" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_a20a5972-290b-4fab-a11f-896783502904" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_a20a5972-290b-4fab-a11f-896783502904" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_79c5727d-31ae-4b2d-8c00-df798e852e27" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b4d093e2-8735-45d7-a126-185181a01d6a" xlink:to="loc_us-gaap_Goodwill_79c5727d-31ae-4b2d-8c00-df798e852e27" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross_b9c834ae-13e8-4be4-92b6-3277a7373f13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesReceivableGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_862a8cbe-852b-4c3f-99f8-8410a2819b75" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NotesReceivableGross_b9c834ae-13e8-4be4-92b6-3277a7373f13" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_862a8cbe-852b-4c3f-99f8-8410a2819b75" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_93d2bc2d-0fef-42d3-8dbf-6f5362a84b3d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NotesReceivableGross_b9c834ae-13e8-4be4-92b6-3277a7373f13" xlink:to="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_93d2bc2d-0fef-42d3-8dbf-6f5362a84b3d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_6b6c3909-3643-4f2c-afdd-d5634a37444f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NotesReceivableGross_b9c834ae-13e8-4be4-92b6-3277a7373f13" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_6b6c3909-3643-4f2c-afdd-d5634a37444f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_50f2e932-67df-4555-9370-0d53f2bc3db2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValue_28a74548-cb1c-4de2-a55c-935a477df65a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_50f2e932-67df-4555-9370-0d53f2bc3db2" xlink:to="loc_us-gaap_PreferredStockValue_28a74548-cb1c-4de2-a55c-935a477df65a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue_431ce445-8491-4c98-95be-7f9971bf9ee1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_50f2e932-67df-4555-9370-0d53f2bc3db2" xlink:to="loc_us-gaap_CommonStockValue_431ce445-8491-4c98-95be-7f9971bf9ee1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital_497f51b4-196c-4433-8121-a877931d7607" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_50f2e932-67df-4555-9370-0d53f2bc3db2" xlink:to="loc_us-gaap_AdditionalPaidInCapital_497f51b4-196c-4433-8121-a877931d7607" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b8bdb15d-04ea-4f96-b6a4-7d6abc559c68" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_50f2e932-67df-4555-9370-0d53f2bc3db2" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b8bdb15d-04ea-4f96-b6a4-7d6abc559c68" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_24ccd9d3-102b-4b39-b4cb-b213bb5fd804" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_94615694-aac0-426e-a103-cb5f6e778f47" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_24ccd9d3-102b-4b39-b4cb-b213bb5fd804" xlink:to="loc_us-gaap_AccountsPayableCurrent_94615694-aac0-426e-a103-cb5f6e778f47" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_565a10b8-ed8c-408c-a8a7-78c6b2ad24ea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_24ccd9d3-102b-4b39-b4cb-b213bb5fd804" xlink:to="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_565a10b8-ed8c-408c-a8a7-78c6b2ad24ea" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_675d4850-4e1b-48a2-bcb2-5cd5c7b39411" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_24ccd9d3-102b-4b39-b4cb-b213bb5fd804" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_675d4850-4e1b-48a2-bcb2-5cd5c7b39411" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_6e47b83a-c852-472f-853d-f28e07230210" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_24ccd9d3-102b-4b39-b4cb-b213bb5fd804" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_6e47b83a-c852-472f-853d-f28e07230210" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_df341514-2c84-47d3-a3e6-9567ccba762a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_24ccd9d3-102b-4b39-b4cb-b213bb5fd804" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_df341514-2c84-47d3-a3e6-9567ccba762a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_c5403e15-8e5e-48bb-ad50-4fcb6ce2dc1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_aac63b18-9684-4222-9b38-deebd79f0722" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_c5403e15-8e5e-48bb-ad50-4fcb6ce2dc1d" xlink:to="loc_us-gaap_Liabilities_aac63b18-9684-4222-9b38-deebd79f0722" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_697570d4-c5a0-4e41-bf5f-a177f53f10a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_c5403e15-8e5e-48bb-ad50-4fcb6ce2dc1d" xlink:to="loc_us-gaap_CommitmentsAndContingencies_697570d4-c5a0-4e41-bf5f-a177f53f10a7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_29bc53cc-7480-45e7-aec4-7f960a74807c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_c5403e15-8e5e-48bb-ad50-4fcb6ce2dc1d" xlink:to="loc_us-gaap_StockholdersEquity_29bc53cc-7480-45e7-aec4-7f960a74807c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_f6ebb0e7-75a7-415d-8714-cbf5dcc00b29" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross_c43620d9-0aef-4c57-814d-33f3eda432ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesReceivableGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_f6ebb0e7-75a7-415d-8714-cbf5dcc00b29" xlink:to="loc_us-gaap_NotesReceivableGross_c43620d9-0aef-4c57-814d-33f3eda432ad" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_4cdd9f0a-e56d-40ae-a2ec-07a9d57fa651" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_f6ebb0e7-75a7-415d-8714-cbf5dcc00b29" xlink:to="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_4cdd9f0a-e56d-40ae-a2ec-07a9d57fa651" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_4ba4d93a-61df-4e78-99cd-decda3411205" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_e67e3dc5-c8de-47fd-b018-f85927771faf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_4ba4d93a-61df-4e78-99cd-decda3411205" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_e67e3dc5-c8de-47fd-b018-f85927771faf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_1b23fa4e-4169-4594-b0f6-136ce8c332fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_4ba4d93a-61df-4e78-99cd-decda3411205" xlink:to="loc_us-gaap_InventoryNet_1b23fa4e-4169-4594-b0f6-136ce8c332fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_7953a63c-e1ff-4c82-940d-87c93c58285b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_4ba4d93a-61df-4e78-99cd-decda3411205" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_7953a63c-e1ff-4c82-940d-87c93c58285b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_46856397-994b-4070-bfad-77347300be2f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_4ba4d93a-61df-4e78-99cd-decda3411205" xlink:to="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_46856397-994b-4070-bfad-77347300be2f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCash_bd859f8c-a219-4716-a114-9fc76ed20639" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCash"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_4ba4d93a-61df-4e78-99cd-decda3411205" xlink:to="loc_us-gaap_RestrictedCash_bd859f8c-a219-4716-a114-9fc76ed20639" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofOperations"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_b393c24a-2f61-4924-b97f-2d5b9407b136" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetImpairmentAndOtherCharges_88e02701-0d68-45e7-b9c9-5bde743578a1" xlink:href="cdxs-20231231.xsd#cdxs_AssetImpairmentAndOtherCharges"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_b393c24a-2f61-4924-b97f-2d5b9407b136" xlink:to="loc_cdxs_AssetImpairmentAndOtherCharges_88e02701-0d68-45e7-b9c9-5bde743578a1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_544c39a7-6ffa-43bf-b587-dfc3cd82e94b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_b393c24a-2f61-4924-b97f-2d5b9407b136" xlink:to="loc_us-gaap_RestructuringCharges_544c39a7-6ffa-43bf-b587-dfc3cd82e94b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_8b7f0c31-1dab-4e15-9722-90a208bcafe5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_b393c24a-2f61-4924-b97f-2d5b9407b136" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_8b7f0c31-1dab-4e15-9722-90a208bcafe5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_4d7111bd-c965-49ee-8afc-84dc6d523f61" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_b393c24a-2f61-4924-b97f-2d5b9407b136" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_4d7111bd-c965-49ee-8afc-84dc6d523f61" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_b4927dfb-6c0a-41c5-8336-8c6e255495a4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_b393c24a-2f61-4924-b97f-2d5b9407b136" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_b4927dfb-6c0a-41c5-8336-8c6e255495a4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_730f270b-611b-450f-8259-c1a4103dd59c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4bd28d56-6b71-480b-a300-93a4b4eee5ea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_730f270b-611b-450f-8259-c1a4103dd59c" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4bd28d56-6b71-480b-a300-93a4b4eee5ea" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_94780880-2035-4cb5-b1f6-6bd320f17f07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_730f270b-611b-450f-8259-c1a4103dd59c" xlink:to="loc_us-gaap_CostsAndExpenses_94780880-2035-4cb5-b1f6-6bd320f17f07" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d4856015-923c-4c26-9779-2fe32f4c8730" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_cdbd5eb4-53aa-452b-aa7b-1c9fb96ecfa5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_d4856015-923c-4c26-9779-2fe32f4c8730" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_cdbd5eb4-53aa-452b-aa7b-1c9fb96ecfa5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_53dffcad-1959-4ebf-86c0-e83be5c15fb9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_d4856015-923c-4c26-9779-2fe32f4c8730" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_53dffcad-1959-4ebf-86c0-e83be5c15fb9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_e3783f0f-4ae0-4f4c-b29c-83726f1186c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_fff62c7d-3a44-4c78-97e7-7e20c0409a74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_e3783f0f-4ae0-4f4c-b29c-83726f1186c8" xlink:to="loc_us-gaap_OperatingIncomeLoss_fff62c7d-3a44-4c78-97e7-7e20c0409a74" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest_52d17f34-22d5-4a79-b416-fe6040affc24" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_e3783f0f-4ae0-4f4c-b29c-83726f1186c8" xlink:to="loc_us-gaap_InvestmentIncomeInterest_52d17f34-22d5-4a79-b416-fe6040affc24" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_20973f68-71a6-4884-90f6-1a41948d29ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_e3783f0f-4ae0-4f4c-b29c-83726f1186c8" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_20973f68-71a6-4884-90f6-1a41948d29ec" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_3d133d3e-5b0a-4785-8e0a-401bf3c5da6a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_3d133d3e-5b0a-4785-8e0a-401bf3c5da6a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_46e9dd58-8139-4ccb-a533-cf903d011deb" xlink:href="cdxs-20231231.xsd#cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_46e9dd58-8139-4ccb-a533-cf903d011deb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_be37b2aa-b1fd-4478-8a16-51f14731b076" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_Depreciation_be37b2aa-b1fd-4478-8a16-51f14731b076" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_b3b94502-454d-49eb-8d6e-0603dc38a4f7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncome"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_OtherNoncashIncome_b3b94502-454d-49eb-8d6e-0603dc38a4f7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_f3a89684-d09c-44cd-973e-140971263709" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_f3a89684-d09c-44cd-973e-140971263709" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_c767bb45-471c-405f-bcfe-6ae156ce13ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_c767bb45-471c-405f-bcfe-6ae156ce13ad" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_bd0fa1ec-f603-40a3-81f6-039136c88d2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_ShareBasedCompensation_bd0fa1ec-f603-40a3-81f6-039136c88d2b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_c89b855a-483e-4010-b0e2-0fc9a030cc9b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInFinanceReceivables"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_c89b855a-483e-4010-b0e2-0fc9a030cc9b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_92133a4e-c840-45b4-a984-3b889f49f175" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_92133a4e-c840-45b4-a984-3b889f49f175" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_c8bdfe45-e635-4240-8b89-fdf856afbe83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_c8bdfe45-e635-4240-8b89-fdf856afbe83" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_d39c8a1b-543f-433c-9afb-f743b03943db" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_d39c8a1b-543f-433c-9afb-f743b03943db" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_462e057a-39ab-4492-bb51-489fc67cf366" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:calculationArc order="12" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_462e057a-39ab-4492-bb51-489fc67cf366" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetImpairmentAndOtherCharges_2523ffff-ee3c-4611-964b-c527972b6808" xlink:href="cdxs-20231231.xsd#cdxs_AssetImpairmentAndOtherCharges"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_cdxs_AssetImpairmentAndOtherCharges_2523ffff-ee3c-4611-964b-c527972b6808" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_39033a2a-fee7-460d-81d0-3a05fc64a441" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_39033a2a-fee7-460d-81d0-3a05fc64a441" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_0c351512-3a87-4878-86e7-b9c958ec7347" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities"/>
    <link:calculationArc order="15" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_0c351512-3a87-4878-86e7-b9c958ec7347" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_8ca5f1d3-d0e1-476c-8f94-51af10f9e3c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="16" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_8ca5f1d3-d0e1-476c-8f94-51af10f9e3c2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_6cc94985-9176-41e9-a7fb-05d41a9b1622" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2aba0d06-8d3d-4897-b65d-ee176a77a3f0" xlink:to="loc_us-gaap_NetIncomeLoss_6cc94985-9176-41e9-a7fb-05d41a9b1622" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_0eb46064-ffb1-42a1-9ab1-fa76f8caa368" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_df68150c-7a80-49a9-96fb-d2c7ba48efe2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_0eb46064-ffb1-42a1-9ab1-fa76f8caa368" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_df68150c-7a80-49a9-96fb-d2c7ba48efe2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_01984778-1df3-49c8-88df-337337e7aea3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_0eb46064-ffb1-42a1-9ab1-fa76f8caa368" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_01984778-1df3-49c8-88df-337337e7aea3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_5da13850-ed97-4e4c-afca-e8efba61959b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_0eb46064-ffb1-42a1-9ab1-fa76f8caa368" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_5da13850-ed97-4e4c-afca-e8efba61959b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_d75a88ac-82ca-426c-9fed-0998adac75d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_97e1ceb6-bdfd-4d12-867a-210d2dbc4004" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_d75a88ac-82ca-426c-9fed-0998adac75d5" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_97e1ceb6-bdfd-4d12-867a-210d2dbc4004" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_9f33d3ed-e63c-4a7b-8168-f35aca0b8c33" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_d75a88ac-82ca-426c-9fed-0998adac75d5" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_9f33d3ed-e63c-4a7b-8168-f35aca0b8c33" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_d8dabfcd-d5f7-42a6-b43c-3e55e3a1546b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_d75a88ac-82ca-426c-9fed-0998adac75d5" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_d8dabfcd-d5f7-42a6-b43c-3e55e3a1546b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_902b619d-df41-47d3-bf31-d17777c1fa9b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_266c854b-a4c1-4f06-acf0-30ea7be10660" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_902b619d-df41-47d3-bf31-d17777c1fa9b" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_266c854b-a4c1-4f06-acf0-30ea7be10660" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalents_da332f75-63ce-4eb3-9593-08df5665c159" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalents"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_902b619d-df41-47d3-bf31-d17777c1fa9b" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalents_da332f75-63ce-4eb3-9593-08df5665c159" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0cd16116-d43d-41dd-b2ae-b4e1b2593f25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_4fdab3be-259f-4ef7-99bc-e4370a1261c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0cd16116-d43d-41dd-b2ae-b4e1b2593f25" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_4fdab3be-259f-4ef7-99bc-e4370a1261c3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_ab58560f-4eed-4fe1-bd20-33150786e11c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0cd16116-d43d-41dd-b2ae-b4e1b2593f25" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_ab58560f-4eed-4fe1-bd20-33150786e11c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfFinancingCosts_d3640588-b66d-4e29-8ef7-4a1d917ee990" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfFinancingCosts"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0cd16116-d43d-41dd-b2ae-b4e1b2593f25" xlink:to="loc_us-gaap_PaymentsOfFinancingCosts_d3640588-b66d-4e29-8ef7-4a1d917ee990" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_2c2ecd73-83db-4ff9-b3aa-52af54ca1555" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0cd16116-d43d-41dd-b2ae-b4e1b2593f25" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_2c2ecd73-83db-4ff9-b3aa-52af54ca1555" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionRevenueRecognizedDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_99d26c02-2588-43ff-a378-9e4da1c0f2c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_31616ffa-e264-42c3-a02d-23f0c20d350c" xlink:href="cdxs-20231231.xsd#cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_99d26c02-2588-43ff-a378-9e4da1c0f2c8" xlink:to="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_31616ffa-e264-42c3-a02d-23f0c20d350c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_87420bff-a1a6-460c-8380-db5d6f8dd7f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_99d26c02-2588-43ff-a378-9e4da1c0f2c8" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_87420bff-a1a6-460c-8380-db5d6f8dd7f6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_16a744e7-d3b1-43db-b3a9-f5c6ae4633c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_99d26c02-2588-43ff-a378-9e4da1c0f2c8" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_16a744e7-d3b1-43db-b3a9-f5c6ae4633c7" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsScheduleofInventoryComponentsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_bcb3404d-59ec-4c61-9e4a-78911626eb37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterials_6f62166a-bf66-466c-b02a-c6c35ee98022" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterials"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_bcb3404d-59ec-4c61-9e4a-78911626eb37" xlink:to="loc_us-gaap_InventoryRawMaterials_6f62166a-bf66-466c-b02a-c6c35ee98022" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcess_de598a63-1fac-44ef-979f-3354d323f129" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcess"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_bcb3404d-59ec-4c61-9e4a-78911626eb37" xlink:to="loc_us-gaap_InventoryWorkInProcess_de598a63-1fac-44ef-979f-3354d323f129" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoods_9aff6dcd-0f5f-4153-8b2d-fe0b2914c0ce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_bcb3404d-59ec-4c61-9e4a-78911626eb37" xlink:to="loc_us-gaap_InventoryFinishedGoods_9aff6dcd-0f5f-4153-8b2d-fe0b2914c0ce" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsPropertyandEquipmentnetDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_09b55ba7-737c-4a01-a044-7ec688dffbb0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_91e2501e-fb12-43f2-a334-f506147361e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_09b55ba7-737c-4a01-a044-7ec688dffbb0" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_91e2501e-fb12-43f2-a334-f506147361e7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_61d97a04-c536-4167-acaa-a126dec351f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_09b55ba7-737c-4a01-a044-7ec688dffbb0" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_61d97a04-c536-4167-acaa-a126dec351f8" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsOtherAccruedLiabilitiesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_94a9195d-f68a-4ac7-b580-da46dcb103e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_c5babda1-16e2-4e7a-aa21-8b34376ef45a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_94a9195d-f68a-4ac7-b580-da46dcb103e2" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_c5babda1-16e2-4e7a-aa21-8b34376ef45a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseObligation_de96c0bf-5b4b-48dc-b76d-3ae9970b1c1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PurchaseObligation"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_94a9195d-f68a-4ac7-b580-da46dcb103e2" xlink:to="loc_us-gaap_PurchaseObligation_de96c0bf-5b4b-48dc-b76d-3ae9970b1c1d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_e56bba99-2593-48df-9639-35194c5f0bd9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_94a9195d-f68a-4ac7-b580-da46dcb103e2" xlink:to="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_e56bba99-2593-48df-9639-35194c5f0bd9" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0c861a6c-d0d7-41ed-bebb-9db87f4635bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_b4faa284-e620-4ae9-b52f-d5c52434df78" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0c861a6c-d0d7-41ed-bebb-9db87f4635bd" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_b4faa284-e620-4ae9-b52f-d5c52434df78" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_bdee792f-1e18-4dcb-958a-0fe469a7f85e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_0c861a6c-d0d7-41ed-bebb-9db87f4635bd" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_bdee792f-1e18-4dcb-958a-0fe469a7f85e" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_5c5c453d-1b38-46b9-a377-084915e32906" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_6331bacc-beae-4121-93e5-cd6418a05c02" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_5c5c453d-1b38-46b9-a377-084915e32906" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_6331bacc-beae-4121-93e5-cd6418a05c02" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_85f68939-305f-420c-a59d-2fc67bca9939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_941a03c8-9a25-4b3f-9deb-4d43f5e3c8f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_85f68939-305f-420c-a59d-2fc67bca9939" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_941a03c8-9a25-4b3f-9deb-4d43f5e3c8f8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_a0e01257-9339-4eba-8d80-21a5cbc1e7c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_85f68939-305f-420c-a59d-2fc67bca9939" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_a0e01257-9339-4eba-8d80-21a5cbc1e7c8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_1d4162e8-e88e-4f26-aa1d-edcda2bc191b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_3b0c0d16-407f-4374-9f9d-fafb1df4d582" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_1d4162e8-e88e-4f26-aa1d-edcda2bc191b" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_3b0c0d16-407f-4374-9f9d-fafb1df4d582" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_21a5bbb5-761f-40a4-9925-2e5edafd96fd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_1d4162e8-e88e-4f26-aa1d-edcda2bc191b" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_21a5bbb5-761f-40a4-9925-2e5edafd96fd" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesTaxRateReconciliationDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_05206fe3-9327-425b-b925-d3871924ab89" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_05206fe3-9327-425b-b925-d3871924ab89" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_5d3ff07b-8b8d-421a-9c2b-e06a0d983b55" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_5d3ff07b-8b8d-421a-9c2b-e06a0d983b55" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_2479feb2-cb9d-4e8c-9651-25f36ae2dd37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_2479feb2-cb9d-4e8c-9651-25f36ae2dd37" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_89f3308c-3d7c-407c-b72e-d0514880b67c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_89f3308c-3d7c-407c-b72e-d0514880b67c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_e70a1505-5f41-4687-a45d-3761ea2eece4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_e70a1505-5f41-4687-a45d-3761ea2eece4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_8e652d8a-c7a1-4315-b8ee-9f728118d162" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_8e652d8a-c7a1-4315-b8ee-9f728118d162" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_1a3e2ce3-e69b-429e-b971-70554301a5e5" xlink:href="cdxs-20231231.xsd#cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_1a3e2ce3-e69b-429e-b971-70554301a5e5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_af7025aa-f7ca-48b6-8ef8-f35c0755ab87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_5df0fec1-78f0-4f21-9578-e922cd6b0201" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_af7025aa-f7ca-48b6-8ef8-f35c0755ab87" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_b11fe606-7966-40be-b6a3-8dda44ecfc3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_3ca06766-c3b1-4871-89e1-22639c84fcf6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_b11fe606-7966-40be-b6a3-8dda44ecfc3a" xlink:to="loc_us-gaap_DeferredTaxAssetsGross_3ca06766-c3b1-4871-89e1-22639c84fcf6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_6f62bbf4-fd55-4eab-8807-c59534f99822" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_b11fe606-7966-40be-b6a3-8dda44ecfc3a" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilities_6f62bbf4-fd55-4eab-8807-c59534f99822" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_5ac42634-0af0-4a7c-83ab-154abb060df1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_b11fe606-7966-40be-b6a3-8dda44ecfc3a" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_5ac42634-0af0-4a7c-83ab-154abb060df1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsDeferredIncome_364ccded-530e-4e2a-8411-cdf9b5a89a17" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsDeferredIncome"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsDeferredIncome_364ccded-530e-4e2a-8411-cdf9b5a89a17" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_d36d9eae-ad19-4418-a142-459b8ede2e96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_d36d9eae-ad19-4418-a142-459b8ede2e96" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_b90c27ee-b96f-4deb-8c73-12442dbf528a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_b90c27ee-b96f-4deb-8c73-12442dbf528a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_469a9a31-dcb9-426c-9cb5-f20652afd1f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_469a9a31-dcb9-426c-9cb5-f20652afd1f1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_b9535c24-4b5d-40b0-a417-1d1d71493d65" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_b9535c24-4b5d-40b0-a417-1d1d71493d65" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxAssetsLeaseLiability_466bcd3a-59fa-4886-8c36-58c2cbd36ab2" xlink:href="cdxs-20231231.xsd#cdxs_DeferredTaxAssetsLeaseLiability"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_cdxs_DeferredTaxAssetsLeaseLiability_466bcd3a-59fa-4886-8c36-58c2cbd36ab2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_70615f4a-b1b9-4d6f-b73a-208a7c4ff91d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_70615f4a-b1b9-4d6f-b73a-208a7c4ff91d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_98d026f6-6b8f-40dd-b905-434624cded51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_98d026f6-6b8f-40dd-b905-434624cded51" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther_dc8069ee-8cde-4063-bd2b-25b7e93bac5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsOther_dc8069ee-8cde-4063-bd2b-25b7e93bac5e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_fdfcf7db-0486-4103-91e8-da88203b6746" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_fdfcf7db-0486-4103-91e8-da88203b6746" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_b84a5c9a-8546-4c3f-9abf-3e61d290cf70" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsCapitalLossCarryforwards"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_03344153-178b-45ab-8f26-965a379e6ec3" xlink:to="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_b84a5c9a-8546-4c3f-9abf-3e61d290cf70" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_1bb7904f-deda-4b88-8d53-e96e7d71c62f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_66619cf6-058d-420b-9c86-28df77ef679d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities_1bb7904f-deda-4b88-8d53-e96e7d71c62f" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_66619cf6-058d-420b-9c86-28df77ef679d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_64ba4700-fe28-40a9-8fe1-1f79acb04cd5" xlink:href="cdxs-20231231.xsd#cdxs_DeferredTaxLiabilitiesRightOfUseAssets"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities_1bb7904f-deda-4b88-8d53-e96e7d71c62f" xlink:to="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_64ba4700-fe28-40a9-8fe1-1f79acb04cd5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesOther_240550db-8b81-41ac-871a-20664b0c8193" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesOther"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities_1bb7904f-deda-4b88-8d53-e96e7d71c62f" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesOther_240550db-8b81-41ac-871a-20664b0c8193" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesLeaseCostsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_dbaf7f8f-9796-4fbb-8168-322223574dbb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCost"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermLeaseCost_06304ac9-2238-48d3-9bde-a476739da3d1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermLeaseCost"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LeaseCost_dbaf7f8f-9796-4fbb-8168-322223574dbb" xlink:to="loc_us-gaap_ShortTermLeaseCost_06304ac9-2238-48d3-9bde-a476739da3d1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_4507ced6-1b0e-4a20-8d24-1d565bef04c4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseCost"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LeaseCost_dbaf7f8f-9796-4fbb-8168-322223574dbb" xlink:to="loc_us-gaap_OperatingLeaseCost_4507ced6-1b0e-4a20-8d24-1d565bef04c4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinanceLeaseCost_fbf748a7-6713-4fa7-9bb0-3265e0c55e53" xlink:href="cdxs-20231231.xsd#cdxs_FinanceLeaseCost"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LeaseCost_dbaf7f8f-9796-4fbb-8168-322223574dbb" xlink:to="loc_cdxs_FinanceLeaseCost_fbf748a7-6713-4fa7-9bb0-3265e0c55e53" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_097cb05b-6a9b-4328-9036-69229d5786c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_097cb05b-6a9b-4328-9036-69229d5786c8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_40cfb36c-878e-4f48-beb5-adf98eaa0b4b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_40cfb36c-878e-4f48-beb5-adf98eaa0b4b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_aaa0299c-11de-4ebe-8775-1308f7fd88c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_aaa0299c-11de-4ebe-8775-1308f7fd88c0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_e1eb9941-4344-460f-9fa9-40693e6b393c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_e1eb9941-4344-460f-9fa9-40693e6b393c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_d8e233ba-6ec8-4612-ba29-3d9396875a06" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_d8e233ba-6ec8-4612-ba29-3d9396875a06" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_ab0018bd-d74b-49c9-aead-9a65842176c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_abf3ff45-5529-45a8-90bf-513ccbd5cdd3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_ab0018bd-d74b-49c9-aead-9a65842176c9" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_c2cb40b8-bdb8-42dc-af4c-053fd27726e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_dc7dc176-2944-482d-a6e1-0273b9c09742" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_c2cb40b8-bdb8-42dc-af4c-053fd27726e6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_dc7dc176-2944-482d-a6e1-0273b9c09742" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_cf69fb58-f5ad-4ae8-a942-d38c3c6d04dd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_c2cb40b8-bdb8-42dc-af4c-053fd27726e6" xlink:to="loc_us-gaap_OperatingLeaseLiability_cf69fb58-f5ad-4ae8-a942-d38c3c6d04dd" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesOtherCommitmentsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitment_f6b28de1-7607-47b1-bfb4-d7bb56c85137" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInSecondYear_c1a9add9-577f-43a6-a135-8476e8e75361" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInSecondYear"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherCommitment_f6b28de1-7607-47b1-bfb4-d7bb56c85137" xlink:to="loc_us-gaap_OtherCommitmentDueInSecondYear_c1a9add9-577f-43a6-a135-8476e8e75361" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths_5b34ea23-4008-4b80-b5a6-2ca854fee4a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInNextTwelveMonths"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherCommitment_f6b28de1-7607-47b1-bfb4-d7bb56c85137" xlink:to="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths_5b34ea23-4008-4b80-b5a6-2ca854fee4a7" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>12
<FILENAME>cdxs-20231231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:94d45509-9aef-44d3-a47e-c1e1904e3223,g:402e078b-413f-4095-9479-d13944eb3b89-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member"/>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_0b00d090-4518-4d90-b737-a6eca340c36c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:to="loc_us-gaap_RelatedPartyDomain_0b00d090-4518-4d90-b737-a6eca340c36c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_8d7e2619-621c-4de5-b0d0-24658d30a3be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:to="loc_us-gaap_RelatedPartyDomain_8d7e2619-621c-4de5-b0d0-24658d30a3be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_60bfac0b-5e3b-4320-ac9c-cc61fce1541f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_8d7e2619-621c-4de5-b0d0-24658d30a3be" xlink:to="loc_us-gaap_RelatedPartyMember_60bfac0b-5e3b-4320-ac9c-cc61fce1541f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_c7b2ad1b-2e57-48ab-b7da-b2abf9d3e18e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_c7b2ad1b-2e57-48ab-b7da-b2abf9d3e18e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_1c23ad9e-9f85-4d8a-9d07-22975ffe332b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_1c23ad9e-9f85-4d8a-9d07-22975ffe332b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_73e380d9-55a7-4c66-9654-b38e13ed1554" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_73e380d9-55a7-4c66-9654-b38e13ed1554" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_6aec161c-6f93-435a-8405-1e5df5c0ed74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockSharesIssued_6aec161c-6f93-435a-8405-1e5df5c0ed74" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_e8224aa8-16c9-4b41-9ac6-c6b8e22839ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_e8224aa8-16c9-4b41-9ac6-c6b8e22839ad" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_4dc5ca7c-6c03-4b8a-be7b-1f256c184a30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_4dc5ca7c-6c03-4b8a-be7b-1f256c184a30" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_e6a99414-6784-43fa-8522-2cd0929fdbff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_e6a99414-6784-43fa-8522-2cd0929fdbff" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_93394fe6-1773-4e1e-b9ca-184eae7f10d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockSharesIssued_93394fe6-1773-4e1e-b9ca-184eae7f10d5" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_fb03801f-ea62-4042-9821-aeb8f7e12939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_fb03801f-ea62-4042-9821-aeb8f7e12939" xlink:type="arc" order="8"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofOperations"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:to="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_465de5f6-3665-41b1-95f8-606c1f24f623_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:to="loc_srt_ProductsAndServicesDomain_465de5f6-3665-41b1-95f8-606c1f24f623_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:to="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_13e87bfe-26d7-428b-8bca-1190f416711e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:to="loc_us-gaap_ProductMember_13e87bfe-26d7-428b-8bca-1190f416711e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_06e9de3c-eb7b-41ee-91f9-1c0d0e94fba4" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_06e9de3c-eb7b-41ee-91f9-1c0d0e94fba4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_e07e4c44-1945-4e07-854a-d3eab65cf2e3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_RevenuesAbstract_e07e4c44-1945-4e07-854a-d3eab65cf2e3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f50d95ea-eb92-4ad2-a902-d1dcc1a7f926" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesAbstract_e07e4c44-1945-4e07-854a-d3eab65cf2e3" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f50d95ea-eb92-4ad2-a902-d1dcc1a7f926" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingCostsAndExpensesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_6d61a76c-1b26-4838-9f4a-396ffc075659" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_6d61a76c-1b26-4838-9f4a-396ffc075659" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_f87a8155-1921-4e4c-8c10-25873a346acb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_f87a8155-1921-4e4c-8c10-25873a346acb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_fd86ca7a-cb66-4b65-8876-99e04ed2aab3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_fd86ca7a-cb66-4b65-8876-99e04ed2aab3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_f732a0a7-96e1-4b6e-b2c3-d8890394536d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_RestructuringCharges_f732a0a7-96e1-4b6e-b2c3-d8890394536d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetImpairmentAndOtherCharges_75eb4d31-7301-44d5-92bd-101aacf2e123" xlink:href="cdxs-20231231.xsd#cdxs_AssetImpairmentAndOtherCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_cdxs_AssetImpairmentAndOtherCharges_75eb4d31-7301-44d5-92bd-101aacf2e123" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_0b242010-4b3a-40f0-a2f6-bfe79440ec73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_CostsAndExpenses_0b242010-4b3a-40f0-a2f6-bfe79440ec73" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_bfb9466c-dc9f-45f8-9ad0-11990ca650b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_OperatingIncomeLoss_bfb9466c-dc9f-45f8-9ad0-11990ca650b8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest_fee4d485-6ec1-44a5-bbaa-fc95672ffd71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_InvestmentIncomeInterest_fee4d485-6ec1-44a5-bbaa-fc95672ffd71" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_dee68f11-59fc-4a66-a453-c4ca1827f982" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_dee68f11-59fc-4a66-a453-c4ca1827f982" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_666946e0-280a-4a2a-b49f-54d9b09e0bbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_666946e0-280a-4a2a-b49f-54d9b09e0bbf" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_fcff18f3-5614-4164-aff2-3c1e2a0ac850" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_fcff18f3-5614-4164-aff2-3c1e2a0ac850" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_8fe2afae-fa83-4556-9a90-cea14eb5b08e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_NetIncomeLoss_8fe2afae-fa83-4556-9a90-cea14eb5b08e" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_0a0fda8c-437f-4bd8-a8fe-288f2d72e086" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_EarningsPerShareBasic_0a0fda8c-437f-4bd8-a8fe-288f2d72e086" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_100904cb-b3b8-46ec-b5b4-9ebb3908ef6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_EarningsPerShareDiluted_100904cb-b3b8-46ec-b5b4-9ebb3908ef6e" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_7ee37780-8557-4bba-acd8-912b25dfe4b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_7ee37780-8557-4bba-acd8-912b25dfe4b3" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_646a9e82-7fd1-4b5e-b9e4-31c79c3c19ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_646a9e82-7fd1-4b5e-b9e4-31c79c3c19ec" xlink:type="arc" order="11"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofOperationsParenthetical"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:to="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:to="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_155da834-9f42-4e58-9631-c9043f25c14b_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:to="loc_srt_ProductsAndServicesDomain_155da834-9f42-4e58-9631-c9043f25c14b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:to="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_94275bca-fe9a-4fa3-b1e8-89e6ef62e50c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:to="loc_us-gaap_ProductMember_94275bca-fe9a-4fa3-b1e8-89e6ef62e50c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_63034f10-5028-4429-af51-808e3aa8e02d" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_63034f10-5028-4429-af51-808e3aa8e02d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_e597cf2b-f73a-4b2b-aca3-d46658e18fdf_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:to="loc_us-gaap_RelatedPartyDomain_e597cf2b-f73a-4b2b-aca3-d46658e18fdf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_f98be929-c4a4-47eb-a337-aee637c156b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:to="loc_us-gaap_RelatedPartyDomain_f98be929-c4a4-47eb-a337-aee637c156b4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_9370a742-821f-4a05-870f-b6e3bc26249e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_f98be929-c4a4-47eb-a337-aee637c156b4" xlink:to="loc_us-gaap_RelatedPartyMember_9370a742-821f-4a05-870f-b6e3bc26249e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4bb97918-13c4-4f95-a4d5-ebcb458d843c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4bb97918-13c4-4f95-a4d5-ebcb458d843c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_ff1b57e9-9eb8-46e2-b636-4bc32df33f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_ff1b57e9-9eb8-46e2-b636-4bc32df33f5e" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofStockholdersEquity"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_9a3651a1-d09a-4ccc-a5ce-394df3d3138b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_9a3651a1-d09a-4ccc-a5ce-394df3d3138b" xlink:to="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_aa075da3-a551-403b-9a4e-0ed2b484fc99_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:to="loc_us-gaap_EquityComponentDomain_aa075da3-a551-403b-9a4e-0ed2b484fc99_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:to="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_ef4e8d1d-559f-4373-9273-f27d07aae121" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:to="loc_us-gaap_CommonStockMember_ef4e8d1d-559f-4373-9273-f27d07aae121" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_cd71cd26-d8e7-4cda-8e94-38fd26731d17" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_cd71cd26-d8e7-4cda-8e94-38fd26731d17" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_a61db196-19c4-472f-bb34-c34f329d2848" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:to="loc_us-gaap_RetainedEarningsMember_a61db196-19c4-472f-bb34-c34f329d2848" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:to="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_8aec48d9-6c32-4822-bbbe-7e679d5ca93f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:to="loc_us-gaap_GranteeStatusDomain_8aec48d9-6c32-4822-bbbe-7e679d5ca93f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:to="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementEmployeeMember_4e7b9309-cee2-4330-8e09-03712e583a04" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementEmployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementEmployeeMember_4e7b9309-cee2-4330-8e09-03712e583a04" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_7cf28fa4-bc17-401a-a6cd-d0c2dc1a15db" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_7cf28fa4-bc17-401a-a6cd-d0c2dc1a15db" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_9a3651a1-d09a-4ccc-a5ce-394df3d3138b" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_9f7c6e6a-932b-444a-9087-e450b6c5e5ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_SharesOutstanding_9f7c6e6a-932b-444a-9087-e450b6c5e5ac" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_ead12e9a-0250-4c2c-8162-9f3aae3f7adf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockholdersEquity_ead12e9a-0250-4c2c-8162-9f3aae3f7adf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_5b2a5bc5-ccd6-4ef0-9b0c-5b46b1e2a241" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_5b2a5bc5-ccd6-4ef0-9b0c-5b46b1e2a241" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_c1c06180-8104-49de-9613-e850d6b04f92" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_c1c06180-8104-49de-9613-e850d6b04f92" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesOther_7d97afb7-0af7-459a-98d5-ef6b66e8ac0a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesOther"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesOther_7d97afb7-0af7-459a-98d5-ef6b66e8ac0a" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_73df0175-350c-4ffd-a983-cd914dd9e1b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_73df0175-350c-4ffd-a983-cd914dd9e1b6" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_49f2ca9e-3664-4dd0-9daa-b94b1b0be1d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_49f2ca9e-3664-4dd0-9daa-b94b1b0be1d7" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_dd6cbb40-b167-445e-aaad-6bd4cd8f2d0d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_dd6cbb40-b167-445e-aaad-6bd4cd8f2d0d" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_ea89ac38-d7f2-4df9-b273-d359961a8960" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_ea89ac38-d7f2-4df9-b273-d359961a8960" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_1dbda10b-b7ac-4cc4-93df-bdb95288e030" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_1dbda10b-b7ac-4cc4-93df-bdb95288e030" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_52ba64ae-ea82-4d75-9c99-74251680b947" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_NetIncomeLoss_52ba64ae-ea82-4d75-9c99-74251680b947" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_56d8f258-8b02-467d-b873-c46abddc93c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_cddf0040-86e8-47a5-98cf-1ed128a56ac3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofCashFlowsParenthetical"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_4eabe8da-9d31-4cb2-a54d-c137d9e785e1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:to="loc_us-gaap_RelatedPartyDomain_4eabe8da-9d31-4cb2-a54d-c137d9e785e1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_80b48d48-ebbb-47a1-a840-eaf89e091634" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:to="loc_us-gaap_RelatedPartyDomain_80b48d48-ebbb-47a1-a840-eaf89e091634" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_f746154a-1180-49df-947f-fb8323af9a36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_80b48d48-ebbb-47a1-a840-eaf89e091634" xlink:to="loc_us-gaap_RelatedPartyMember_f746154a-1180-49df-947f-fb8323af9a36" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_3965f671-c137-4b09-a5ab-8d2a2ef65ead" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncome"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_OtherNoncashIncome_3965f671-c137-4b09-a5ab-8d2a2ef65ead" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_f9b1b119-d258-485d-9c5a-0791fac6d8bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_f9b1b119-d258-485d-9c5a-0791fac6d8bb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_94cc73d0-d70a-4fe7-a350-e36aa50b2b2d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_94cc73d0-d70a-4fe7-a350-e36aa50b2b2d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_611bd455-43e3-4b02-ab69-739db18e6a2e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_611bd455-43e3-4b02-ab69-739db18e6a2e" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:href="cdxs-20231231.xsd#cdxs_AccountingPoliciesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:href="cdxs-20231231.xsd#cdxs_AccountingPoliciesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:to="loc_us-gaap_CreditFacilityDomain_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_4358b1fe-6990-430d-b453-3b86ae2275ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:to="loc_us-gaap_CreditFacilityDomain_4358b1fe-6990-430d-b453-3b86ae2275ec" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LetterOfCreditMember_d84a407d-4bce-45cd-9c7e-ca7404ab2d84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LetterOfCreditMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CreditFacilityDomain_4358b1fe-6990-430d-b453-3b86ae2275ec" xlink:to="loc_us-gaap_LetterOfCreditMember_d84a407d-4bce-45cd-9c7e-ca7404ab2d84" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_fa600db4-62d3-414c-a0dc-5367f002576f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_fa600db4-62d3-414c-a0dc-5367f002576f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashDepositMember_89a160b8-35a8-4aac-b7ad-774554b036ce" xlink:href="cdxs-20231231.xsd#cdxs_CashDepositMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_fa600db4-62d3-414c-a0dc-5367f002576f" xlink:to="loc_cdxs_CashDepositMember_89a160b8-35a8-4aac-b7ad-774554b036ce" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:to="loc_srt_NameOfMajorCustomerDomain_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:to="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FourCustomersMember_cc2d4cfb-1622-4c0d-b382-371be2ed080e" xlink:href="cdxs-20231231.xsd#cdxs_FourCustomersMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:to="loc_cdxs_FourCustomersMember_cc2d4cfb-1622-4c0d-b382-371be2ed080e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TwoCustomersMember_75da6c66-f88f-4e1a-97fc-6e2da72259d3" xlink:href="cdxs-20231231.xsd#cdxs_TwoCustomersMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:to="loc_cdxs_TwoCustomersMember_75da6c66-f88f-4e1a-97fc-6e2da72259d3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_b2e67791-af5f-4236-b01a-af03f230e794_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_b2e67791-af5f-4236-b01a-af03f230e794_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f286ca5a-192f-487d-b5cc-e3898666cd64" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f286ca5a-192f-487d-b5cc-e3898666cd64" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_4b118a40-9bc4-4f57-bce4-2ec59d0310e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f286ca5a-192f-487d-b5cc-e3898666cd64" xlink:to="loc_us-gaap_AccountsReceivableMember_4b118a40-9bc4-4f57-bce4-2ec59d0310e2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_89ea3262-3b69-4b52-a99c-d05e17ec93ca_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_89ea3262-3b69-4b52-a99c-d05e17ec93ca_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_cd50fead-1a6c-4be2-aefe-ef16ee9b0406" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_cd50fead-1a6c-4be2-aefe-ef16ee9b0406" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_83a45484-d4b6-4ba4-80e7-0abaaf9100cd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_cd50fead-1a6c-4be2-aefe-ef16ee9b0406" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_83a45484-d4b6-4ba4-80e7-0abaaf9100cd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_5822d4e2-5ced-45fc-8300-41180af1ef63_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:to="loc_us-gaap_SegmentDomain_5822d4e2-5ced-45fc-8300-41180af1ef63_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_f232742c-514a-4d23-b116-2ec524f3b33e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:to="loc_us-gaap_SegmentDomain_f232742c-514a-4d23-b116-2ec524f3b33e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember_7078f04e-623c-4c5f-8ebc-d31e3633c293" xlink:href="cdxs-20231231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_f232742c-514a-4d23-b116-2ec524f3b33e" xlink:to="loc_cdxs_NovelBiotherapeuticsMember_7078f04e-623c-4c5f-8ebc-d31e3633c293" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShippingAndDistributionCost_f2fe995e-67fe-4e32-b886-1025d2838324" xlink:href="cdxs-20231231.xsd#cdxs_ShippingAndDistributionCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_cdxs_ShippingAndDistributionCost_f2fe995e-67fe-4e32-b886-1025d2838324" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_191c8e37-5ebf-4f43-9a5a-4d7e80c01d80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_AdvertisingExpense_191c8e37-5ebf-4f43-9a5a-4d7e80c01d80" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashCurrent_b7e7367c-6fef-403c-96f7-19c2cfe0219c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_RestrictedCashCurrent_b7e7367c-6fef-403c-96f7-19c2cfe0219c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent_96356fce-b30c-4f57-83fe-09745355b368" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_RestrictedCashNoncurrent_96356fce-b30c-4f57-83fe-09745355b368" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_20f64ce9-1d90-4df8-8805-fae626b4fe49" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_20f64ce9-1d90-4df8-8805-fae626b4fe49" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_877f8956-d899-4b28-ac6f-b74fbda746ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_877f8956-d899-4b28-ac6f-b74fbda746ee" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_f399d95e-d412-4381-9b20-6dbcbf11148e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_Goodwill_f399d95e-d412-4381-9b20-6dbcbf11148e" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_d5398cb4-3e01-4255-8b0b-0fb8d0e8ba36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_d5398cb4-3e01-4255-8b0b-0fb8d0e8ba36" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_7917d423-8597-41d3-a31f-487d5560a359" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_7917d423-8597-41d3-a31f-487d5560a359" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3d7a1584-34ae-4da5-8b1b-8cd8bac35202_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3d7a1584-34ae-4da5-8b1b-8cd8bac35202_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_ca2905c7-78a5-497d-b083-43f8509d43bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:to="loc_us-gaap_EquipmentMember_ca2905c7-78a5-497d-b083-43f8509d43bd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_1f1e725d-ecb7-42fe-b00d-acf0e1d0cea0" xlink:href="cdxs-20231231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_1f1e725d-ecb7-42fe-b00d-acf0e1d0cea0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_9de1efbe-0beb-45ef-8861-b3e4332d78fb" xlink:href="cdxs-20231231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_9de1efbe-0beb-45ef-8861-b3e4332d78fb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_838cfad1-71a4-4f3b-a17b-866dae68a88e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_7917d423-8597-41d3-a31f-487d5560a359" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_838cfad1-71a4-4f3b-a17b-866dae68a88e" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionDisaggregationofRevenueDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_1292263d-418a-4699-a15f-81462c7dfc0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_1292263d-418a-4699-a15f-81462c7dfc0b" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:to="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_a13c67d7-da83-4256-8e1c-6c5c8357c906_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:to="loc_srt_ProductsAndServicesDomain_a13c67d7-da83-4256-8e1c-6c5c8357c906_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:to="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_f52a94ea-f20e-4b4b-a53b-ed2bb8e8a4a8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:to="loc_us-gaap_ProductMember_f52a94ea-f20e-4b4b-a53b-ed2bb8e8a4a8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_3c3a2f6d-3c25-400e-9ee9-20715a739351" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_3c3a2f6d-3c25-400e-9ee9-20715a739351" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:to="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:to="loc_srt_SegmentGeographicalDomain_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:to="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_037c6630-1cf2-400a-9c25-597fb4b89cc2" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:to="loc_srt_AmericasMember_037c6630-1cf2-400a-9c25-597fb4b89cc2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_bea1f2e8-4b57-4180-9ec9-449d641feae3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:to="loc_us-gaap_EMEAMember_bea1f2e8-4b57-4180-9ec9-449d641feae3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_6ae6c899-109c-46e8-9122-a3d34b7fb592" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:to="loc_srt_AsiaPacificMember_6ae6c899-109c-46e8-9122-a3d34b7fb592" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0a9a3630-c592-40a2-93da-859bf73a160e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_1292263d-418a-4699-a15f-81462c7dfc0b" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0a9a3630-c592-40a2-93da-859bf73a160e" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_c4174285-f56b-4c0a-86f2-19df81559adb_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:to="loc_srt_RangeMember_c4174285-f56b-4c0a-86f2-19df81559adb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:to="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_8664d2ca-b119-44fc-b5cc-f4385b1cf78d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:to="loc_srt_MinimumMember_8664d2ca-b119-44fc-b5cc-f4385b1cf78d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_03704943-23e1-418c-b5e1-3f951ada5e57" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:to="loc_srt_MaximumMember_03704943-23e1-418c-b5e1-3f951ada5e57" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e772f90c-c57f-4438-84bd-1c4eb439f8ed_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e772f90c-c57f-4438-84bd-1c4eb439f8ed_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6df483bb-7ade-4385-926f-c68fd5326180" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6df483bb-7ade-4385-926f-c68fd5326180" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_683f8d6e-3a9f-4dbc-8ae3-11ffa1c8e0dd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6df483bb-7ade-4385-926f-c68fd5326180" xlink:to="loc_us-gaap_AccountsReceivableMember_683f8d6e-3a9f-4dbc-8ae3-11ffa1c8e0dd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain_487f3c89-80da-4842-ac96-19ec50cde15c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:to="loc_us-gaap_ReceivableTypeDomain_487f3c89-80da-4842-ac96-19ec50cde15c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:to="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShortTermUnbilledReceivablesMember_b907c706-6518-4428-aa50-348153697e69" xlink:href="cdxs-20231231.xsd#cdxs_ShortTermUnbilledReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:to="loc_cdxs_ShortTermUnbilledReceivablesMember_b907c706-6518-4428-aa50-348153697e69" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LongTermUnbilledReceivablesMember_c782e489-2b12-4b74-982c-46c721becffc" xlink:href="cdxs-20231231.xsd#cdxs_LongTermUnbilledReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:to="loc_cdxs_LongTermUnbilledReceivablesMember_c782e489-2b12-4b74-982c-46c721becffc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_b0d1a532-bae8-430a-98ed-da13ed187157" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromContractWithCustomerPaymentTerms"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_b0d1a532-bae8-430a-98ed-da13ed187157" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_c17e9872-6b89-4dc3-9011-9e41421d4979" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_c17e9872-6b89-4dc3-9011-9e41421d4979" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_e9b14460-a278-495b-ad71-e271e81c0dbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_e9b14460-a278-495b-ad71-e271e81c0dbf" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionPerformanceObligationDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:to="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_86d803ab-7154-4147-85bb-34f8363fcb04_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:to="loc_srt_ProductsAndServicesDomain_86d803ab-7154-4147-85bb-34f8363fcb04_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:to="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_69b7a004-5d82-4acc-98a0-2c2ddf1b5d98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:to="loc_us-gaap_ProductMember_69b7a004-5d82-4acc-98a0-2c2ddf1b5d98" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_92cf79dd-168d-411c-a7d6-7190f25a4c14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_92cf79dd-168d-411c-a7d6-7190f25a4c14" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_4395a8c9-a0fe-49bc-9523-01e1c20acbe6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_4395a8c9-a0fe-49bc-9523-01e1c20acbe6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_ef9c4f0a-0b9b-4682-93c1-054fbcc3e58c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_ef9c4f0a-0b9b-4682-93c1-054fbcc3e58c" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionPerformanceObligationDetails_1"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:to="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_86d803ab-7154-4147-85bb-34f8363fcb04_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:to="loc_srt_ProductsAndServicesDomain_86d803ab-7154-4147-85bb-34f8363fcb04_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:to="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_69b7a004-5d82-4acc-98a0-2c2ddf1b5d98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:to="loc_us-gaap_ProductMember_69b7a004-5d82-4acc-98a0-2c2ddf1b5d98" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_4395a8c9-a0fe-49bc-9523-01e1c20acbe6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_4395a8c9-a0fe-49bc-9523-01e1c20acbe6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_ef9c4f0a-0b9b-4682-93c1-054fbcc3e58c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_ef9c4f0a-0b9b-4682-93c1-054fbcc3e58c" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#NetLossperShareDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_d8e4b5f4-2657-40f4-add9-3ef7a767df06" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_d8e4b5f4-2657-40f4-add9-3ef7a767df06" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_e4045f13-e01b-4415-973f-3506ceea6ddc_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_e4045f13-e01b-4415-973f-3506ceea6ddc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockCompensationPlanMember_5472ff22-da9a-48be-85ce-c4816a5ae383" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockCompensationPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:to="loc_us-gaap_StockCompensationPlanMember_5472ff22-da9a-48be-85ce-c4816a5ae383" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_6ce48a15-088f-4d39-8d4e-83b5486f21bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:to="loc_us-gaap_EmployeeStockMember_6ce48a15-088f-4d39-8d4e-83b5486f21bc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_0fc639c2-9237-4f68-8d02-d8423bc3a2ff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_d8e4b5f4-2657-40f4-add9-3ef7a767df06" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_0fc639c2-9237-4f68-8d02-d8423bc3a2ff" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_0a496578-ec06-4169-8fa8-d267b5ae1afd_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_0a496578-ec06-4169-8fa8-d267b5ae1afd_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_80331232-b217-461d-afdc-e362c51dba2e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_80331232-b217-461d-afdc-e362c51dba2e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_GSKMember_988ff51a-1803-4aca-97f0-104046f406b7" xlink:href="cdxs-20231231.xsd#cdxs_GSKMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_80331232-b217-461d-afdc-e362c51dba2e" xlink:to="loc_cdxs_GSKMember_988ff51a-1803-4aca-97f0-104046f406b7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_b932cf08-76fe-4a73-93d2-03def5b9dc70_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:to="loc_srt_RangeMember_b932cf08-76fe-4a73-93d2-03def5b9dc70_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:to="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_7b203e27-3588-4f9a-baa0-fbe557eb7fb5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:to="loc_srt_MinimumMember_7b203e27-3588-4f9a-baa0-fbe557eb7fb5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_f4c04082-f1ac-4b0f-8b08-0b72a8e17064" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:to="loc_srt_MaximumMember_f4c04082-f1ac-4b0f-8b08-0b72a8e17064" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_e3755ed4-8d11-451c-bd87-51293023a3aa_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:to="loc_srt_ProductsAndServicesDomain_e3755ed4-8d11-451c-bd87-51293023a3aa_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_b104554b-17b7-40fc-94cc-3262fa4d73b7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:to="loc_srt_ProductsAndServicesDomain_b104554b-17b7-40fc-94cc-3262fa4d73b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_d8a9a0a6-2192-4787-bc67-facdea473514" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_b104554b-17b7-40fc-94cc-3262fa4d73b7" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_d8a9a0a6-2192-4787-bc67-facdea473514" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_9b9e2243-2b33-421f-bb9a-cf8d33ad9aff" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromCollaborativeArrangementContingentAmounts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_9b9e2243-2b33-421f-bb9a-cf8d33ad9aff" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_b0ff48d9-8085-4a1a-992b-2ed320349e30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_b0ff48d9-8085-4a1a-992b-2ed320349e30" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementNumberOfMilestonePayments_0c476385-6dc4-4c37-bc0b-0c77385e6bc3" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementNumberOfMilestonePayments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_cdxs_CollaborativeArrangementNumberOfMilestonePayments_0c476385-6dc4-4c37-bc0b-0c77385e6bc3" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_cdfee816-e933-40d4-86e1-f8125d184d18_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_cdfee816-e933-40d4-86e1-f8125d184d18_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_f126f6f7-ac7e-4d4b-aa88-fa4a1bdfbf2e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_f126f6f7-ac7e-4d4b-aa88-fa4a1bdfbf2e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember_c7571b0c-b737-4884-895d-b845521794fb" xlink:href="cdxs-20231231.xsd#cdxs_MerckMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_f126f6f7-ac7e-4d4b-aa88-fa4a1bdfbf2e" xlink:to="loc_cdxs_MerckMember_c7571b0c-b737-4884-895d-b845521794fb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_6172fdfc-5d4a-47ad-b7c8-75167b3392b3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_6172fdfc-5d4a-47ad-b7c8-75167b3392b3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_f5bbebf0-a0bd-427f-a8e5-956cf854d964" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_f5bbebf0-a0bd-427f-a8e5-956cf854d964" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_af37eba0-178d-434e-838b-49a46c74aa21" xlink:href="cdxs-20231231.xsd#cdxs_TechnologyTransferCollaborationandLicenseAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_f5bbebf0-a0bd-427f-a8e5-956cf854d964" xlink:to="loc_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_af37eba0-178d-434e-838b-49a46c74aa21" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_206b7abf-d3ac-453b-8233-044238edb7d0_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:to="loc_srt_ProductsAndServicesDomain_206b7abf-d3ac-453b-8233-044238edb7d0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_c6542330-7eba-40d6-9451-1eba99b37255" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:to="loc_srt_ProductsAndServicesDomain_c6542330-7eba-40d6-9451-1eba99b37255" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_0b7e2fa9-01c6-4c1d-be4b-d6e44d966068" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_c6542330-7eba-40d6-9451-1eba99b37255" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_0b7e2fa9-01c6-4c1d-be4b-d6e44d966068" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_4fb7db1f-6f1e-4c87-8edf-6f1cd0016290" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_4fb7db1f-6f1e-4c87-8edf-6f1cd0016290" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_9bda155b-32d9-4c8a-93b8-5d24828cf653" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_9bda155b-32d9-4c8a-93b8-5d24828cf653" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74090cb1-eb8b-42c8-ad49-7e8bc76ac5b5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74090cb1-eb8b-42c8-ad49-7e8bc76ac5b5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember_abbc2b95-edd0-4787-a305-e32d77213471" xlink:href="cdxs-20231231.xsd#cdxs_MerckMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74090cb1-eb8b-42c8-ad49-7e8bc76ac5b5" xlink:to="loc_cdxs_MerckMember_abbc2b95-edd0-4787-a305-e32d77213471" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_a190f3db-b3d2-421e-b360-352455397f9d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_a190f3db-b3d2-421e-b360-352455397f9d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_d361bdc3-09fc-4bdc-ad67-12a2ef27c440" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_d361bdc3-09fc-4bdc-ad67-12a2ef27c440" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember_e69e3980-4da7-4c14-b4c1-c198552f4ba4" xlink:href="cdxs-20231231.xsd#cdxs_SupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_d361bdc3-09fc-4bdc-ad67-12a2ef27c440" xlink:to="loc_cdxs_SupplyAgreementMember_e69e3980-4da7-4c14-b4c1-c198552f4ba4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:to="loc_srt_ProductsAndServicesDomain_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:to="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_2f3aebfa-4fd9-40b2-b021-252a9c6b2039" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:to="loc_us-gaap_ProductMember_2f3aebfa-4fd9-40b2-b021-252a9c6b2039" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SitagliptinEnzymeMember_e40f9e0b-d932-4c40-b211-98fc8f5f1956" xlink:href="cdxs-20231231.xsd#cdxs_SitagliptinEnzymeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:to="loc_cdxs_SitagliptinEnzymeMember_e40f9e0b-d932-4c40-b211-98fc8f5f1956" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ab18abd5-ed25-4ee2-bf68-89526761fd5a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_ab18abd5-ed25-4ee2-bf68-89526761fd5a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_41be4801-faee-4956-b3e6-5e6e79f0dfb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_41be4801-faee-4956-b3e6-5e6e79f0dfb6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_36ea0bc7-07bd-4847-bad1-6ff3af7e0bf2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_41be4801-faee-4956-b3e6-5e6e79f0dfb6" xlink:to="loc_us-gaap_SalesRevenueNetMember_36ea0bc7-07bd-4847-bad1-6ff3af7e0bf2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_c61dc869-4db7-47b3-b9b1-08e350f37a77_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_c61dc869-4db7-47b3-b9b1-08e350f37a77_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_87e580a6-35ac-4efd-b63f-334fe95093f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_87e580a6-35ac-4efd-b63f-334fe95093f3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_86ccbcfe-39c3-449a-a14e-e11214303907" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_87e580a6-35ac-4efd-b63f-334fe95093f3" xlink:to="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_86ccbcfe-39c3-449a-a14e-e11214303907" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_d5ee0882-47d5-44cb-8111-e9d365eab8c6" xlink:href="cdxs-20231231.xsd#cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_d5ee0882-47d5-44cb-8111-e9d365eab8c6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_e3e84c7e-3616-4a83-8eae-d1cf57e373f2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_e3e84c7e-3616-4a83-8eae-d1cf57e373f2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_1922b6b7-7aa0-476b-b0f1-ded71dc3189f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_1922b6b7-7aa0-476b-b0f1-ded71dc3189f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a2bb48c7-8192-4855-8c13-2af776ed61c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a2bb48c7-8192-4855-8c13-2af776ed61c0" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsEnzymeSupplyAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:to="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_bfb30864-fd23-4a1f-9249-b791925a12ec_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:to="loc_srt_ProductsAndServicesDomain_bfb30864-fd23-4a1f-9249-b791925a12ec_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_df7a6243-d998-4d89-b6ab-0adee63e779e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:to="loc_srt_ProductsAndServicesDomain_df7a6243-d998-4d89-b6ab-0adee63e779e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_8d91edbc-13d7-4cfa-a183-c155b7097652" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_df7a6243-d998-4d89-b6ab-0adee63e779e" xlink:to="loc_us-gaap_ProductMember_8d91edbc-13d7-4cfa-a183-c155b7097652" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:to="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_8830253c-1c1b-4af6-8343-3d521c581714_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_8830253c-1c1b-4af6-8343-3d521c581714_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeSupplyAgreementMember_7ca063be-3a38-482b-8a98-48001111e0a6" xlink:href="cdxs-20231231.xsd#cdxs_EnzymeSupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:to="loc_cdxs_EnzymeSupplyAgreementMember_7ca063be-3a38-482b-8a98-48001111e0a6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember_d6e22c03-e1c3-4612-9fd1-11c2b3c4ddd8" xlink:href="cdxs-20231231.xsd#cdxs_SupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:to="loc_cdxs_SupplyAgreementMember_d6e22c03-e1c3-4612-9fd1-11c2b3c4ddd8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_704d18d0-25bc-4a1c-a5c1-a11460bf09ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_704d18d0-25bc-4a1c-a5c1-a11460bf09ac" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerSettlementFee_e93cc65d-7fdb-419d-9e69-23d9904e57b6" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromContractWithCustomerSettlementFee"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_cdxs_RevenueFromContractWithCustomerSettlementFee_e93cc65d-7fdb-419d-9e69-23d9904e57b6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_ecf40123-b175-4210-a5d8-0d1c48b8f32a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_us-gaap_ContractWithCustomerLiability_ecf40123-b175-4210-a5d8-0d1c48b8f32a" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsCommercialAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:to="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_1d0d34b4-851e-4721-ae6f-3320b802903a_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_1d0d34b4-851e-4721-ae6f-3320b802903a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_079b33fa-055f-4364-9a5a-7e4f87cd49d5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_079b33fa-055f-4364-9a5a-7e4f87cd49d5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TateLyleMember_ea013bfc-9ad4-4092-b805-ee342f8a2217" xlink:href="cdxs-20231231.xsd#cdxs_TateLyleMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_079b33fa-055f-4364-9a5a-7e4f87cd49d5" xlink:to="loc_cdxs_TateLyleMember_ea013bfc-9ad4-4092-b805-ee342f8a2217" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:to="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_dbb23e87-ce7a-422e-99ef-4ed25d02cf32_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_dbb23e87-ce7a-422e-99ef-4ed25d02cf32_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_564428c8-3fec-426d-a4c9-abe2cdb49232" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_564428c8-3fec-426d-a4c9-abe2cdb49232" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercialAgreementMember_1880573a-a89f-4656-817b-5c9733fe0152" xlink:href="cdxs-20231231.xsd#cdxs_CommercialAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_564428c8-3fec-426d-a4c9-abe2cdb49232" xlink:to="loc_cdxs_CommercialAgreementMember_1880573a-a89f-4656-817b-5c9733fe0152" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_d60662ec-9d12-4edf-a1cb-3aef1e0fef99" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_d60662ec-9d12-4edf-a1cb-3aef1e0fef99" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ReceivableFromCollaborativeArrangement_83f6e6ec-b8dc-4756-84d1-ea664389d8e6" xlink:href="cdxs-20231231.xsd#cdxs_ReceivableFromCollaborativeArrangement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:to="loc_cdxs_ReceivableFromCollaborativeArrangement_83f6e6ec-b8dc-4756-84d1-ea664389d8e6" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_5cebb18c-9d03-4655-88a3-b8e3706ff99c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_5cebb18c-9d03-4655-88a3-b8e3706ff99c" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:to="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ea8b3833-58e4-4711-9fc0-b15a58a473c4_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ea8b3833-58e4-4711-9fc0-b15a58a473c4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_65d65b02-cd44-4758-88a0-f6227065fa54" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_65d65b02-cd44-4758-88a0-f6227065fa54" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestecLtd.NestleHealthSciencesMember_5cbec396-3fe0-42ee-a3e6-49b3587d2575" xlink:href="cdxs-20231231.xsd#cdxs_NestecLtd.NestleHealthSciencesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_65d65b02-cd44-4758-88a0-f6227065fa54" xlink:to="loc_cdxs_NestecLtd.NestleHealthSciencesMember_5cbec396-3fe0-42ee-a3e6-49b3587d2575" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:to="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_c9b117b2-6645-4427-ab8f-2bea401a067c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_c9b117b2-6645-4427-ab8f-2bea401a067c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_StrategicCollaborationAgreementMember_bf9390d3-2ce8-4b39-b0e8-123434c07857" xlink:href="cdxs-20231231.xsd#cdxs_StrategicCollaborationAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_c9b117b2-6645-4427-ab8f-2bea401a067c" xlink:to="loc_cdxs_StrategicCollaborationAgreementMember_bf9390d3-2ce8-4b39-b0e8-123434c07857" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_aa1a3d5e-b9ef-4d43-94a1-5af8a252bc5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_5cebb18c-9d03-4655-88a3-b8e3706ff99c" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_aa1a3d5e-b9ef-4d43-94a1-5af8a252bc5a" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsAcquisitionAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_969fa8fa-3242-449d-bb93-4926ea040924_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_969fa8fa-3242-449d-bb93-4926ea040924_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e76b854d-03a7-492d-86a6-384ded7e9e91" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e76b854d-03a7-492d-86a6-384ded7e9e91" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestleHealthScienceMember_dd5b6c48-5202-4c29-ba54-eac27ab5839b" xlink:href="cdxs-20231231.xsd#cdxs_NestleHealthScienceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e76b854d-03a7-492d-86a6-384ded7e9e91" xlink:to="loc_cdxs_NestleHealthScienceMember_dd5b6c48-5202-4c29-ba54-eac27ab5839b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_6df80cde-eae6-4750-bba9-b48a177ee2f0_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_6df80cde-eae6-4750-bba9-b48a177ee2f0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_bb6906ba-1fb3-4b3e-a74c-c7b15e3b356b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_bb6906ba-1fb3-4b3e-a74c-c7b15e3b356b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AcquisitionAgreementMember_c50c9c5b-ae94-4096-ac27-5a305f084117" xlink:href="cdxs-20231231.xsd#cdxs_AcquisitionAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_bb6906ba-1fb3-4b3e-a74c-c7b15e3b356b" xlink:to="loc_cdxs_AcquisitionAgreementMember_c50c9c5b-ae94-4096-ac27-5a305f084117" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_58754407-3a4b-4475-bc91-c0377c773960" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_58754407-3a4b-4475-bc91-c0377c773960" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_791e4cf5-2ea4-43a7-af2d-5959bb672182" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_58754407-3a4b-4475-bc91-c0377c773960" xlink:to="loc_us-gaap_SubsequentEventMember_791e4cf5-2ea4-43a7-af2d-5959bb672182" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_725c300a-f72c-434c-8717-1d854ed78258" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_725c300a-f72c-434c-8717-1d854ed78258" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_bdcee3fa-ea0e-4e8a-a8d9-643b1fd2b174" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementUpfrontFeeAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:to="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_bdcee3fa-ea0e-4e8a-a8d9-643b1fd2b174" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsStrategicCollaborationAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:to="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_3d7f5429-3bde-4590-b92d-32cbcde5ceab_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_3d7f5429-3bde-4590-b92d-32cbcde5ceab_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ade630e2-c5cb-4747-bb4d-294214ef36ca" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ade630e2-c5cb-4747-bb4d-294214ef36ca" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PortonMember_da057bcf-9228-42c2-b152-9b1b16f2448d" xlink:href="cdxs-20231231.xsd#cdxs_PortonMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ade630e2-c5cb-4747-bb4d-294214ef36ca" xlink:to="loc_cdxs_PortonMember_da057bcf-9228-42c2-b152-9b1b16f2448d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_45579b66-1bad-4686-8f43-7d8ee6c1ac93_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_45579b66-1bad-4686-8f43-7d8ee6c1ac93_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_d7caf4ff-a52c-4013-a51d-cc1604be1c92" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:to="loc_cdxs_MilestoneOneMember_d7caf4ff-a52c-4013-a51d-cc1604be1c92" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_c5f370af-fe43-46b9-b8a7-3cf2107be8b3" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:to="loc_cdxs_MilestoneTwoMember_c5f370af-fe43-46b9-b8a7-3cf2107be8b3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_9ef07e30-8d48-429b-8170-1369c6e3900c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_ContractWithCustomerLiability_9ef07e30-8d48-429b-8170-1369c6e3900c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_ccb97a6a-c81e-4550-9f24-a1e16d3bf479" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_ccb97a6a-c81e-4550-9f24-a1e16d3bf479" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_87a386bf-7220-4398-963f-41a9f6f059a0" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_87a386bf-7220-4398-963f-41a9f6f059a0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromCollaborators_54f12eb9-d113-4a87-8d63-65881210340a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromCollaborators"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_ProceedsFromCollaborators_54f12eb9-d113-4a87-8d63-65881210340a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_b2e54c37-f705-4360-a880-edc358c1221b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_b2e54c37-f705-4360-a880-edc358c1221b" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74b611fd-24d7-4985-a6a8-a3b6b1e33496_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74b611fd-24d7-4985-a6a8-a3b6b1e33496_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_162e291e-1084-40c2-9e5a-d6e2a79968db" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_162e291e-1084-40c2-9e5a-d6e2a79968db" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovartisMember_a9aa5600-87af-4d8d-a166-13d716ec222a" xlink:href="cdxs-20231231.xsd#cdxs_NovartisMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_162e291e-1084-40c2-9e5a-d6e2a79968db" xlink:to="loc_cdxs_NovartisMember_a9aa5600-87af-4d8d-a166-13d716ec222a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_d50c2189-4956-4250-90ff-19f31812df75_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_d50c2189-4956-4250-90ff-19f31812df75_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_ce84f54d-9264-4c32-b8bb-83ca8415e33a" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:to="loc_cdxs_MilestoneOneMember_ce84f54d-9264-4c32-b8bb-83ca8415e33a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_2008134f-88e8-4418-873e-d5834e62b26e" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:to="loc_cdxs_MilestoneTwoMember_2008134f-88e8-4418-873e-d5834e62b26e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_48f6544a-2de4-4a79-8728-f658a1d5eb1c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_48f6544a-2de4-4a79-8728-f658a1d5eb1c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_4ae645f9-8b20-4f45-8049-288a94823784" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_4ae645f9-8b20-4f45-8049-288a94823784" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_4313dae1-179c-4124-9929-4a0b398343a6" xlink:href="cdxs-20231231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_4ae645f9-8b20-4f45-8049-288a94823784" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_4313dae1-179c-4124-9929-4a0b398343a6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_c2e64dfc-ee13-4c89-9757-597691fa1018" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_us-gaap_ContractWithCustomerLiability_c2e64dfc-ee13-4c89-9757-597691fa1018" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_2411c41c-d87f-4e4f-b8bf-bd049c21d0b0" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_2411c41c-d87f-4e4f-b8bf-bd049c21d0b0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_dbbcd376-671a-4da1-b101-ca3ec138eb09" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentAnnualPaymentsTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_dbbcd376-671a-4da1-b101-ca3ec138eb09" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_4aeac44f-0bc7-45dc-89cf-60a890764895" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentAnnualReceivableIncrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_4aeac44f-0bc7-45dc-89cf-60a890764895" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionAnnualPayment_f15242c3-3f86-4090-9055-e18599d02c93" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionAnnualPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionAnnualPayment_f15242c3-3f86-4090-9055-e18599d02c93" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_4043c422-fe62-429a-84bf-985896eab5b2" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionNumberOfAnnualPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_4043c422-fe62-429a-84bf-985896eab5b2" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_a56da70c-d297-465a-b6b5-6e931a28aeda" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_a56da70c-d297-465a-b6b5-6e931a28aeda" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsLicenseAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_4fa847d6-acb0-4353-80e5-46204e06da9c_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_4fa847d6-acb0-4353-80e5-46204e06da9c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e1033964-c6d8-4186-bcf8-b8d280e3d2ef" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e1033964-c6d8-4186-bcf8-b8d280e3d2ef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RocheMember_a0fe292e-e9c0-4db0-bf0b-9caafb5a7e93" xlink:href="cdxs-20231231.xsd#cdxs_RocheMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e1033964-c6d8-4186-bcf8-b8d280e3d2ef" xlink:to="loc_cdxs_RocheMember_a0fe292e-e9c0-4db0-bf0b-9caafb5a7e93" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_5041da26-6240-494c-8994-1182a90b1641_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_5041da26-6240-494c-8994-1182a90b1641_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_85669a75-6632-4401-949a-7fd5fda119e7" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:to="loc_cdxs_MilestoneOneMember_85669a75-6632-4401-949a-7fd5fda119e7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_53aff73f-a799-410f-9783-3bceb9a6f8b4" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:to="loc_cdxs_MilestoneTwoMember_53aff73f-a799-410f-9783-3bceb9a6f8b4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_59c53dbd-da69-499c-b8c7-7cfce972a4be_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_59c53dbd-da69-499c-b8c7-7cfce972a4be_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_12faacee-a4f6-4d2a-9ddf-fe3ef9675ecf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_12faacee-a4f6-4d2a-9ddf-fe3ef9675ecf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_a4a0fc6c-35dc-43bd-88c0-382b6f7c8fe3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_12faacee-a4f6-4d2a-9ddf-fe3ef9675ecf" xlink:to="loc_us-gaap_SubsequentEventMember_a4a0fc6c-35dc-43bd-88c0-382b6f7c8fe3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_70ebde3d-6d91-4d5c-9bb0-bc2e24915fc5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_us-gaap_ContractWithCustomerLiability_70ebde3d-6d91-4d5c-9bb0-bc2e24915fc5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_63238704-a1cb-4c1d-a6df-548b6bf257b8" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_63238704-a1cb-4c1d-a6df-548b6bf257b8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_3327d405-01da-4aac-b9ea-eb5fb73118b9" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_3327d405-01da-4aac-b9ea-eb5fb73118b9" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_09a246ac-c994-4054-adb6-8776ac544f3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_09a246ac-c994-4054-adb6-8776ac544f3b" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:to="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c35f2782-e8a3-4203-9ace-7fd7cd578a0b_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c35f2782-e8a3-4203-9ace-7fd7cd578a0b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7b2a5eb5-1c41-4937-b554-5fc1a5b2a8d4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7b2a5eb5-1c41-4937-b554-5fc1a5b2a8d4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TakedaPharmaceuticalCoLtdMember_cbd48bee-e80b-43f4-acf1-b92168ef0538" xlink:href="cdxs-20231231.xsd#cdxs_TakedaPharmaceuticalCoLtdMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7b2a5eb5-1c41-4937-b554-5fc1a5b2a8d4" xlink:to="loc_cdxs_TakedaPharmaceuticalCoLtdMember_cbd48bee-e80b-43f4-acf1-b92168ef0538" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_8ee14392-4aca-4ad3-aa06-a7330bdc1768_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_8ee14392-4aca-4ad3-aa06-a7330bdc1768_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_UpFrontPaymentMember_f04b29f3-16a7-45b2-901e-cceb1e00a71e" xlink:href="cdxs-20231231.xsd#cdxs_UpFrontPaymentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:to="loc_cdxs_UpFrontPaymentMember_f04b29f3-16a7-45b2-901e-cceb1e00a71e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestonePaymentPerTargetGeneMember_21ab048d-0ab1-4a93-a907-a2d42854a5b9" xlink:href="cdxs-20231231.xsd#cdxs_MilestonePaymentPerTargetGeneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:to="loc_cdxs_MilestonePaymentPerTargetGeneMember_21ab048d-0ab1-4a93-a907-a2d42854a5b9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_8c810a70-750a-44d5-aeff-a3834dbdc1d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_us-gaap_ContractWithCustomerLiability_8c810a70-750a-44d5-aeff-a3834dbdc1d0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_e7ed1693-8511-49c3-bdbd-fcac575c6c74" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_e7ed1693-8511-49c3-bdbd-fcac575c6c74" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_b49ea6c8-c232-4ed0-9863-df38d14b6eda" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_b49ea6c8-c232-4ed0-9863-df38d14b6eda" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_0c631ea0-6984-4b94-885b-70f0a3eb3fb5" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:to="loc_cdxs_MolecularAssembliesIncMember_0c631ea0-6984-4b94-885b-70f0a3eb3fb5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MAIAgreementMember_03437d44-c982-4bed-978f-677d7720b9e8" xlink:href="cdxs-20231231.xsd#cdxs_MAIAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:to="loc_cdxs_MAIAgreementMember_03437d44-c982-4bed-978f-677d7720b9e8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_7e24418b-6b2c-4af7-a571-b111257587c3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:to="loc_us-gaap_ClassOfStockDomain_7e24418b-6b2c-4af7-a571-b111257587c3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:to="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember_7c3867df-b27e-4c83-aebb-8d4bcda9ed18" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:to="loc_us-gaap_SeriesAPreferredStockMember_7c3867df-b27e-4c83-aebb-8d4bcda9ed18" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_56147251-c94d-4be5-80d7-ce559c62bb3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_56147251-c94d-4be5-80d7-ce559c62bb3a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_ef38689e-12ee-4291-b342-079c6979752e" xlink:href="cdxs-20231231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_ef38689e-12ee-4291-b342-079c6979752e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_39939df6-2c0b-4637-996e-ca71c59392fc_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:to="loc_srt_ProductsAndServicesDomain_39939df6-2c0b-4637-996e-ca71c59392fc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:to="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RoyaltyMember_2fc8dcca-8178-43d5-8812-a28a95169253" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RoyaltyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:to="loc_us-gaap_RoyaltyMember_2fc8dcca-8178-43d5-8812-a28a95169253" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_a306a5a4-9b78-4d2f-8534-9b9f6b6dd94d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:to="loc_us-gaap_ProductMember_a306a5a4-9b78-4d2f-8534-9b9f6b6dd94d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_df189b4d-d2fe-4c6a-915d-b0e4515f346e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_df189b4d-d2fe-4c6a-915d-b0e4515f346e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_02fb85a3-5b0c-469b-ab55-548084ee116b" xlink:href="cdxs-20231231.xsd#cdxs_CommercializationAndEnzymeSupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:to="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_02fb85a3-5b0c-469b-ab55-548084ee116b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember_2c4f2cca-09e6-4d27-965a-9f54868723d6" xlink:href="cdxs-20231231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:to="loc_cdxs_MasterCollaborationResearchAgreementMember_2c4f2cca-09e6-4d27-965a-9f54868723d6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_cc4b623d-314c-479c-8cac-1faa2e5337f4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:to="loc_us-gaap_RelatedPartyDomain_cc4b623d-314c-479c-8cac-1faa2e5337f4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_020f8e33-64d4-49c9-95aa-bab4ffed3eeb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:to="loc_us-gaap_RelatedPartyDomain_020f8e33-64d4-49c9-95aa-bab4ffed3eeb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_dec91eb4-5008-419a-a93f-e869f43a734a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_020f8e33-64d4-49c9-95aa-bab4ffed3eeb" xlink:to="loc_us-gaap_RelatedPartyMember_dec91eb4-5008-419a-a93f-e869f43a734a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_85609ea0-4456-4425-985d-be59f89a1e1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_85609ea0-4456-4425-985d-be59f89a1e1c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_9f168552-5d81-4918-8ba7-8a8037fb4808" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_9f168552-5d81-4918-8ba7-8a8037fb4808" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_ef5d0e63-9ee4-44f3-9725-a29ecfa8c4f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_ContractWithCustomerLiability_ef5d0e63-9ee4-44f3-9725-a29ecfa8c4f6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerSalesMilestone_eb0d1bfd-07db-4030-a9ba-57a0de8afec2" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerSalesMilestone"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_cdxs_ContractWithCustomerSalesMilestone_eb0d1bfd-07db-4030-a9ba-57a0de8afec2" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_a5fa7eed-ca61-46a4-beed-a061e1546c8c" xlink:href="cdxs-20231231.xsd#cdxs_RelatedPartyTransactionMilestonePaymentReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_a5fa7eed-ca61-46a4-beed-a061e1546c8c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_ee0ec62a-b6db-46b2-9c79-4fd02f61f0c0" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_ee0ec62a-b6db-46b2-9c79-4fd02f61f0c0" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_a10bee6b-dd7f-45af-b20b-76a4734aeb56" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_a10bee6b-dd7f-45af-b20b-76a4734aeb56" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c0ccda59-62be-4d19-8365-a42ab9a9042a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c0ccda59-62be-4d19-8365-a42ab9a9042a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PfizerMember_ea7255d8-3e9f-44ce-8f03-11cb20890746" xlink:href="cdxs-20231231.xsd#cdxs_PfizerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c0ccda59-62be-4d19-8365-a42ab9a9042a" xlink:to="loc_cdxs_PfizerMember_ea7255d8-3e9f-44ce-8f03-11cb20890746" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_215a8d60-a755-4aec-a3a2-40e9547c2cc9_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:to="loc_srt_ProductsAndServicesDomain_215a8d60-a755-4aec-a3a2-40e9547c2cc9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:to="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeProductMember_06faaf28-9458-404e-9375-11064457fe22" xlink:href="cdxs-20231231.xsd#cdxs_EnzymeProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:to="loc_cdxs_EnzymeProductMember_06faaf28-9458-404e-9375-11064457fe22" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_e4668ffd-e985-4579-a7f0-a1868c2d5484" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_e4668ffd-e985-4579-a7f0-a1868c2d5484" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_73a1232a-1bee-437e-a861-fba3b7ad9fc6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_73a1232a-1bee-437e-a861-fba3b7ad9fc6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerMember_b9b22189-7a86-4e04-a9b2-de364cab496f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_73a1232a-1bee-437e-a861-fba3b7ad9fc6" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerMember_b9b22189-7a86-4e04-a9b2-de364cab496f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_0263596f-af7f-4164-98c6-7bfc49acabb7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_0263596f-af7f-4164-98c6-7bfc49acabb7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_d1ec18b4-d4c3-41ef-96d2-014baf34c22e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_0263596f-af7f-4164-98c6-7bfc49acabb7" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_d1ec18b4-d4c3-41ef-96d2-014baf34c22e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_f6ba99da-7d08-4ef9-a8e8-70dc9520ad11" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFee"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_f6ba99da-7d08-4ef9-a8e8-70dc9520ad11" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_96795690-b2cf-4c43-853f-17e0afb100bf" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_96795690-b2cf-4c43-853f-17e0afb100bf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_8dbde8f6-5496-4263-afb0-5fcebe0e07de" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_8dbde8f6-5496-4263-afb0-5fcebe0e07de" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_39bde970-54bd-49cd-83c2-2e2b34cda876" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_39bde970-54bd-49cd-83c2-2e2b34cda876" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_2d21d297-cfb6-40c3-a67b-dd0aeda7cc6b" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_2d21d297-cfb6-40c3-a67b-dd0aeda7cc6b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_6097e290-4a94-480a-800d-6e90d6cd11ea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_6097e290-4a94-480a-800d-6e90d6cd11ea" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_8f3c6b05-93c7-4ed1-a3d1-9b31e223620b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_8f3c6b05-93c7-4ed1-a3d1-9b31e223620b" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_aff4d0f9-bd92-4f72-9282-f660f3b21eed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ContractWithCustomerLiability_aff4d0f9-bd92-4f72-9282-f660f3b21eed" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#InvestmentsinNonMarketableSecuritiesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_36686493-2eed-453c-85f7-a61d0aabc42a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:to="loc_us-gaap_ClassOfStockDomain_36686493-2eed-453c-85f7-a61d0aabc42a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:to="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesB2PreferredStockMember_b2202615-a2d3-4241-a22d-65df8bdf2367" xlink:href="cdxs-20231231.xsd#cdxs_SeriesB2PreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesB2PreferredStockMember_b2202615-a2d3-4241-a22d-65df8bdf2367" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_9a5db662-e7b8-4f97-8ddc-f9b0519ef495" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_9a5db662-e7b8-4f97-8ddc-f9b0519ef495" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_30b2e2d0-4f08-4bc6-b013-3923ea1c45fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_us-gaap_CommonStockMember_30b2e2d0-4f08-4bc6-b013-3923ea1c45fe" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_d0de0814-bdda-4673-a0d5-e5060ec055e7" xlink:href="cdxs-20231231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_d0de0814-bdda-4673-a0d5-e5060ec055e7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesC1PreferredStockMember_843225fa-fe7f-42fd-ae9f-365e60a092a6" xlink:href="cdxs-20231231.xsd#cdxs_SeriesC1PreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesC1PreferredStockMember_843225fa-fe7f-42fd-ae9f-365e60a092a6" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommonStockWarrantsMember_86bbf459-f7bd-46c7-b268-2f8dd139c261" xlink:href="cdxs-20231231.xsd#cdxs_CommonStockWarrantsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_CommonStockWarrantsMember_86bbf459-f7bd-46c7-b268-2f8dd139c261" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesCAndC1PreferredStockMember_d8533abb-b521-42b0-af8d-557909caef2a" xlink:href="cdxs-20231231.xsd#cdxs_SeriesCAndC1PreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesCAndC1PreferredStockMember_d8533abb-b521-42b0-af8d-557909caef2a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_494ad604-de9c-4d23-92ff-e4fd272b83ca_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_494ad604-de9c-4d23-92ff-e4fd272b83ca_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_0ee74604-e518-4443-ac89-331bb5cc3254" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:to="loc_cdxs_ArzedaMember_0ee74604-e518-4443-ac89-331bb5cc3254" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_13feaabe-7f4c-4f11-9bf3-3fcd162df5b1" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:to="loc_cdxs_MolecularAssembliesIncMember_13feaabe-7f4c-4f11-9bf3-3fcd162df5b1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_693dd61d-91d2-4708-8ae8-579b1407e71f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_693dd61d-91d2-4708-8ae8-579b1407e71f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_3f25a298-2a2d-4393-a081-b996ab8a629d" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_693dd61d-91d2-4708-8ae8-579b1407e71f" xlink:to="loc_cdxs_MolecularAssembliesIncMember_3f25a298-2a2d-4393-a081-b996ab8a629d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_90e0169f-5b92-427b-a3c6-1e07a3046b46_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:to="loc_us-gaap_RelatedPartyDomain_90e0169f-5b92-427b-a3c6-1e07a3046b46_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_b6703308-0df7-458d-9a44-8752b6f50ec0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:to="loc_us-gaap_RelatedPartyDomain_b6703308-0df7-458d-9a44-8752b6f50ec0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_cde03df9-0afb-4cd6-9c23-33b88fbbb3a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_b6703308-0df7-458d-9a44-8752b6f50ec0" xlink:to="loc_us-gaap_RelatedPartyMember_cde03df9-0afb-4cd6-9c23-33b88fbbb3a6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_7862adc3-a265-4ec2-b064-af5d01477bd2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_7862adc3-a265-4ec2-b064-af5d01477bd2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_016d670b-788f-4a2a-855f-7d8240f7a32c" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:to="loc_cdxs_SeqWellMember_016d670b-788f-4a2a-855f-7d8240f7a32c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_f34ced99-340e-44d3-bab8-5cbf7cfa821e" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:to="loc_cdxs_ArzedaMember_f34ced99-340e-44d3-bab8-5cbf7cfa821e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:to="loc_us-gaap_EquityComponentDomain_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_2e910919-56fc-4543-813d-789fcd1ad1bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:to="loc_us-gaap_EquityComponentDomain_2e910919-56fc-4543-813d-789fcd1ad1bb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_4991ce87-67b5-43ac-8b2b-31a2d9f694a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_2e910919-56fc-4543-813d-789fcd1ad1bb" xlink:to="loc_us-gaap_CommonStockMember_4991ce87-67b5-43ac-8b2b-31a2d9f694a7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LegalEntityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_c6710fe3-4270-4175-b660-828c6dc88114_default" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:to="loc_dei_EntityDomain_c6710fe3-4270-4175-b660-828c6dc88114_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_f94f7fc7-2b00-442e-87f6-8811ea11b3f2" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:to="loc_dei_EntityDomain_f94f7fc7-2b00-442e-87f6-8811ea11b3f2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_26570776-1c69-4066-a1c6-281a4e32c9a8" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_f94f7fc7-2b00-442e-87f6-8811ea11b3f2" xlink:to="loc_cdxs_SeqWellMember_26570776-1c69-4066-a1c6-281a4e32c9a8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_595b3a3c-b69d-41b7-a7f2-7c0ba459c500_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:to="loc_srt_ProductsAndServicesDomain_595b3a3c-b69d-41b7-a7f2-7c0ba459c500_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_7dd68637-b09b-48fc-a83e-f639fa53a0c0" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:to="loc_srt_ProductsAndServicesDomain_7dd68637-b09b-48fc-a83e-f639fa53a0c0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_145a00e4-21b1-4cf1-b987-ac783526065c" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_7dd68637-b09b-48fc-a83e-f639fa53a0c0" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_145a00e4-21b1-4cf1-b987-ac783526065c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b3d0aa91-ea72-4fc2-9475-ba807b9ec100" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b3d0aa91-ea72-4fc2-9475-ba807b9ec100" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebt_ed0ab986-f3c8-40dc-b2f4-19192558c4e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertibleDebt"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_ConvertibleDebt_ed0ab986-f3c8-40dc-b2f4-19192558c4e9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtConversionConvertedInstrumentSharesIssued1_436a4b8c-7656-407d-9a52-730fc145b5e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtConversionConvertedInstrumentSharesIssued1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_DebtConversionConvertedInstrumentSharesIssued1_436a4b8c-7656-407d-9a52-730fc145b5e7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeAmortizationOfDiscount_2f515481-e6c9-4992-b4ab-267d825376bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeAmortizationOfDiscount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_InvestmentIncomeAmortizationOfDiscount_2f515481-e6c9-4992-b4ab-267d825376bd" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_658c9409-58d3-44fb-b270-aa14f8d7e214" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_658c9409-58d3-44fb-b270-aa14f8d7e214" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_c05bebe9-146d-44e5-a5df-303983600b44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_c05bebe9-146d-44e5-a5df-303983600b44" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_1639ee25-9382-4c24-8003-744de6cf0ea6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_1639ee25-9382-4c24-8003-744de6cf0ea6" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_4d589785-d11a-4479-b2bc-1de3b353d2b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_4d589785-d11a-4479-b2bc-1de3b353d2b5" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_bb69a86c-7687-4fb4-a973-0d7b8f5eaa0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_bb69a86c-7687-4fb4-a973-0d7b8f5eaa0c" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_66a90bc4-1f7d-4357-90cb-5e118b0e7912" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_565237b3-5dd0-4f6e-9fe8-515b3f6c4d5c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_565237b3-5dd0-4f6e-9fe8-515b3f6c4d5c" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_65144274-7be6-46bd-b9c8-1d04586a2bbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_65144274-7be6-46bd-b9c8-1d04586a2bbf" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_177e2ed2-1bda-421b-96ad-2d615954c939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_177e2ed2-1bda-421b-96ad-2d615954c939" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_2878ac17-f4c4-4262-9d44-d7299c86b036" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_2878ac17-f4c4-4262-9d44-d7299c86b036" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_603498ef-990f-4306-aebc-fa8e87ee38eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_603498ef-990f-4306-aebc-fa8e87ee38eb" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_2d635ab1-a910-4829-8107-c8d1ddb622f6" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_2d635ab1-a910-4829-8107-c8d1ddb622f6" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_3ff8712b-d721-4ef4-91e7-43fb156911e5" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_3ff8712b-d721-4ef4-91e7-43fb156911e5" xlink:type="arc" order="16"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_432d4a23-6543-4489-a647-49fa87577bb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_432d4a23-6543-4489-a647-49fa87577bb8" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_b25c76a6-a037-42a3-8f18-8a28a6726ae3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_b25c76a6-a037-42a3-8f18-8a28a6726ae3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_164ba327-86a0-4882-a15e-267ccc873ac9" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_cdxs_MolecularAssembliesIncMember_164ba327-86a0-4882-a15e-267ccc873ac9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_f6456dc5-263e-422d-b7a2-89fefadb1f8e" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_cdxs_SeqWellMember_f6456dc5-263e-422d-b7a2-89fefadb1f8e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_98ace94b-0e71-4b76-b631-eb51917fbad9" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_cdxs_ArzedaMember_98ace94b-0e71-4b76-b631-eb51917fbad9" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAggregatedInvestmentsMember_63e97f4b-cb4e-4af7-87e0-e2edf874f11c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAggregatedInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_us-gaap_OtherAggregatedInvestmentsMember_63e97f4b-cb4e-4af7-87e0-e2edf874f11c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_dc9bf004-97c7-4d14-84bd-d2e8a6699a53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_432d4a23-6543-4489-a647-49fa87577bb8" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_dc9bf004-97c7-4d14-84bd-d2e8a6699a53" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#FairValueMeasurementsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_cb82415d-b640-4e2c-97f3-57d5c031be29_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_cb82415d-b640-4e2c-97f3-57d5c031be29_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_b7e79572-5b57-4629-8c37-3e098734db19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_b7e79572-5b57-4629-8c37-3e098734db19" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_2c35eaa2-4187-4620-bdfb-4fbe16086fe0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_2c35eaa2-4187-4620-bdfb-4fbe16086fe0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_1e192f7d-fd49-4f7c-beae-79d7826f8b80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_1e192f7d-fd49-4f7c-beae-79d7826f8b80" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_4348730d-2672-4525-8901-f86bf679ca93_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_4348730d-2672-4525-8901-f86bf679ca93_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_e410c25c-5792-485b-9cba-823d2af55f0a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_e410c25c-5792-485b-9cba-823d2af55f0a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_822bd530-0435-4767-a5d5-eb836c2d9b10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_e410c25c-5792-485b-9cba-823d2af55f0a" xlink:to="loc_us-gaap_MoneyMarketFundsMember_822bd530-0435-4767-a5d5-eb836c2d9b10" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_3706454a-3b8c-4332-b04b-6e5be1d4a512_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_3706454a-3b8c-4332-b04b-6e5be1d4a512_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_192452cc-0fee-42ae-bbc6-f45a60011265" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_192452cc-0fee-42ae-bbc6-f45a60011265" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebtMember_75e82abb-6b95-4d28-b2b0-b7d326c79aff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertibleDebtMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_192452cc-0fee-42ae-bbc6-f45a60011265" xlink:to="loc_us-gaap_ConvertibleDebtMember_75e82abb-6b95-4d28-b2b0-b7d326c79aff" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_bc6583c0-01c6-483e-ace2-14172ec5787f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_bc6583c0-01c6-483e-ace2-14172ec5787f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_55276d3f-2e7d-4656-aec3-853c2415b94d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_bc6583c0-01c6-483e-ace2-14172ec5787f" xlink:to="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_55276d3f-2e7d-4656-aec3-853c2415b94d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_cd17149d-ed10-490d-99f6-158f0405b39a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_cd17149d-ed10-490d-99f6-158f0405b39a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_39dd0ce6-0da6-4e65-bf53-38fe287e97d4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_39dd0ce6-0da6-4e65-bf53-38fe287e97d4" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsCashandCashEquivalentsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:to="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_524ffd2b-0fbb-401d-aaff-d178c102a6ff_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_524ffd2b-0fbb-401d-aaff-d178c102a6ff_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_1ed290dd-3e35-48d1-9dbe-c53c35e71ec1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_1ed290dd-3e35-48d1-9dbe-c53c35e71ec1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_d210518f-4b5c-4dfe-b88d-e929d9166a9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_1ed290dd-3e35-48d1-9dbe-c53c35e71ec1" xlink:to="loc_us-gaap_MoneyMarketFundsMember_d210518f-4b5c-4dfe-b88d-e929d9166a9f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_a4215b26-1689-4aa9-8915-f6b8b4776e59" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_a4215b26-1689-4aa9-8915-f6b8b4776e59" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_f676cc92-f76e-4268-9f6e-a19adaf371c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:to="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_f676cc92-f76e-4268-9f6e-a19adaf371c2" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:to="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_c19e2669-0439-4984-adcc-1908aceda008_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_c19e2669-0439-4984-adcc-1908aceda008_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_9fa9f19b-a00d-4b5f-acc2-e05f4e241b3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:to="loc_us-gaap_MoneyMarketFundsMember_9fa9f19b-a00d-4b5f-acc2-e05f4e241b3b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashMember_3ef07f88-4636-4cc6-8c8f-bcdcf4a73366" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:to="loc_us-gaap_CashMember_3ef07f88-4636-4cc6-8c8f-bcdcf4a73366" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_95251e90-0e95-40df-8958-26311d7b96ce_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_95251e90-0e95-40df-8958-26311d7b96ce_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_72446bf4-4b80-49d0-9251-5ac1f2cbcc86" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_72446bf4-4b80-49d0-9251-5ac1f2cbcc86" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_7ecbbe20-2e99-4b95-8d26-2e64e1716a38" xlink:href="cdxs-20231231.xsd#cdxs_SanCarlosMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_72446bf4-4b80-49d0-9251-5ac1f2cbcc86" xlink:to="loc_cdxs_SanCarlosMember_7ecbbe20-2e99-4b95-8d26-2e64e1716a38" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_8a095e8c-b7c2-4663-bf62-72366fb989bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_8a095e8c-b7c2-4663-bf62-72366fb989bb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_102a4452-ff14-48af-9cc0-3df91644eb56" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_102a4452-ff14-48af-9cc0-3df91644eb56" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseCurrent_a8771674-6cc7-4cf9-9d39-58c4831f4235" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_PrepaidExpenseCurrent_a8771674-6cc7-4cf9-9d39-58c4831f4235" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsCurrent_01a1ffa8-dce3-4a77-8a65-f4ab202ead60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_OtherAssetsCurrent_01a1ffa8-dce3-4a77-8a65-f4ab202ead60" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_803995bd-c5b7-4ba6-860f-ffe83206aa1e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_AssetImpairmentCharges_803995bd-c5b7-4ba6-860f-ffe83206aa1e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_62324801-9343-4cf9-a4c5-f9cbfb6f60a3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_62324801-9343-4cf9-a4c5-f9cbfb6f60a3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_419d92cd-ba0a-4dca-a75f-3c53b262d00d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_419d92cd-ba0a-4dca-a75f-3c53b262d00d" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_eff6b933-81f7-48c2-ae7c-99f715df9227" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_Goodwill_eff6b933-81f7-48c2-ae7c-99f715df9227" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsPropertyandEquipmentnetDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8ca2710f-96a2-4de0-9594-954cfd6ebed3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_8ca2710f-96a2-4de0-9594-954cfd6ebed3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LaboratoryEquipmentMember_72dfd152-b3a5-4b3f-8f17-831ee60ac98e" xlink:href="cdxs-20231231.xsd#cdxs_LaboratoryEquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_cdxs_LaboratoryEquipmentMember_72dfd152-b3a5-4b3f-8f17-831ee60ac98e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_6a581825-53d7-4273-90e1-faf473c5857f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_6a581825-53d7-4273-90e1-faf473c5857f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerEquipmentMember_049482f8-65d3-4596-93ab-5b7372a09121" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_us-gaap_ComputerEquipmentMember_049482f8-65d3-4596-93ab-5b7372a09121" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_76aa5262-ea3c-484b-96f5-6e5ad67d733e" xlink:href="cdxs-20231231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_76aa5262-ea3c-484b-96f5-6e5ad67d733e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConstructionInProgressMember_c54481a7-702f-484a-a4db-583fff384b5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConstructionInProgressMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_us-gaap_ConstructionInProgressMember_c54481a7-702f-484a-a4db-583fff384b5a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_8dae9d18-da2f-49b5-91e9-18c6ddf69b28" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_8dae9d18-da2f-49b5-91e9-18c6ddf69b28" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_92f482b3-f318-450b-bcf0-e10b1338f350" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_92f482b3-f318-450b-bcf0-e10b1338f350" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_31244f88-9ab9-425c-85cb-0443bd5d81c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_31244f88-9ab9-425c-85cb-0443bd5d81c9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_fc80e52e-874f-4298-ae15-b2769a6c403d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_fc80e52e-874f-4298-ae15-b2769a6c403d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_e4990955-44a0-4b5c-82bb-52d6deaad9a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_Depreciation_e4990955-44a0-4b5c-82bb-52d6deaad9a9" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_2004d631-76bc-4a0a-8ba7-858082749912_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:to="loc_us-gaap_PlanNameDomain_2004d631-76bc-4a0a-8ba7-858082749912_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:to="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022InducementPlanMember_acfd7376-14ce-4af9-bf4d-c1e2a0a6cc04" xlink:href="cdxs-20231231.xsd#cdxs_A2022InducementPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022InducementPlanMember_acfd7376-14ce-4af9-bf4d-c1e2a0a6cc04" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019PlanMember_9feea540-d3af-44cc-9e11-2b5476944dce" xlink:href="cdxs-20231231.xsd#cdxs_A2019PlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2019PlanMember_9feea540-d3af-44cc-9e11-2b5476944dce" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019AmendedPlanMember_81cde68a-0b69-4b38-a54e-0044ae0207d5" xlink:href="cdxs-20231231.xsd#cdxs_A2019AmendedPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2019AmendedPlanMember_81cde68a-0b69-4b38-a54e-0044ae0207d5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUMember_923e732e-6cc5-4348-b0d4-bf992a0d8f74" xlink:href="cdxs-20231231.xsd#cdxs_A2022PSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022PSUMember_923e732e-6cc5-4348-b0d4-bf992a0d8f74" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PBOMember_739076e6-44f8-4716-8fc9-f6f5adeebb17" xlink:href="cdxs-20231231.xsd#cdxs_A2022PBOMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022PBOMember_739076e6-44f8-4716-8fc9-f6f5adeebb17" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUAnd2022PBOMember_a451d8da-0109-471c-8876-c6333dc33429" xlink:href="cdxs-20231231.xsd#cdxs_A2022PSUAnd2022PBOMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022PSUAnd2022PBOMember_a451d8da-0109-471c-8876-c6333dc33429" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PSUMember_8428fb3b-5760-47b1-bc8b-4d3b02bf1b1e" xlink:href="cdxs-20231231.xsd#cdxs_A2021PSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2021PSUMember_8428fb3b-5760-47b1-bc8b-4d3b02bf1b1e" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PBOMember_73329b2b-0dec-48b8-9b26-4b9527dcaf3c" xlink:href="cdxs-20231231.xsd#cdxs_A2021PBOMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2021PBOMember_73329b2b-0dec-48b8-9b26-4b9527dcaf3c" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PSUAnd2021PBOMember_3c6c2888-6223-4839-8bc5-110c1c0a6316" xlink:href="cdxs-20231231.xsd#cdxs_A2021PSUAnd2021PBOMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2021PSUAnd2021PBOMember_3c6c2888-6223-4839-8bc5-110c1c0a6316" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_492f8627-992d-437f-a518-661539e603d2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_492f8627-992d-437f-a518-661539e603d2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_874a4a45-1120-4ad5-a8be-c03f4a6da9b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_EmployeeStockMember_874a4a45-1120-4ad5-a8be-c03f4a6da9b3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncentiveStockOptionsMember_65d46299-f2d3-48af-ac16-9e3d552d748f" xlink:href="cdxs-20231231.xsd#cdxs_IncentiveStockOptionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_IncentiveStockOptionsMember_65d46299-f2d3-48af-ac16-9e3d552d748f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NonStatutoryStockOptionsMember_249b2b1a-532d-4233-9ed2-34fabaf0e467" xlink:href="cdxs-20231231.xsd#cdxs_NonStatutoryStockOptionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_NonStatutoryStockOptionsMember_249b2b1a-532d-4233-9ed2-34fabaf0e467" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_ae4163d2-3a54-4053-8075-80ff6ec57208" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_EmployeeStockOptionMember_ae4163d2-3a54-4053-8075-80ff6ec57208" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_804d5d46-68c0-42de-81d8-589320be0ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_804d5d46-68c0-42de-81d8-589320be0ecd" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_adc1b6a9-1c55-434c-af06-cb24234929c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_PerformanceSharesMember_adc1b6a9-1c55-434c-af06-cb24234929c9" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember_fb401cd4-365d-45df-8413-992c354367f5" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_PerformanceShareUnitsPSUsMember_fb401cd4-365d-45df-8413-992c354367f5" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_92592338-43bb-40b3-a05a-d39000f4fcad" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_92592338-43bb-40b3-a05a-d39000f4fcad" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_cb5d82cf-afd0-4f88-a5fd-9b747098774f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_RestrictedStockMember_cb5d82cf-afd0-4f88-a5fd-9b747098774f" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_1b22beb0-8a4d-4c1e-afb5-5d869dcbeff2" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_PerformanceStockUnitsMember_1b22beb0-8a4d-4c1e-afb5-5d869dcbeff2" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain_deb20dc4-724a-42ad-a254-902aa408dcc9_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:to="loc_us-gaap_VestingDomain_deb20dc4-724a-42ad-a254-902aa408dcc9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:to="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_d30da94d-2c0d-49c7-bd9d-ed835f856aa5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAwardTrancheOneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_d30da94d-2c0d-49c7-bd9d-ed835f856aa5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_e599e6ae-b88c-4ffa-b59b-3f087ca4508d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAwardTrancheTwoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_e599e6ae-b88c-4ffa-b59b-3f087ca4508d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_9377ef43-d6f6-420e-9c7f-1023f9f84d0c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:to="loc_us-gaap_GranteeStatusDomain_9377ef43-d6f6-420e-9c7f-1023f9f84d0c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_e30fe4b6-38c5-4009-bd0c-26d62d122517" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:to="loc_us-gaap_GranteeStatusDomain_e30fe4b6-38c5-4009-bd0c-26d62d122517" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_93ecd198-3b7d-46da-86d5-5ca820617406" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GranteeStatusDomain_e30fe4b6-38c5-4009-bd0c-26d62d122517" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_93ecd198-3b7d-46da-86d5-5ca820617406" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_fbef52b8-9917-44b1-9cea-b77c8df189ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_fbef52b8-9917-44b1-9cea-b77c8df189ed" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_a86a76bf-ba04-448a-b5ea-5303450087fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_a86a76bf-ba04-448a-b5ea-5303450087fe" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_ab972c9a-d54d-4fe9-9174-c8f7a190ccde" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_ab972c9a-d54d-4fe9-9174-c8f7a190ccde" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_f0440a83-7dcc-4a1c-a459-84dac45090fd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_f0440a83-7dcc-4a1c-a459-84dac45090fd" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2e16c754-2467-4097-8afa-069a8c3728ac" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2e16c754-2467-4097-8afa-069a8c3728ac" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_862cbd3f-514a-459f-bf15-edff17349156" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_862cbd3f-514a-459f-bf15-edff17349156" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_f86c17da-d435-4551-afc6-20210055e2d9" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_f86c17da-d435-4551-afc6-20210055e2d9" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_ca85801d-ecdd-406f-b107-85f5ad583eeb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_ca85801d-ecdd-406f-b107-85f5ad583eeb" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_30141126-4158-4869-a13b-c9747057ad4c" xlink:href="cdxs-20231231.xsd#cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_30141126-4158-4869-a13b-c9747057ad4c" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_f80f3117-565a-4e9f-a6d0-b6517f3d2acf" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_f80f3117-565a-4e9f-a6d0-b6517f3d2acf" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_44d8f9fa-bb2a-4436-b5e5-2d51a9eb3489" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_44d8f9fa-bb2a-4436-b5e5-2d51a9eb3489" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_f7d1c43e-8559-4094-8baf-5fc3718bd577" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_f7d1c43e-8559-4094-8baf-5fc3718bd577" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_07af2ccc-9085-4b62-96d6-422389eda30d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_07af2ccc-9085-4b62-96d6-422389eda30d" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_bc984aa6-b969-4264-892f-6d234f08c8d1" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_bc984aa6-b969-4264-892f-6d234f08c8d1" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d41860b5-6657-4365-8a3d-7f2b62d7430e" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d41860b5-6657-4365-8a3d-7f2b62d7430e" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_1084d702-7374-4179-bd85-41e467fa8e12" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_1084d702-7374-4179-bd85-41e467fa8e12" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_309ddf46-4a85-42bc-87da-b120f7487b0f" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_309ddf46-4a85-42bc-87da-b120f7487b0f" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b01d98cd-29ba-4684-a6b5-9f845cbdb219" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b01d98cd-29ba-4684-a6b5-9f845cbdb219" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_cbb65de5-719c-412d-adc9-67da79808550" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_cbb65de5-719c-412d-adc9-67da79808550" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_9e4d5d6e-6878-4ff8-9c5b-18b9de5ea6c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_9e4d5d6e-6878-4ff8-9c5b-18b9de5ea6c8" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_c9a8e623-7eb8-4fef-8a9d-1e799540f0e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_c9a8e623-7eb8-4fef-8a9d-1e799540f0e9" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0810d602-ab84-4957-89f3-ff1a688374d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0810d602-ab84-4957-89f3-ff1a688374d6" xlink:type="arc" order="21"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_9a451461-48ae-4d8b-a9f4-abc07381ac2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_9a451461-48ae-4d8b-a9f4-abc07381ac2b" xlink:type="arc" order="22"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_7d95ceff-3976-4020-a997-014f846d7775" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_7d95ceff-3976-4020-a997-014f846d7775" xlink:type="arc" order="23"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_5624c47f-4344-458d-8e88-39b34dda75c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_5624c47f-4344-458d-8e88-39b34dda75c9" xlink:type="arc" order="24"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_adc54a07-6d00-4eab-8272-c698ea65d20c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_adc54a07-6d00-4eab-8272-c698ea65d20c" xlink:type="arc" order="25"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationStockBasedCompensationExpenseDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_0d64d03d-8711-49a4-8175-254c6cc62fe2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_0d64d03d-8711-49a4-8175-254c6cc62fe2" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_8e53ec10-16bc-4f34-a5f4-0448ec00f18d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_8e53ec10-16bc-4f34-a5f4-0448ec00f18d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfSalesMember_9075c334-ad9e-4158-afd1-a45042c03249" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfSalesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:to="loc_us-gaap_CostOfSalesMember_9075c334-ad9e-4158-afd1-a45042c03249" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_9ac57c57-0b82-482c-ad35-69e3f08556fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_9ac57c57-0b82-482c-ad35-69e3f08556fb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_af00ebb5-f19e-4ff5-aec2-0030b02a70ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_af00ebb5-f19e-4ff5-aec2-0030b02a70ba" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:to="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_c8fbe539-f856-44f2-b457-aa0d6549b9eb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_c8fbe539-f856-44f2-b457-aa0d6549b9eb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_33b44fde-3abe-4ca8-93ed-b484ad2ccf1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_us-gaap_EmployeeStockOptionMember_33b44fde-3abe-4ca8-93ed-b484ad2ccf1d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember_ac4ca763-e3ee-488b-9116-5b71894ce48a" xlink:href="cdxs-20231231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_cdxs_RSUsAndRSAsMember_ac4ca763-e3ee-488b-9116-5b71894ce48a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_d22c77d9-5ec9-42ca-8817-d77928f5fad4" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_cdxs_PerformanceStockUnitsMember_d22c77d9-5ec9-42ca-8817-d77928f5fad4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_d11baf51-12eb-47f8-8a38-1e6e718a59ec" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_d11baf51-12eb-47f8-8a38-1e6e718a59ec" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_af3d2cb8-c916-4ce5-bf16-ba885b4bef80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_us-gaap_EmployeeStockMember_af3d2cb8-c916-4ce5-bf16-ba885b4bef80" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_3a0fea6e-925f-42e2-917a-554d7e10f748" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_0d64d03d-8711-49a4-8175-254c6cc62fe2" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_3a0fea6e-925f-42e2-917a-554d7e10f748" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_71102dae-dba0-40ef-8938-ce4cf79d5e0d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_3a0fea6e-925f-42e2-917a-554d7e10f748" xlink:to="loc_us-gaap_ShareBasedCompensation_71102dae-dba0-40ef-8938-ce4cf79d5e0d" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationAssumptionsUsedDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:to="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_a3e14cea-26cd-4a47-92ea-29f3b1db50d5_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_a3e14cea-26cd-4a47-92ea-29f3b1db50d5_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_fb428f6b-795a-40b7-be51-584229534b70" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_us-gaap_EmployeeStockOptionMember_fb428f6b-795a-40b7-be51-584229534b70" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ab160b72-5db3-45d8-b782-21263eb26df2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ab160b72-5db3-45d8-b782-21263eb26df2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_3b54ab84-7b4c-4c71-a1f1-b7d743de686a" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_3b54ab84-7b4c-4c71-a1f1-b7d743de686a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_6bb4b825-f6bc-4839-b1a6-5e8f10b6ec87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_us-gaap_EmployeeStockMember_6bb4b825-f6bc-4839-b1a6-5e8f10b6ec87" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:to="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_0a179b97-0749-49e2-adba-4ee3acd21846_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:to="loc_us-gaap_GranteeStatusDomain_0a179b97-0749-49e2-adba-4ee3acd21846_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_d11049be-9800-47bd-bc84-45a40e8aae66" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:to="loc_us-gaap_GranteeStatusDomain_d11049be-9800-47bd-bc84-45a40e8aae66" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_693b7bf7-f627-4a00-8381-401eda8ba486" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GranteeStatusDomain_d11049be-9800-47bd-bc84-45a40e8aae66" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_693b7bf7-f627-4a00-8381-401eda8ba486" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_ab411b29-e153-44b6-ad61-f6b782c0f4c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_ab411b29-e153-44b6-ad61-f6b782c0f4c9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_56e5eb20-bf6b-4a84-83bf-50bac251c0ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_56e5eb20-bf6b-4a84-83bf-50bac251c0ed" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_363eefba-319a-492b-b65d-a9c793b11a16" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_363eefba-319a-492b-b65d-a9c793b11a16" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_f34b3419-a32f-414f-bd49-aa88d10288b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_f34b3419-a32f-414f-bd49-aa88d10288b3" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationAwardActivityDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:to="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd387b19-f65a-43a7-addd-bc171e4567f1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd387b19-f65a-43a7-addd-bc171e4567f1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_cb305a8d-5ef8-407c-a496-57e3f51de706" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_us-gaap_RestrictedStockMember_cb305a8d-5ef8-407c-a496-57e3f51de706" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_3bd2e8e3-d46f-483e-a609-7be8e0f9ffed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_3bd2e8e3-d46f-483e-a609-7be8e0f9ffed" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_5f174c87-8a39-4377-b4e1-0be58b9556db" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_cdxs_PerformanceStockUnitsMember_5f174c87-8a39-4377-b4e1-0be58b9556db" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_7e0368a7-fa50-4b2b-b50a-4c90899953d4" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_7e0368a7-fa50-4b2b-b50a-4c90899953d4" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_cb71ebf3-bb29-4489-9e5a-16fe43983f31" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_us-gaap_PerformanceSharesMember_cb71ebf3-bb29-4489-9e5a-16fe43983f31" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_44a9d9c9-7f3a-49db-b845-aca54dc42a3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_44a9d9c9-7f3a-49db-b845-aca54dc42a3a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_169395dd-a314-49a5-a94c-9cbd9b866826" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_169395dd-a314-49a5-a94c-9cbd9b866826" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_f408272d-a4b4-4df7-9b18-71fdaf504eab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_f408272d-a4b4-4df7-9b18-71fdaf504eab" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_46acd06e-1dd0-410e-8e9d-a512f8cffd2c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_46acd06e-1dd0-410e-8e9d-a512f8cffd2c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_155530c2-463f-4cc3-a134-359defb4c7b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_155530c2-463f-4cc3-a134-359defb4c7b6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_9fa875f5-c1db-4a9a-a8bf-ad0b858f050e" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_9fa875f5-c1db-4a9a-a8bf-ad0b858f050e" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_dbbca502-7cc3-4ffa-a53a-9d44e8d459ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_8cbcd7ce-6a12-40fe-9bb1-7ead2c290f10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_8cbcd7ce-6a12-40fe-9bb1-7ead2c290f10" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_4def8abe-0d5f-4c03-9837-63b1945e2896" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_4def8abe-0d5f-4c03-9837-63b1945e2896" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_42bc7268-0605-4db8-9a37-bcf33aa10be7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_42bc7268-0605-4db8-9a37-bcf33aa10be7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_9f6e4691-fe6b-4497-bc03-e27e875dbcd7" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_9f6e4691-fe6b-4497-bc03-e27e875dbcd7" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9b9804fa-3abd-40da-9bfa-11dc9702afa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9b9804fa-3abd-40da-9bfa-11dc9702afa3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_943feea1-4d89-4701-b7ad-ad0c3f53147b" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_943feea1-4d89-4701-b7ad-ad0c3f53147b" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d8d06eeb-17d1-4f43-a00b-109707ee1492" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_7ad7eb47-bc42-4ec6-81d7-d454601bb23b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_7ad7eb47-bc42-4ec6-81d7-d454601bb23b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_d0c12252-322b-4a50-8b6f-1460da298e75" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_d0c12252-322b-4a50-8b6f-1460da298e75" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9adb3596-a454-476b-b358-ccaa2acb5cb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9adb3596-a454-476b-b358-ccaa2acb5cb6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_436dc5a0-6210-4923-9369-add6150468c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_436dc5a0-6210-4923-9369-add6150468c5" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_cfdafb74-e6ee-4e01-ac03-fd3e6acb64c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_cfdafb74-e6ee-4e01-ac03-fd3e6acb64c5" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_67c2e529-74d8-47bb-8397-02f3678a66f9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_67c2e529-74d8-47bb-8397-02f3678a66f9" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_c4e7570b-7f88-4e67-b096-20c41ada66b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_c4e7570b-7f88-4e67-b096-20c41ada66b7" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_cabd037e-1e54-4269-90f1-60606c3a555e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_cabd037e-1e54-4269-90f1-60606c3a555e" xlink:type="arc" order="8"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CapitalStockDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CapitalStockDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CapitalStockDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LegalEntityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:to="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_925dce7e-1cc4-427f-b4f8-40cb893bac1c_default" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:to="loc_dei_EntityDomain_925dce7e-1cc4-427f-b4f8-40cb893bac1c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_dd8b5f7e-b097-45f1-9679-e37405935c4f" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:to="loc_dei_EntityDomain_dd8b5f7e-b097-45f1-9679-e37405935c4f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PiperSandlerCoMember_17183159-14a6-4def-998a-0f1583b0f49d" xlink:href="cdxs-20231231.xsd#cdxs_PiperSandlerCoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_dd8b5f7e-b097-45f1-9679-e37405935c4f" xlink:to="loc_cdxs_PiperSandlerCoMember_17183159-14a6-4def-998a-0f1583b0f49d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:to="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:to="loc_srt_RangeMember_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_8902ec55-7f66-4612-945f-4ec6cfa5af70" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:to="loc_srt_RangeMember_8902ec55-7f66-4612-945f-4ec6cfa5af70" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d4264249-7af0-40d6-910b-4bb79a516757" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_8902ec55-7f66-4612-945f-4ec6cfa5af70" xlink:to="loc_srt_MaximumMember_d4264249-7af0-40d6-910b-4bb79a516757" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_00bf2a22-25b6-438c-aca6-3a70f235602f" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_00bf2a22-25b6-438c-aca6-3a70f235602f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockPeriod_8c25d1cb-3dd0-445d-8f8f-bfcd7ca2d69d" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockPeriod_8c25d1cb-3dd0-445d-8f8f-bfcd7ca2d69d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockValueOfSharesForIssuance_90d7669b-8fb5-498a-9349-1c0cc1150a2b" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockValueOfSharesForIssuance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockValueOfSharesForIssuance_90d7669b-8fb5-498a-9349-1c0cc1150a2b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_d0de9f65-cc29-4b6c-aa49-3271cadeacd2" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_d0de9f65-cc29-4b6c-aa49-3271cadeacd2" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_133d626f-463d-42fb-837f-524fb012db30" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_133d626f-463d-42fb-837f-524fb012db30" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_c3a679ec-c88c-4495-8cf6-c5665da1a0c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_c3a679ec-c88c-4495-8cf6-c5665da1a0c5" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_fc326a94-88f1-497b-ade8-6491609b8aad" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockConsiderationReceivedOnTransactionGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_fc326a94-88f1-497b-ade8-6491609b8aad" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_1b554b09-155c-42b5-9e62-31010e37bb58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockConsiderationReceivedOnTransaction"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_1b554b09-155c-42b5-9e62-31010e37bb58" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts_8b6195ae-61fd-407b-adad-e8ee084c87c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_PaymentsOfStockIssuanceCosts_8b6195ae-61fd-407b-adad-e8ee084c87c3" xlink:type="arc" order="8"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/IncomeTaxesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:to="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_e128187f-1863-4c95-91df-49982b966e21_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:to="loc_srt_SegmentGeographicalDomain_e128187f-1863-4c95-91df-49982b966e21_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_a68046f6-95be-4a2e-bc29-020b24139e81" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:to="loc_srt_SegmentGeographicalDomain_a68046f6-95be-4a2e-bc29-020b24139e81" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IN_0e803642-4fa3-4606-97d4-b2633e63e294" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_IN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a68046f6-95be-4a2e-bc29-020b24139e81" xlink:to="loc_country_IN_0e803642-4fa3-4606-97d4-b2633e63e294" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_37c77624-e29d-4e77-a6f5-b35b8ded4bf0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_37c77624-e29d-4e77-a6f5-b35b8ded4bf0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_1cec56c7-a048-4542-ac1e-16287d5f6809" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_1cec56c7-a048-4542-ac1e-16287d5f6809" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_4ffdece0-e4f5-4db6-9b1a-c93d4238ebf4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_4ffdece0-e4f5-4db6-9b1a-c93d4238ebf4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5a4cab13-53ad-4b94-95a1-ed073d121bee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5a4cab13-53ad-4b94-95a1-ed073d121bee" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_4d3f5ed8-975c-4d68-9ae0-1be0083fe5c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_4d3f5ed8-975c-4d68-9ae0-1be0083fe5c9" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_764d8f07-d9a7-4299-9a9d-e32c878c950d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_764d8f07-d9a7-4299-9a9d-e32c878c950d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_bae8bbc3-8680-4a2c-bb04-b3e8befb9ba6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:to="loc_us-gaap_DomesticCountryMember_bae8bbc3-8680-4a2c-bb04-b3e8befb9ba6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember_9e7e0bcf-54a7-4115-a4f4-4a9f11319f22" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:to="loc_us-gaap_StateAndLocalJurisdictionMember_9e7e0bcf-54a7-4115-a4f4-4a9f11319f22" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards_ecd10a76-d29f-46fc-9fe1-c5c15e6487a5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_us-gaap_OperatingLossCarryforwards_ecd10a76-d29f-46fc-9fe1-c5c15e6487a5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_693d2cda-8470-4b6f-a31e-f4aeb553dcc3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_693d2cda-8470-4b6f-a31e-f4aeb553dcc3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAmount_dab24eb4-bcd8-45e4-95b6-4473bd1d05e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_us-gaap_TaxCreditCarryforwardAmount_dab24eb4-bcd8-45e4-95b6-4473bd1d05e7" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermPurchaseCommitmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermPurchaseCommitmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_53a72cc7-3bcf-4996-a101-2da42555830b_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_53a72cc7-3bcf-4996-a101-2da42555830b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A200220PenobscotMember_2b58d5b6-635e-4722-907b-3bb67510c3df" xlink:href="cdxs-20231231.xsd#cdxs_A200220PenobscotMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_A200220PenobscotMember_2b58d5b6-635e-4722-907b-3bb67510c3df" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A400PenoscotMember_5439ddbe-740b-4004-afb2-605bcfd8544f" xlink:href="cdxs-20231231.xsd#cdxs_A400PenoscotMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_A400PenoscotMember_5439ddbe-740b-4004-afb2-605bcfd8544f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A501ChesapeakeMember_b9914cf3-dc77-40f3-9bb3-5161242310db" xlink:href="cdxs-20231231.xsd#cdxs_A501ChesapeakeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_A501ChesapeakeMember_b9914cf3-dc77-40f3-9bb3-5161242310db" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_05226d2e-8236-4858-98bd-f4dcaf609131" xlink:href="cdxs-20231231.xsd#cdxs_SanCarlosMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_SanCarlosMember_05226d2e-8236-4858-98bd-f4dcaf609131" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3b452894-5dc8-4ae4-b689-3898f4d60139_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3b452894-5dc8-4ae4-b689-3898f4d60139_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3cbae42d-7491-4f68-901b-ba53cfa77979" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3cbae42d-7491-4f68-901b-ba53cfa77979" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DemandDepositsMember_42e7f9f2-e969-4822-a8e7-eeb1d99f3735" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DemandDepositsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3cbae42d-7491-4f68-901b-ba53cfa77979" xlink:to="loc_us-gaap_DemandDepositsMember_42e7f9f2-e969-4822-a8e7-eeb1d99f3735" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_d4a2eefc-5ce9-47ef-83e7-a50d43deff31_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:to="loc_us-gaap_CreditFacilityDomain_d4a2eefc-5ce9-47ef-83e7-a50d43deff31_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:to="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_c0d1665d-59ce-49c9-b52e-768e217fa360" xlink:href="cdxs-20231231.xsd#cdxs_TermLoanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:to="loc_cdxs_TermLoanMember_c0d1665d-59ce-49c9-b52e-768e217fa360" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevolvingCreditFacilityMember_37823197-5ed3-42ba-9cc1-4bb6daa7cc9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:to="loc_us-gaap_RevolvingCreditFacilityMember_37823197-5ed3-42ba-9cc1-4bb6daa7cc9f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain_03258756-7390-42d0-b963-535f7e10b9bc_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:to="loc_us-gaap_LossContingencyNatureDomain_03258756-7390-42d0-b963-535f7e10b9bc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain_aa7ea785-8c40-4ba4-b4a4-1cdcbb3f6fa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:to="loc_us-gaap_LossContingencyNatureDomain_aa7ea785-8c40-4ba4-b4a4-1cdcbb3f6fa3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndemnificationGuaranteeMember_b282a205-aa15-4609-9c34-00bdf3d97c09" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndemnificationGuaranteeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingencyNatureDomain_aa7ea785-8c40-4ba4-b4a4-1cdcbb3f6fa3" xlink:to="loc_us-gaap_IndemnificationGuaranteeMember_b282a205-aa15-4609-9c34-00bdf3d97c09" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty_51508d37-0ae3-4311-a9fb-0f2945ba545b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_AreaOfRealEstateProperty_51508d37-0ae3-4311-a9fb-0f2945ba545b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LesseeOperatingLeaseOptionToExtendNumber_a29804b2-4222-4e5a-8b4d-23077c08681f" xlink:href="cdxs-20231231.xsd#cdxs_LesseeOperatingLeaseOptionToExtendNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_LesseeOperatingLeaseOptionToExtendNumber_a29804b2-4222-4e5a-8b4d-23077c08681f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_89b17b57-576e-4ad8-b0b9-dc40c8573def" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_89b17b57-576e-4ad8-b0b9-dc40c8573def" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_fad80c75-2d2b-4491-a1af-7956bf547a86" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndInvestmentsNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_fad80c75-2d2b-4491-a1af-7956bf547a86" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1_01b7c449-05d2-4611-bbd7-0b5ab52a0d83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1_01b7c449-05d2-4611-bbd7-0b5ab52a0d83" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1_3ac633db-11a4-40e5-aae2-1436f6f768c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1_3ac633db-11a4-40e5-aae2-1436f6f768c2" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_36975025-454b-41f0-9374-082c0d83a628" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_OperatingLeaseLiability_36975025-454b-41f0-9374-082c0d83a628" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityDeposit_de29fbf8-31a6-415e-8d58-817832121635" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityDeposit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_SecurityDeposit_de29fbf8-31a6-415e-8d58-817832121635" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_bbdba97c-e633-425e-ad4b-9bd8f723bbfc" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_bbdba97c-e633-425e-ad4b-9bd8f723bbfc" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_5436fc03-812b-4b25-8dd8-b742eeb2ba87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_AssetImpairmentCharges_5436fc03-812b-4b25-8dd8-b742eeb2ba87" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_375f9641-0935-4e7a-aeb4-3613cf5db61a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_375f9641-0935-4e7a-aeb4-3613cf5db61a" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_27e0c78c-25b7-4ef3-a20d-9d52a1637db7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_27e0c78c-25b7-4ef3-a20d-9d52a1637db7" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetRetirementObligationWriteoff_b051e154-d917-4bd4-a648-9c27981e909d" xlink:href="cdxs-20231231.xsd#cdxs_AssetRetirementObligationWriteoff"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_AssetRetirementObligationWriteoff_b051e154-d917-4bd4-a648-9c27981e909d" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetRetirementObligation_091dd62c-af14-45c7-ad89-84d18eac0cb4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetRetirementObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_AssetRetirementObligation_091dd62c-af14-45c7-ad89-84d18eac0cb4" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_6aefd6ec-ba48-4508-917e-972792374b37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_6aefd6ec-ba48-4508-917e-972792374b37" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_71bbda13-a6f6-40ae-9106-6ee58eee0620" xlink:href="cdxs-20231231.xsd#cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_71bbda13-a6f6-40ae-9106-6ee58eee0620" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_f0efec97-66b7-4877-9c8c-317fc1436297" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_f0efec97-66b7-4877-9c8c-317fc1436297" xlink:type="arc" order="16"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesOtherCommitmentsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:to="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsDomain_fb685f9b-c83a-45f4-a542-5e6da0637029_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:to="loc_us-gaap_OtherCommitmentsDomain_fb685f9b-c83a-45f4-a542-5e6da0637029_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsDomain_16276bcd-3114-45a6-a2bf-8b4f336700c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:to="loc_us-gaap_OtherCommitmentsDomain_16276bcd-3114-45a6-a2bf-8b4f336700c5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FacilityMaintenanceAgreementMember_958bf611-27ed-4d1f-8a72-2b3f7b707222" xlink:href="cdxs-20231231.xsd#cdxs_FacilityMaintenanceAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherCommitmentsDomain_16276bcd-3114-45a6-a2bf-8b4f336700c5" xlink:to="loc_cdxs_FacilityMaintenanceAgreementMember_958bf611-27ed-4d1f-8a72-2b3f7b707222" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitment_acd74c8a-bf5b-4333-981b-6b6c8dd6421d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_OtherCommitment_acd74c8a-bf5b-4333-981b-6b6c8dd6421d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths_07d223f5-c0c4-4e89-9118-bf32e11a6230" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInNextTwelveMonths"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths_07d223f5-c0c4-4e89-9118-bf32e11a6230" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInSecondYear_c0d6b3cf-9f5a-4be8-9057-2b6082d59006" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInSecondYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_OtherCommitmentDueInSecondYear_c0d6b3cf-9f5a-4be8-9057-2b6082d59006" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RelatedPartyTransactionsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RelatedPartyTransactionsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RelatedPartyTransactionsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_cb11de8e-67bb-48ef-aa95-c6c0fed3446a_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_cb11de8e-67bb-48ef-aa95-c6c0fed3446a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_59b53239-4f34-42ff-a766-96c90f9aef1e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_59b53239-4f34-42ff-a766-96c90f9aef1e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_1318cbb3-815d-43fa-9363-ad99ff97a6bb" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_59b53239-4f34-42ff-a766-96c90f9aef1e" xlink:to="loc_cdxs_MolecularAssembliesIncMember_1318cbb3-815d-43fa-9363-ad99ff97a6bb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_dcaedbae-3ca2-46fd-8154-60886ab249c1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:to="loc_us-gaap_ClassOfStockDomain_dcaedbae-3ca2-46fd-8154-60886ab249c1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:to="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember_70f10911-344f-4134-8c30-d22bd90896d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:to="loc_us-gaap_SeriesAPreferredStockMember_70f10911-344f-4134-8c30-d22bd90896d7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_7a626008-113c-410e-b290-ec0bcfa688f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_7a626008-113c-410e-b290-ec0bcfa688f1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_db383b7e-2dd1-47c3-b73d-8d941ac39081" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_db383b7e-2dd1-47c3-b73d-8d941ac39081" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_dfb3f740-1a33-4312-824e-1bc7871b1049" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_db383b7e-2dd1-47c3-b73d-8d941ac39081" xlink:to="loc_cdxs_MolecularAssembliesIncMember_dfb3f740-1a33-4312-824e-1bc7871b1049" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_c2c19564-06c4-4ddb-9476-1652da1dbee0_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_c2c19564-06c4-4ddb-9476-1652da1dbee0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_b9f6c030-c7db-48db-86ef-659a79add5a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_b9f6c030-c7db-48db-86ef-659a79add5a9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember_fa504493-9ce6-466d-b2e9-cbb24bc67d04" xlink:href="cdxs-20231231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_b9f6c030-c7db-48db-86ef-659a79add5a9" xlink:to="loc_cdxs_MasterCollaborationResearchAgreementMember_fa504493-9ce6-466d-b2e9-cbb24bc67d04" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_823f571b-5ff1-40ac-9e66-d2f61e9896dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_823f571b-5ff1-40ac-9e66-d2f61e9896dc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_415006fa-4b15-4f6f-ac65-e90ee16885e0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_415006fa-4b15-4f6f-ac65-e90ee16885e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_34229235-b5a9-44c6-bdf4-206d486218b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_34229235-b5a9-44c6-bdf4-206d486218b4" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_216dca7e-a348-43f2-98d8-b5faebea85fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_216dca7e-a348-43f2-98d8-b5faebea85fc" xlink:to="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_9644b643-915b-416f-ab39-b97b41c601c1_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:to="loc_srt_NameOfMajorCustomerDomain_9644b643-915b-416f-ab39-b97b41c601c1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:to="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerAMember_5bcef2be-6936-4a03-8875-6af629538f3f" xlink:href="cdxs-20231231.xsd#cdxs_CustomerAMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerAMember_5bcef2be-6936-4a03-8875-6af629538f3f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerBMember_4f5b19c5-2752-4e34-ad8e-ad168755d438" xlink:href="cdxs-20231231.xsd#cdxs_CustomerBMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerBMember_4f5b19c5-2752-4e34-ad8e-ad168755d438" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerCMember_1ef40575-d533-41b7-b9ab-5cf07b0b782b" xlink:href="cdxs-20231231.xsd#cdxs_CustomerCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerCMember_1ef40575-d533-41b7-b9ab-5cf07b0b782b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerDMember_2413bfab-ae73-4787-b6fe-f4c2bf2778d9" xlink:href="cdxs-20231231.xsd#cdxs_CustomerDMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerDMember_2413bfab-ae73-4787-b6fe-f4c2bf2778d9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerEMember_0a23f481-3d31-40d8-bd6b-73fdfe29d7ee" xlink:href="cdxs-20231231.xsd#cdxs_CustomerEMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerEMember_0a23f481-3d31-40d8-bd6b-73fdfe29d7ee" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerFMember_db1ff85b-eddc-4b46-82c8-7e63abc20553" xlink:href="cdxs-20231231.xsd#cdxs_CustomerFMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerFMember_db1ff85b-eddc-4b46-82c8-7e63abc20553" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6bea4aae-4924-43ca-aafd-897ecbda1864_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6bea4aae-4924-43ca-aafd-897ecbda1864_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueProductLineMember_eb5519be-544d-4d36-a8e4-212b0283f432" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueProductLineMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:to="loc_us-gaap_SalesRevenueProductLineMember_eb5519be-544d-4d36-a8e4-212b0283f432" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_147738a3-510b-4912-80c1-4703fcaa2f6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:to="loc_us-gaap_AccountsReceivableMember_147738a3-510b-4912-80c1-4703fcaa2f6e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_87054786-6a5d-4336-ad46-58fe22890d74_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_87054786-6a5d-4336-ad46-58fe22890d74_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_23edff4f-5f9b-4c79-9d64-c4d68807c3a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_23edff4f-5f9b-4c79-9d64-c4d68807c3a2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_58dc3f66-b54c-419e-96dd-b7672db53f7b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_23edff4f-5f9b-4c79-9d64-c4d68807c3a2" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_58dc3f66-b54c-419e-96dd-b7672db53f7b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_a8fc979d-80de-4988-95cf-bf99112e31d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_216dca7e-a348-43f2-98d8-b5faebea85fc" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_a8fc979d-80de-4988-95cf-bf99112e31d0" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationRevenuesDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_9828fa5b-4dfa-4668-8eb0-54c860ab9713" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_9828fa5b-4dfa-4668-8eb0-54c860ab9713" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:to="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_1257e1fd-fe4e-4546-8bc9-d61151220a4d_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:to="loc_srt_SegmentGeographicalDomain_1257e1fd-fe4e-4546-8bc9-d61151220a4d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:to="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_dd2bdc10-663f-489b-8709-e56908c2c768" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_srt_AmericasMember_dd2bdc10-663f-489b-8709-e56908c2c768" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_4e3e2020-2934-41c6-99ae-9513e291c463" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_us-gaap_EMEAMember_4e3e2020-2934-41c6-99ae-9513e291c463" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_92255e48-8021-4fd6-a6c0-229d6ffe1c2c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_srt_AsiaPacificMember_92255e48-8021-4fd6-a6c0-229d6ffe1c2c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_a26022b7-6973-46a6-ba4f-c5a90acbbdfb" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_US_a26022b7-6973-46a6-ba4f-c5a90acbbdfb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IE_3c64d475-0c60-4277-a3e3-8d13f5d2f92b" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_IE"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_IE_3c64d475-0c60-4277-a3e3-8d13f5d2f92b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CH_6b8bfae8-c13d-46ff-9ee1-4f082ca5c625" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CH"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_CH_6b8bfae8-c13d-46ff-9ee1-4f082ca5c625" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN_c501fc75-aca4-4352-ac90-a90e9297a5ca" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_CN_c501fc75-aca4-4352-ac90-a90e9297a5ca" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_9828fa5b-4dfa-4668-8eb0-54c860ab9713" xlink:to="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_110c1689-c927-4f17-a1d9-5d9f606c76cd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_110c1689-c927-4f17-a1d9-5d9f606c76cd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_1d2c5685-37e8-4008-bf08-44475493e0b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:to="loc_us-gaap_NoncurrentAssets_1d2c5685-37e8-4008-bf08-44475493e0b4" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_bee2584f-b092-4331-972e-842c1a588f59" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_bee2584f-b092-4331-972e-842c1a588f59" xlink:to="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:to="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_05cbcff7-0312-4d49-9482-5525b1cb2030_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:to="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_05cbcff7-0312-4d49-9482-5525b1cb2030_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:to="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialAssetNotPastDueMember_572faddb-d064-4506-b560-628d257fbf29" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialAssetNotPastDueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancialAssetNotPastDueMember_572faddb-d064-4506-b560-628d257fbf29" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivables30To59DaysPastDueMember_c095b6eb-96d0-46b6-8b53-cea4505ec9c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivables30To59DaysPastDueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancingReceivables30To59DaysPastDueMember_c095b6eb-96d0-46b6-8b53-cea4505ec9c6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivables60To89DaysPastDueMember_108e1920-06a4-4f00-ac51-1570c05c6fec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivables60To89DaysPastDueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancingReceivables60To89DaysPastDueMember_108e1920-06a4-4f00-ac51-1570c05c6fec" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember_c2b081ed-ce04-4c57-ae61-97ef69aa1c5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember_c2b081ed-ce04-4c57-ae61-97ef69aa1c5e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinancialReceivablesPastDueMember_e992d247-78e6-4de8-9e09-668d7c70668f" xlink:href="cdxs-20231231.xsd#cdxs_FinancialReceivablesPastDueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_cdxs_FinancialReceivablesPastDueMember_e992d247-78e6-4de8-9e09-668d7c70668f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableGross_3092f67d-f197-4983-9950-88891b15d7b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_bee2584f-b092-4331-972e-842c1a588f59" xlink:to="loc_us-gaap_AccountsReceivableGross_3092f67d-f197-4983-9950-88891b15d7b6" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RestructuringChargesDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_39594791-3e17-48e2-b07a-af6368406ee6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_39594791-3e17-48e2-b07a-af6368406ee6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_5c05cb1f-4a92-464e-ad05-2d4943efb0e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_5c05cb1f-4a92-464e-ad05-2d4943efb0e6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeSeveranceMember_ea78e09e-83cb-4312-ac1b-496271349386" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeSeveranceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:to="loc_us-gaap_EmployeeSeveranceMember_ea78e09e-83cb-4312-ac1b-496271349386" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_59f61e14-43eb-4f88-befd-99ba78fd81a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_59f61e14-43eb-4f88-befd-99ba78fd81a0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_29b8b670-1a42-4119-96f4-06d5b88c39f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:to="loc_us-gaap_RestructuringCharges_29b8b670-1a42-4119-96f4-06d5b88c39f1" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SubsequentEventsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_95cb3d6d-8f62-4bf3-b052-bf56097b26c8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_95cb3d6d-8f62-4bf3-b052-bf56097b26c8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansMember_0b3b12e5-c73c-4b41-8b06-5ff4773fb338" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoansMember_0b3b12e5-c73c-4b41-8b06-5ff4773fb338" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansFirstTrancheMember_0ced14ee-1d02-47c1-91f7-fa40cdae65e1" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansFirstTrancheMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoansFirstTrancheMember_0ced14ee-1d02-47c1-91f7-fa40cdae65e1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansSecondTrancheMember_92362483-d82e-4ffc-bb6f-885aefea5b96" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansSecondTrancheMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoansSecondTrancheMember_92362483-d82e-4ffc-bb6f-885aefea5b96" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_152c4896-88f3-4141-a689-012b52665d34" xlink:href="cdxs-20231231.xsd#cdxs_TermLoanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoanMember_152c4896-88f3-4141-a689-012b52665d34" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_e406178b-e285-4773-b820-843e85edc8c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_e406178b-e285-4773-b820-843e85edc8c6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_6db9debe-3ed0-4b01-8d8a-8d64b4018f14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_e406178b-e285-4773-b820-843e85edc8c6" xlink:to="loc_us-gaap_SubsequentEventMember_6db9debe-3ed0-4b01-8d8a-8d64b4018f14" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateDomain_d21f0e29-5db4-40ce-8f01-14f3be43f449_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:to="loc_us-gaap_VariableRateDomain_d21f0e29-5db4-40ce-8f01-14f3be43f449_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateDomain_f1541799-c01e-43f3-80e6-12b57f2f1089" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:to="loc_us-gaap_VariableRateDomain_f1541799-c01e-43f3-80e6-12b57f2f1089" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrimeRateMember_cfa94199-59b7-4d58-9d60-70c3af825ff5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrimeRateMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_VariableRateDomain_f1541799-c01e-43f3-80e6-12b57f2f1089" xlink:to="loc_us-gaap_PrimeRateMember_cfa94199-59b7-4d58-9d60-70c3af825ff5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_cea51f28-4c1f-424f-a828-c7e723cb868c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:to="loc_us-gaap_ClassOfStockDomain_cea51f28-4c1f-424f-a828-c7e723cb868c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_481697aa-c756-4094-9ad2-989c690536d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:to="loc_us-gaap_ClassOfStockDomain_481697aa-c756-4094-9ad2-989c690536d2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_f84e6d06-32cd-4b2b-b2af-d4bf85d9c1ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_481697aa-c756-4094-9ad2-989c690536d2" xlink:to="loc_us-gaap_CommonStockMember_f84e6d06-32cd-4b2b-b2af-d4bf85d9c1ee" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTerm_267d52df-8324-4d4a-8890-6c538cdfdbeb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentTerm_267d52df-8324-4d4a-8890-6c538cdfdbeb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount_8f67ca14-52b0-40ab-a354-b8260f94815b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentFaceAmount_8f67ca14-52b0-40ab-a354-b8260f94815b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentNumberOfTranches_f45cbcf2-ed71-4ed3-ad6b-56318bca9dfd" xlink:href="cdxs-20231231.xsd#cdxs_DebtInstrumentNumberOfTranches"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_cdxs_DebtInstrumentNumberOfTranches_f45cbcf2-ed71-4ed3-ad6b-56318bca9dfd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPeriod_2b3c18bb-e812-4401-9cd3-ec94fef5a8eb" xlink:href="cdxs-20231231.xsd#cdxs_DebtInstrumentInterestPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_cdxs_DebtInstrumentInterestPeriod_2b3c18bb-e812-4401-9cd3-ec94fef5a8eb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_21ee4e94-76b3-48e5-b1d1-0e0374dd6a06" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_21ee4e94-76b3-48e5-b1d1-0e0374dd6a06" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_a71d9db6-f458-4a67-97a2-c3482f7f3711" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_a71d9db6-f458-4a67-97a2-c3482f7f3711" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_096e47c4-fb2a-45ab-bdaa-8775df306b39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_096e47c4-fb2a-45ab-bdaa-8775df306b39" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_b82cedda-e11c-45dd-b5c7-810670b6a84e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_b82cedda-e11c-45dd-b5c7-810670b6a84e" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/AwardTypeOnly" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#AwardTypeOnly"/>
  <link:definitionLink xlink:role="http://xbrl.sec.gov/ecd/AwardTypeOnly" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockMember" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncentiveStockOptionsMember_e3d3c083-131b-4535-b15e-0adaf9823141" xlink:href="cdxs-20231231.xsd#cdxs_IncentiveStockOptionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_IncentiveStockOptionsMember_e3d3c083-131b-4535-b15e-0adaf9823141" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NonStatutoryStockOptionsMember_587f2951-d330-4a37-8771-624e450ad9df" xlink:href="cdxs-20231231.xsd#cdxs_NonStatutoryStockOptionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_NonStatutoryStockOptionsMember_587f2951-d330-4a37-8771-624e450ad9df" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_PerformanceSharesMember" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember_5c60d2e4-e9e9-4794-8d0b-ae696437a6d6" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_PerformanceShareUnitsPSUsMember_5c60d2e4-e9e9-4794-8d0b-ae696437a6d6" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_e5e81679-6229-4855-ac33-35ecf33d0687" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_e5e81679-6229-4855-ac33-35ecf33d0687" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember_378cb23d-1b56-4d30-be98-f787439a6d8d" xlink:href="cdxs-20231231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_RSUsAndRSAsMember_378cb23d-1b56-4d30-be98-f787439a6d8d" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_20473a88-1ff2-4107-adc6-5a3c4e77394b" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_PerformanceStockUnitsMember_20473a88-1ff2-4107-adc6-5a3c4e77394b" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockMember" xlink:type="arc" order="14"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>13
<FILENAME>cdxs-20231231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:94d45509-9aef-44d3-a47e-c1e1904e3223,g:402e078b-413f-4095-9479-d13944eb3b89-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_us-gaap_ProceedsFromCollaborators_4003ca52-bfae-4a65-a085-4b5245f23c3e_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromCollaborators" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaboration payment</link:label>
    <link:label id="lab_us-gaap_ProceedsFromCollaborators_label_en-US" xlink:label="lab_us-gaap_ProceedsFromCollaborators" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Collaborators</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromCollaborators" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromCollaborators"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromCollaborators" xlink:to="lab_us-gaap_ProceedsFromCollaborators" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_terseLabel_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Appreciation Rights (SARs)</link:label>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_label_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Appreciation Rights (SARs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:to="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_310a9fb6-eb0e-430f-9c1d-2860ce5468a6_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_label_en-US" xlink:label="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward" xlink:to="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_e4751422-fba7-48c4-b62f-3f3cfab0e0a1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Accrued Liabilities</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_85a308c1-55cc-45a9-b9ca-cc0fe76f01a7_verboseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other accrued liabilities</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_7b1b1e6b-7205-4f71-b91b-a2731630f225_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total other accrued liabilities</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AuditorInformationAbstract_label_en-US" xlink:label="lab_cdxs_AuditorInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Information [Abstract]</link:label>
    <link:label id="lab_cdxs_AuditorInformationAbstract_documentation_en-US" xlink:label="lab_cdxs_AuditorInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AuditorInformationAbstract" xlink:href="cdxs-20231231.xsd#cdxs_AuditorInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AuditorInformationAbstract" xlink:to="lab_cdxs_AuditorInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_a4948777-ff9f-4d2d-9804-b44985438e56_verboseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and development</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_97004c07-9625-40fd-8b22-157700aef9fb_verboseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changes in operating assets and liabilities:</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Operating Capital [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionLineItems_78d109b2-f23b-4fd1-9dce-bde520aa1bd0_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction [Line Items]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionLineItems_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems" xlink:to="lab_us-gaap_RelatedPartyTransactionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_73fa7e0c-708f-4e87-81fe-35087bd65d19_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expiration period</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_9acf9a28-43b1-4028-90eb-7858d977523f_terseLabel_en-US" xlink:label="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Convertible preferred stock, shares issued upon conversion (in shares)</link:label>
    <link:label id="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_label_en-US" xlink:label="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Convertible Preferred Stock, Shares Issued upon Conversion</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:to="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_c94b1a01-9ea4-4e05-b72a-29f9ef35b0cb_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Award [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardGrantDateFairValue_terseLabel_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value as of Grant Date</link:label>
    <link:label id="lab_ecd_AwardGrantDateFairValue_label_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardGrantDateFairValue" xlink:to="lab_ecd_AwardGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_EquityMethodInvesteeNameDomain_ed9a713e-83a1-4bd8-83d4-71e19553c70a_terseLabel_en-US" xlink:label="lab_srt_EquityMethodInvesteeNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment, Name [Domain]</link:label>
    <link:label id="lab_srt_EquityMethodInvesteeNameDomain_label_en-US" xlink:label="lab_srt_EquityMethodInvesteeNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EquityMethodInvesteeNameDomain" xlink:to="lab_srt_EquityMethodInvesteeNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_0f54c9cc-547e-4301-b55e-e83683043862_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expected timing of satisfaction, period</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_b9ad5ddc-3643-463c-8fc7-7f3a39d4d0a4_terseLabel_en-US" xlink:label="lab_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Assets and Allowances</link:label>
    <link:label id="lab_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_label_en-US" xlink:label="lab_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="lab_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CashPaidAbstract_66b9c91e-7e99-4b88-9716-03f8368de26b_terseLabel_en-US" xlink:label="lab_cdxs_CashPaidAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash paid:</link:label>
    <link:label id="lab_cdxs_CashPaidAbstract_label_en-US" xlink:label="lab_cdxs_CashPaidAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash Paid [Abstract]</link:label>
    <link:label id="lab_cdxs_CashPaidAbstract_documentation_en-US" xlink:label="lab_cdxs_CashPaidAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashPaidAbstract" xlink:href="cdxs-20231231.xsd#cdxs_CashPaidAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CashPaidAbstract" xlink:to="lab_cdxs_CashPaidAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentInterestPeriod_381877a2-e701-47fb-ad14-9ab446ce13d4_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt instrument, interest period</link:label>
    <link:label id="lab_cdxs_DebtInstrumentInterestPeriod_label_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Interest Period</link:label>
    <link:label id="lab_cdxs_DebtInstrumentInterestPeriod_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Interest Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPeriod" xlink:href="cdxs-20231231.xsd#cdxs_DebtInstrumentInterestPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentInterestPeriod" xlink:to="lab_cdxs_DebtInstrumentInterestPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingPoliciesProcLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_678621c5-1c81-411d-a33f-b6b21df220bd_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options exercisable (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:to="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_3a1e61c6-ba18-4e2f-8425-7f01640217d6_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_51e19093-8de9-4e08-89ff-0ba85b019b6c_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_terseLabel_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement does not require Recovery</link:label>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_label_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Does Not Require Recovery [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:to="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_3dbfa7b6-00f7-4e94-b724-3e5e73e5b832_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capital Stock</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_cdc389cb-c4e0-4a77-b87c-74fb13689984_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate intrinsic value, options vested and expected to vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancialAssetNotPastDueMember_531a67ab-e362-456b-bef6-ddd3051410ce_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialAssetNotPastDueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current</link:label>
    <link:label id="lab_us-gaap_FinancialAssetNotPastDueMember_label_en-US" xlink:label="lab_us-gaap_FinancialAssetNotPastDueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, Not Past Due [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialAssetNotPastDueMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialAssetNotPastDueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialAssetNotPastDueMember" xlink:to="lab_us-gaap_FinancialAssetNotPastDueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_803470fc-b8ad-40f5-8917-2c0d3bf1e79b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expected dividend yield</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SanCarlosMember_05d74cc0-5705-4fe5-8091-90cb29ecf656_terseLabel_en-US" xlink:label="lab_cdxs_SanCarlosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">San Carlos</link:label>
    <link:label id="lab_cdxs_SanCarlosMember_label_en-US" xlink:label="lab_cdxs_SanCarlosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">San Carlos [Member]</link:label>
    <link:label id="lab_cdxs_SanCarlosMember_documentation_en-US" xlink:label="lab_cdxs_SanCarlosMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">San Carlos</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember" xlink:href="cdxs-20231231.xsd#cdxs_SanCarlosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SanCarlosMember" xlink:to="lab_cdxs_SanCarlosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MajorCustomersAxis_9accdf78-6c2d-42e6-a360-6b578140a8f3_terseLabel_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Axis]</link:label>
    <link:label id="lab_srt_MajorCustomersAxis_label_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MajorCustomersAxis" xlink:to="lab_srt_MajorCustomersAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_b6f0fb81-964d-42af-a3a5-149f4cdde7c3_verboseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockValue_8924dab0-0f95-47f7-9eb0-ac7fe1429205_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding</link:label>
    <link:label id="lab_us-gaap_PreferredStockValue_label_en-US" xlink:label="lab_us-gaap_PreferredStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Value, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockValue" xlink:to="lab_us-gaap_PreferredStockValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_9563e959-6cce-498a-9a34-b4e3961af54d_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeDomain" xlink:to="lab_us-gaap_SubsequentEventTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_5f01fa47-73c9-4316-9d86-54dac4221aba_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited/Expired (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_54605cc7-9e81-4bb8-b7bc-bf5ed0c835de_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of long-lived assets held-for-use</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment, Long-Lived Asset, Held-for-Use</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:to="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_a806918f-63f2-46fe-871b-82da22556f82_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net loss per share, diluted (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted" xlink:to="lab_us-gaap_EarningsPerShareDiluted" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_13a8afb2-24bf-4707-89c4-cb19195e665a_verboseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableNetCurrent" xlink:to="lab_us-gaap_AccountsReceivableNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_09e0ad66-8346-4136-8efb-ef23c53262aa_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with customer, liability, retainer fee, non-creditable percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReceivableTypeDomain_a3b89893-8f7d-4f51-8974-8b7c264ce8f9_terseLabel_en-US" xlink:label="lab_us-gaap_ReceivableTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable [Domain]</link:label>
    <link:label id="lab_us-gaap_ReceivableTypeDomain_label_en-US" xlink:label="lab_us-gaap_ReceivableTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivableTypeDomain" xlink:to="lab_us-gaap_ReceivableTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_b72a4c01-7fea-41f4-8386-66e9743266eb_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_label_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Table]</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_documentation_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:to="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_65b0df7b-260a-4157-98ab-f9ad5166d840_terseLabel_en-US" xlink:label="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:label id="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_TradingSymbol_ba85dc74-ee49-4166-9b4c-3d34669b3c73_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_label_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol" xlink:to="lab_dei_TradingSymbol" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_5901189a-4657-4d83-b34e-b36355817e92_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_bd306c9c-112b-41a3-bbab-9f43f9151591_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Collaborative Arrangements and Non-collaborative Arrangement Transactions [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_b5a808b5-fb50-4419-9515-ef55c864cb45_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock_1a62120b-e17e-44fa-914b-c6ae2332ed1c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Cash and Cash Equivalents</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Cash and Cash Equivalents [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockMember_12a7e96e-a462-427b-86a8-7aec3e2159d6_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">ESPP</link:label>
    <link:label id="lab_us-gaap_EmployeeStockMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockMember" xlink:to="lab_us-gaap_EmployeeStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_91d641f1-8b8d-4bf2-b205-ee1746c6c797_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Domain]</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_5c7243a7-e895-4752-a3d4-9feff8de0f5a_verboseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity, Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract" xlink:to="lab_us-gaap_StockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_cba77d6a-c2fd-4712-9b6b-4f37a0c12291_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of the Beginning and Ending Amount of Unrecognized Tax Benefits</link:label>
    <link:label id="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiability_dd30a7b6-6a41-419c-b65a-daab9b1fb40c_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract liabilities: deferred revenue</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiability" xlink:to="lab_us-gaap_ContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_terseLabel_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Executive Category:</link:label>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_label_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Executive Category [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="lab_ecd_ExecutiveCategoryAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_5fbaeabb-7fac-4173-874d-54523619b376_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_a4aab16f-12fe-4076-aefa-2532852f5c7b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercised (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_7fae8117-b628-4943-bdff-ab73d5ed45e0_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Level 1</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member" xlink:to="lab_us-gaap_FairValueInputsLevel1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesC1PreferredStockMember_b92627f4-e564-414f-87b9-812e9794f217_terseLabel_en-US" xlink:label="lab_cdxs_SeriesC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series C-1 Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesC1PreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series C-1 Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesC1PreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series C-1 Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesC1PreferredStockMember" xlink:href="cdxs-20231231.xsd#cdxs_SeriesC1PreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesC1PreferredStockMember" xlink:to="lab_cdxs_SeriesC1PreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_8fb0f3b6-6a4b-437e-81ef-ea898c022ab2_verboseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Estimated Ranges of Useful Lives of Property and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_b8a817d8-cea8-4906-9dbd-494f6b530569_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and Equipment, Net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_051c385a-c501-4031-bd2c-db16eeff0e96_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis" xlink:to="lab_us-gaap_StatementEquityComponentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_f59bbf63-15ec-4698-b991-71a7a7ab8806_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of warrant or right, exercise price of warrants or rights (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_label_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Warrant or Right, Exercise Price of Warrants or Rights</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:to="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional 402(v) Disclosure</link:label>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_label_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional 402(v) Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Additional402vDisclosureTextBlock" xlink:to="lab_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_f8e04984-db9f-4db4-bff6-ced299bcb62c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total shares remaining available for issuance (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_fe21c06f-1be1-4f85-932b-e07e8d443710_negatedLabel_en-US" xlink:label="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Right-of-use assets</link:label>
    <link:label id="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_label_en-US" xlink:label="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Right-of-use Assets</link:label>
    <link:label id="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_documentation_en-US" xlink:label="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Right-of-use Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:href="cdxs-20231231.xsd#cdxs_DeferredTaxLiabilitiesRightOfUseAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:to="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_0391222b-877a-4d82-b0f8-d85f7c80897d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_266e1756-8f76-4e62-96f8-3e00f0875112_verboseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenues by Geographical Area</link:label>
    <link:label id="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Revenue from Segments to Consolidated [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:to="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntitySmallBusiness_307a6f63-7596-463f-a42e-6488f6ca2294_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntitySmallBusiness_label_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness" xlink:to="lab_dei_EntitySmallBusiness" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_FacilityMaintenanceAgreementMember_b5e6775d-ed5b-4fe8-96bf-0a7d96655696_terseLabel_en-US" xlink:label="lab_cdxs_FacilityMaintenanceAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Facility maintenance agreement</link:label>
    <link:label id="lab_cdxs_FacilityMaintenanceAgreementMember_label_en-US" xlink:label="lab_cdxs_FacilityMaintenanceAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Facility Maintenance Agreement [Member]</link:label>
    <link:label id="lab_cdxs_FacilityMaintenanceAgreementMember_documentation_en-US" xlink:label="lab_cdxs_FacilityMaintenanceAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Facility Maintenance Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FacilityMaintenanceAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_FacilityMaintenanceAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_FacilityMaintenanceAgreementMember" xlink:to="lab_cdxs_FacilityMaintenanceAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_36899a9e-8c3e-4f45-b465-8a85583baaba_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_label_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber" xlink:to="lab_dei_LocalPhoneNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MilestoneOneMember_f31fe7bf-969f-4c89-872a-b3b0eca9fa0c_terseLabel_en-US" xlink:label="lab_cdxs_MilestoneOneMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone One</link:label>
    <link:label id="lab_cdxs_MilestoneOneMember_label_en-US" xlink:label="lab_cdxs_MilestoneOneMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone One [Member]</link:label>
    <link:label id="lab_cdxs_MilestoneOneMember_documentation_en-US" xlink:label="lab_cdxs_MilestoneOneMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MilestoneOneMember" xlink:to="lab_cdxs_MilestoneOneMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RecoveryOfErrCompDisclosureLineItems_label_en-US" xlink:label="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Recovery of Erroneously Awarded Compensation Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LetterOfCreditMember_ffd5d7c8-c918-4215-95e1-ae6e9c606a03_terseLabel_en-US" xlink:label="lab_us-gaap_LetterOfCreditMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Letter of Credit</link:label>
    <link:label id="lab_us-gaap_LetterOfCreditMember_label_en-US" xlink:label="lab_us-gaap_LetterOfCreditMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Letter of Credit [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LetterOfCreditMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LetterOfCreditMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LetterOfCreditMember" xlink:to="lab_us-gaap_LetterOfCreditMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AccountingPoliciesTable_ac87aad6-9810-44d6-a62e-a7899b57a72a_verboseLabel_en-US" xlink:label="lab_cdxs_AccountingPoliciesTable" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Table]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesTable_label_en-US" xlink:label="lab_cdxs_AccountingPoliciesTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Table]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesTable_documentation_en-US" xlink:label="lab_cdxs_AccountingPoliciesTable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesTable" xlink:href="cdxs-20231231.xsd#cdxs_AccountingPoliciesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AccountingPoliciesTable" xlink:to="lab_cdxs_AccountingPoliciesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableMember_6fccb360-8e3b-4953-8629-67accabec92c_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableMember_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableMember" xlink:to="lab_us-gaap_AccountsReceivableMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember_f782fade-b079-48a2-90d8-13542f33c24b_terseLabel_en-US" xlink:label="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commercialization And Enzyme Supply Agreement</link:label>
    <link:label id="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember_label_en-US" xlink:label="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commercialization And Enzyme Supply Agreement [Member]</link:label>
    <link:label id="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember_documentation_en-US" xlink:label="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commercialization And Enzyme Supply Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_CommercializationAndEnzymeSupplyAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:to="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesAAndBPreferredStockMember_220c473c-c0ab-4da7-8e50-23a1108f3754_terseLabel_en-US" xlink:label="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series A and B Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesAAndBPreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series A And B Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesAAndBPreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series A And B Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember" xlink:href="cdxs-20231231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesAAndBPreferredStockMember" xlink:to="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_610b6716-20d4-4a14-b7c8-5eeeb82ca7f2_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">RSUs</link:label>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:to="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_9fdebf39-1b79-4830-bf42-f4c914ad4323_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-based Compensation, RSU Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Depreciation_13bc173e-4584-4b7d-88c9-a15fb36da37e_verboseLabel_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Depreciation</link:label>
    <link:label id="lab_us-gaap_Depreciation_25565f9f-e556-4bb9-8016-b088ffb08d8b_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Depreciation expense</link:label>
    <link:label id="lab_us-gaap_Depreciation_label_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Depreciation" xlink:to="lab_us-gaap_Depreciation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_7614a544-4598-4fee-850e-0e4b7b9f4393_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_85cbafcd-6e27-4bec-9481-f89407151324_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PiperSandlerCoMember_ff677075-eee3-40d3-b98a-2186e7c2145b_terseLabel_en-US" xlink:label="lab_cdxs_PiperSandlerCoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PSC</link:label>
    <link:label id="lab_cdxs_PiperSandlerCoMember_label_en-US" xlink:label="lab_cdxs_PiperSandlerCoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Piper Sandler &amp; Co [Member]</link:label>
    <link:label id="lab_cdxs_PiperSandlerCoMember_documentation_en-US" xlink:label="lab_cdxs_PiperSandlerCoMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Piper Sandler &amp; Co</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PiperSandlerCoMember" xlink:href="cdxs-20231231.xsd#cdxs_PiperSandlerCoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PiperSandlerCoMember" xlink:to="lab_cdxs_PiperSandlerCoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_944782d5-e93a-4121-9b48-fb8009d26074_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, number of installments</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent_ca1916f8-6124-421a-adef-a333288b69b7_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted cash and investments, noncurrent</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash and Investments, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndInvestmentsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:to="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember_fca3a39f-b41b-4fef-83a0-4c6be9453613_terseLabel_en-US" xlink:label="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Arrangements and Non-arrangement Transactions [Domain]</link:label>
    <link:label id="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember_label_en-US" xlink:label="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_ca88fe63-6c25-4b95-9cc4-173068f953dc_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taxes paid related to net share settlement of equity awards</link:label>
    <link:label id="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_fd67e1b5-90ee-48ec-b75e-8093daa00cb1_verboseLabel_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additions</link:label>
    <link:label id="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_label_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) In Operating Lease, Right-of-Use Asset</link:label>
    <link:label id="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_documentation_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) In Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:href="cdxs-20231231.xsd#cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="lab_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_13fe9fe3-aed6-4774-96d3-17b200f5da78_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares Not Included in Computation of Diluted Net Loss Per Share</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesOther_552895be-1cea-47fb-8dbd-e8a96cad4a66_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Release of stock awards (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesOther_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Issued During Period, Shares, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GranteeStatusAxis_59ce2a71-1ea8-474f-8e9e-5812366bca92_terseLabel_en-US" xlink:label="lab_us-gaap_GranteeStatusAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Grantee Status [Axis]</link:label>
    <link:label id="lab_us-gaap_GranteeStatusAxis_label_en-US" xlink:label="lab_us-gaap_GranteeStatusAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Grantee Status [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GranteeStatusAxis" xlink:to="lab_us-gaap_GranteeStatusAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConvertibleDebt_c2d022a8-db9e-4c17-9e2c-7b9db8b63c54_terseLabel_en-US" xlink:label="lab_us-gaap_ConvertibleDebt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-marketable debt security at carrying value</link:label>
    <link:label id="lab_us-gaap_ConvertibleDebt_label_en-US" xlink:label="lab_us-gaap_ConvertibleDebt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Convertible Debt</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebt" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertibleDebt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConvertibleDebt" xlink:to="lab_us-gaap_ConvertibleDebt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_terseLabel_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Available</link:label>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_label_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement, Securities Aggregate Available Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:to="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_799f2960-244c-41a9-bfbb-9d36becd08f9_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and development</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Expense [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:to="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AwardTypeAxis_1a6c1c20-330f-488b-a02e-264b9214d39b_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AwardTypeAxis_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="lab_us-gaap_AwardTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_5e20c010-600f-41a8-86e8-978ac4aabb32_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total shares excluded as anti-dilutive (in shares)</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_82559d8e-43cc-42de-aaf1-f71b8928bda8_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract_91f32c6e-c273-454a-9e17-a27353829a3f_terseLabel_en-US" xlink:label="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supplemental non-cash investing and financing activities:</link:label>
    <link:label id="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract_label_en-US" xlink:label="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncash Investing and Financing Items [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AllowanceForCreditLossAdjustment_fe990504-9f87-4782-8f58-19d8bdfeafd8_negatedTerseLabel_en-US" xlink:label="lab_cdxs_AllowanceForCreditLossAdjustment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to existing allowance</link:label>
    <link:label id="lab_cdxs_AllowanceForCreditLossAdjustment_label_en-US" xlink:label="lab_cdxs_AllowanceForCreditLossAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance For Credit Loss, Adjustment</link:label>
    <link:label id="lab_cdxs_AllowanceForCreditLossAdjustment_documentation_en-US" xlink:label="lab_cdxs_AllowanceForCreditLossAdjustment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance For Credit Loss, Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForCreditLossAdjustment" xlink:href="cdxs-20231231.xsd#cdxs_AllowanceForCreditLossAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AllowanceForCreditLossAdjustment" xlink:to="lab_cdxs_AllowanceForCreditLossAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_6438db86-4722-432a-82fd-06038b849436_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SupplyCommitmentTableTextBlock_c7120618-ba6d-4c56-9724-b4d4dcb6d6f1_terseLabel_en-US" xlink:label="lab_us-gaap_SupplyCommitmentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Supply Commitment</link:label>
    <link:label id="lab_us-gaap_SupplyCommitmentTableTextBlock_label_en-US" xlink:label="lab_us-gaap_SupplyCommitmentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supply Commitment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplyCommitmentTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplyCommitmentTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SupplyCommitmentTableTextBlock" xlink:to="lab_us-gaap_SupplyCommitmentTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_3d42e164-07c2-405f-b5e5-60599d061566_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_aad8a986-d807-4f19-a05f-190a1aa1e0f3_terseLabel_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_label_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_IcfrAuditorAttestationFlag" xlink:to="lab_dei_IcfrAuditorAttestationFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_30421a26-dc81-44d2-af7c-9b8c256a4aec_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_b5473868-e4d7-4bd4-bbf6-49abf7162707_terseLabel_en-US" xlink:label="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease - Right-of-use assets obtained in exchange for lease liabilities</link:label>
    <link:label id="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Right-of-Use Asset Obtained in Exchange for Operating Lease Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="lab_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_IncentiveStockOptionsMember_1d79a386-a762-4934-84f8-0d3cb633c16d_terseLabel_en-US" xlink:label="lab_cdxs_IncentiveStockOptionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Incentive Stock Options</link:label>
    <link:label id="lab_cdxs_IncentiveStockOptionsMember_label_en-US" xlink:label="lab_cdxs_IncentiveStockOptionsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Incentive Stock Options [Member]</link:label>
    <link:label id="lab_cdxs_IncentiveStockOptionsMember_documentation_en-US" xlink:label="lab_cdxs_IncentiveStockOptionsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Incentive Stock Options [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncentiveStockOptionsMember" xlink:href="cdxs-20231231.xsd#cdxs_IncentiveStockOptionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_IncentiveStockOptionsMember" xlink:to="lab_cdxs_IncentiveStockOptionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsDisclosureTextBlock_dbba569e-2e95-44fe-a6f9-98a6bc87699a_verboseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transactions</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transactions Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:to="lab_us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_b5c6e7fb-24cd-4531-81f2-2afc765ab8a4_verboseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Less: imputed interest</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_label_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoActuallyPaidCompAmt" xlink:to="lab_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceLineItems_ee482e28-2fd2-4586-9224-094611cfd0d6_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes [Line Items]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceLineItems_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Valuation Allowance [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceLineItems" xlink:to="lab_us-gaap_ValuationAllowanceLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_fb7e84aa-270c-4c52-b128-9409bacf28cb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeqWellMember_d9d740a4-3411-418a-8ec7-ac24f13503db_terseLabel_en-US" xlink:label="lab_cdxs_SeqWellMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">seqWell</link:label>
    <link:label id="lab_cdxs_SeqWellMember_label_en-US" xlink:label="lab_cdxs_SeqWellMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">seqWell [Member]</link:label>
    <link:label id="lab_cdxs_SeqWellMember_documentation_en-US" xlink:label="lab_cdxs_SeqWellMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">seqWell</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeqWellMember" xlink:to="lab_cdxs_SeqWellMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_f3590518-aab4-46c9-bf90-883043497f5c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseCurrent_4d32cd75-126a-4d5c-8ff9-a6c535ce8488_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid expense, current</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid Expense, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseCurrent" xlink:to="lab_us-gaap_PrepaidExpenseCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_5e512431-12ed-4be0-bd5b-78b8d09df74d_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current portion of lease obligations - Operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_FinanceLeaseCost_81267194-d6b4-421d-add7-9f1751d06d1f_terseLabel_en-US" xlink:label="lab_cdxs_FinanceLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finance lease costs</link:label>
    <link:label id="lab_cdxs_FinanceLeaseCost_label_en-US" xlink:label="lab_cdxs_FinanceLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finance Lease, Cost</link:label>
    <link:label id="lab_cdxs_FinanceLeaseCost_documentation_en-US" xlink:label="lab_cdxs_FinanceLeaseCost" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finance Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinanceLeaseCost" xlink:href="cdxs-20231231.xsd#cdxs_FinanceLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_FinanceLeaseCost" xlink:to="lab_cdxs_FinanceLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_e3e76ced-a83a-411b-bfb7-a5ea433d87cd_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_9d6c34de-6af9-406c-adc5-993f2020ee5b_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_73bf56a4-9aeb-4ad9-af8d-35e232c32926_verboseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_e15319af-6e2c-409e-ada3-fc21033cae68_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled receivables</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled Receivables, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesCurrent" xlink:to="lab_us-gaap_UnbilledReceivablesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentNumberOfTranches_b54ef57c-a74f-4be3-8867-193d23823d7b_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt instrument, number of tranches</link:label>
    <link:label id="lab_cdxs_DebtInstrumentNumberOfTranches_label_en-US" xlink:label="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Number of Tranches</link:label>
    <link:label id="lab_cdxs_DebtInstrumentNumberOfTranches_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Number of Tranches</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentNumberOfTranches" xlink:href="cdxs-20231231.xsd#cdxs_DebtInstrumentNumberOfTranches"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentNumberOfTranches" xlink:to="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_b888b404-5d4f-4533-b6f7-b012a2c84908_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capital losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Capital Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsCapitalLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1_999530ca-3242-4ef6-ad77-fab54971f586_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease term</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Lease Not yet Commenced, Term of Contract</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1" xlink:to="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RepurchaseAgreementCounterpartyNameDomain_4c2d6f10-0bc0-456d-a8b3-4ca01efbfe6a_terseLabel_en-US" xlink:label="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:label id="lab_srt_RepurchaseAgreementCounterpartyNameDomain_label_en-US" xlink:label="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_27c0fe49-1d8e-4e5e-b471-0070bc14da1d_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableGross_6fb79ce0-98af-40aa-8fff-430db57ea911_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableGross_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, before Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableGross" xlink:to="lab_us-gaap_AccountsReceivableGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_0a5f288d-04c0-4177-943f-aada9db72584_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Loss Before Income Taxes, Domestic and Foreign</link:label>
    <link:label id="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockPeriod_215e96d3-ca3e-4d68-844d-4488e4a584cd_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of stock, period</link:label>
    <link:label id="lab_cdxs_SaleOfStockPeriod_label_en-US" xlink:label="lab_cdxs_SaleOfStockPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Period</link:label>
    <link:label id="lab_cdxs_SaleOfStockPeriod_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockPeriod" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockPeriod" xlink:to="lab_cdxs_SaleOfStockPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentIncomeInterest_216ef7da-6a95-4cb0-ba13-fb534513c2e7_verboseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeInterest" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest income</link:label>
    <link:label id="lab_us-gaap_InvestmentIncomeInterest_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Income, Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeInterest" xlink:to="lab_us-gaap_InvestmentIncomeInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Price or TSR Estimation Method</link:label>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_label_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Price or TSR Estimation Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:to="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_bb012a18-5d69-435a-85c7-f456804071cf_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_d5c62ac4-3a1c-4da1-9fde-ac6ddc2f2b52_terseLabel_en-US" xlink:label="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable borrowing base percentage</link:label>
    <link:label id="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_label_en-US" xlink:label="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage</link:label>
    <link:label id="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_documentation_en-US" xlink:label="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:href="cdxs-20231231.xsd#cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:to="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingCostsAndExpensesAbstract_33a87772-98d7-4398-9b6d-19cf7513f2df_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingCostsAndExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Costs and operating expenses:</link:label>
    <link:label id="lab_us-gaap_OperatingCostsAndExpensesAbstract_label_en-US" xlink:label="lab_us-gaap_OperatingCostsAndExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Costs and Expenses [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingCostsAndExpensesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingCostsAndExpensesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract" xlink:to="lab_us-gaap_OperatingCostsAndExpensesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_0040cd51-e466-4298-b4f8-90afa561bb58_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_dddcb52b-c67f-4e9c-9f0d-d15aaa540426_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assumptions Used to Estimate the Fair Value of Option Grants</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_SecurityExchangeName_94738134-d910-4af9-b12b-6585cc7a40bb_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_label_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName" xlink:to="lab_dei_SecurityExchangeName" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MilestonePaymentPerTargetGeneMember_54e69421-2a3a-4003-ac69-f4d02e7229cd_terseLabel_en-US" xlink:label="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone Payment Per Target Gene</link:label>
    <link:label id="lab_cdxs_MilestonePaymentPerTargetGeneMember_label_en-US" xlink:label="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone Payment Per Target Gene [Member]</link:label>
    <link:label id="lab_cdxs_MilestonePaymentPerTargetGeneMember_documentation_en-US" xlink:label="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone Payment Per Target Gene</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestonePaymentPerTargetGeneMember" xlink:href="cdxs-20231231.xsd#cdxs_MilestonePaymentPerTargetGeneMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MilestonePaymentPerTargetGeneMember" xlink:to="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_1d07db29-b91a-4e5c-a98a-b697aa4dc61f_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_962ed147-e9aa-4d79-86ea-f653c0a563d2_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, general and administrative</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, General and Administrative Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_3e540958-eaf5-47a7-9dfe-89ade0ccc0ad_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award vesting rights percentage</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock_9a2c5557-399e-49a2-9c19-143dea677221_terseLabel_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangements</link:label>
    <link:label id="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:to="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_33bcf327-91b1-48b0-9adb-18a046cc79fb_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock options</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember" xlink:to="lab_us-gaap_EmployeeStockOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_2b27b227-afad-4ca8-9674-d6946cfb4351_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment in Non-Marketable Equity Securities</link:label>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentPolicyTextBlock" xlink:to="lab_us-gaap_InvestmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostsAndExpenses_0eb8e31d-2159-4a6b-9df6-76c35d7cd76d_totalLabel_en-US" xlink:label="lab_us-gaap_CostsAndExpenses" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total costs and operating expenses</link:label>
    <link:label id="lab_us-gaap_CostsAndExpenses_label_en-US" xlink:label="lab_us-gaap_CostsAndExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Costs and Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostsAndExpenses" xlink:to="lab_us-gaap_CostsAndExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MaximumMember_10ba29da-01a6-4a19-afe7-46ad60473675_terseLabel_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum</link:label>
    <link:label id="lab_srt_MaximumMember_label_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember" xlink:to="lab_srt_MaximumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentType_57b0665b-4942-4f05-86ca-14a923ac8198_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_label_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType" xlink:to="lab_dei_DocumentType" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TabularListTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tabular List, Table</link:label>
    <link:label id="lab_ecd_TabularListTableTextBlock_label_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tabular List [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TabularListTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TabularListTableTextBlock" xlink:to="lab_ecd_TabularListTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EMEAMember_488bfdc8-93f5-42b8-b57b-c59a5fe41b79_terseLabel_en-US" xlink:label="lab_us-gaap_EMEAMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EMEA</link:label>
    <link:label id="lab_us-gaap_EMEAMember_label_en-US" xlink:label="lab_us-gaap_EMEAMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EMEA [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EMEAMember" xlink:to="lab_us-gaap_EMEAMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_d697f16a-b081-41f9-b9b0-bc8225e629f2_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock" xlink:to="lab_us-gaap_InventoryPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentIncomeAmortizationOfDiscount_3d9d8762-41b3-49e1-af0e-289e3743674f_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeAmortizationOfDiscount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest income from amortization of discount</link:label>
    <link:label id="lab_us-gaap_InvestmentIncomeAmortizationOfDiscount_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeAmortizationOfDiscount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Income, Amortization of Discount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeAmortizationOfDiscount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeAmortizationOfDiscount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeAmortizationOfDiscount" xlink:to="lab_us-gaap_InvestmentIncomeAmortizationOfDiscount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_772261f7-4a4d-4fda-871e-a7eb832c2e41_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_ed2674f8-cdab-4eaf-9f14-cf0f4d6b327c_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based Compensation</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_0266cc23-c699-4825-beaa-b85bd5aaf3f4_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments in Non-Marketable Securities</link:label>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:to="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_a935ff50-106f-444f-a38a-28ebe4164987_verboseLabel_en-US" xlink:label="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basis of Presentation and Principles of Consolidation</link:label>
    <link:label id="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basis of Accounting, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_cce42507-3036-47d8-a8a2-d75af899fe5f_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Concentration Risk</link:label>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashNoncurrent_203aeb61-8923-4a7a-af85-88565780d3e9_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted cash</link:label>
    <link:label id="lab_us-gaap_RestrictedCashNoncurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashNoncurrent" xlink:to="lab_us-gaap_RestrictedCashNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022InducementPlanMember_2aa362cf-1ad4-4b27-a7e8-c6c40ef781ab_terseLabel_en-US" xlink:label="lab_cdxs_A2022InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 Inducement Plan</link:label>
    <link:label id="lab_cdxs_A2022InducementPlanMember_label_en-US" xlink:label="lab_cdxs_A2022InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 Inducement Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2022InducementPlanMember_documentation_en-US" xlink:label="lab_cdxs_A2022InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 Inducement Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022InducementPlanMember" xlink:href="cdxs-20231231.xsd#cdxs_A2022InducementPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022InducementPlanMember" xlink:to="lab_cdxs_A2022InducementPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VariableRateAxis_b0350b66-6940-41d7-8e2d-7c32baa9a80a_terseLabel_en-US" xlink:label="lab_us-gaap_VariableRateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Rate [Axis]</link:label>
    <link:label id="lab_us-gaap_VariableRateAxis_label_en-US" xlink:label="lab_us-gaap_VariableRateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Rate [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VariableRateAxis" xlink:to="lab_us-gaap_VariableRateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashMember_fa21e0af-3ec6-4466-82f0-4eadfd349e77_terseLabel_en-US" xlink:label="lab_us-gaap_CashMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash</link:label>
    <link:label id="lab_us-gaap_CashMember_label_en-US" xlink:label="lab_us-gaap_CashMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashMember" xlink:to="lab_us-gaap_CashMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_ea510871-84e1-4916-9efe-a50a262d5f66_terseLabel_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Owned Not Readily Marketable, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_label_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Owned Not Readily Marketable, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:to="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CollaborativeArrangementConcentrationRiskMember_20ec4a94-2115-4156-a26e-831f0c99d4a2_terseLabel_en-US" xlink:label="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement Concentration Risk</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementConcentrationRiskMember_label_en-US" xlink:label="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement Concentration Risk [Member]</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementConcentrationRiskMember_documentation_en-US" xlink:label="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement Concentration Risk</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:to="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_Security12bTitle_469d3b90-c530-4a55-9e84-d7da4841ba3a_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_label_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle" xlink:to="lab_dei_Security12bTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_f484629c-7f4a-4ec9-8d68-39319474e60a_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:to="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_86d73ba1-97eb-4877-8ac3-d3e007640265_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_label_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyNatureDomain" xlink:to="lab_us-gaap_LossContingencyNatureDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyDomain_798275bc-f405-42b5-93ec-8c41e123d131_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party [Domain]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyDomain_label_en-US" xlink:label="lab_us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party, Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyDomain" xlink:to="lab_us-gaap_RelatedPartyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined</link:label>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_label_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:to="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_f2b02a24-d631-4e97-b0f9-18b8184286dd_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-vested, beginning of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_c64146ee-4752-4fd5-a134-19f201e4c4ec_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-vested, end of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_516ac491-e6d7-440d-aa62-26605a99aa69_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Less: allowances</link:label>
    <link:label id="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_92f49c2c-ed1d-4375-a6c4-680f138680dd_periodStartLabel_en-US" xlink:label="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at beginning of period</link:label>
    <link:label id="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_3bdfa6cb-f555-4e00-a1ee-4fbd21ae0b80_periodEndLabel_en-US" xlink:label="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at end of period</link:label>
    <link:label id="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_label_en-US" xlink:label="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:to="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_b93cc904-6bc7-4a1a-9602-9f61c19587d2_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_abd72d30-824a-485c-9025-dcc01ba16eed_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercisable and Expected to Vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PerformanceBasedOptionsPBOsMember_2d9d5375-77ff-45d4-8856-f6297c1df895_terseLabel_en-US" xlink:label="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PBOs</link:label>
    <link:label id="lab_cdxs_PerformanceBasedOptionsPBOsMember_label_en-US" xlink:label="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Based Options (PBOs) [Member]</link:label>
    <link:label id="lab_cdxs_PerformanceBasedOptionsPBOsMember_documentation_en-US" xlink:label="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Based Options (PBOs)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PerformanceBasedOptionsPBOsMember" xlink:to="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_cfdc3944-d8ef-42b9-9259-1c2ef355b0f5_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_2a909fa3-188a-4579-80ab-a82df81baeb5_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber" xlink:to="lab_dei_EntityTaxIdentificationNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseCost_a81759a1-c9e1-4ab0-8dc4-c54776a5fea9_totalLabel_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total lease cost</link:label>
    <link:label id="lab_us-gaap_LeaseCost_label_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCost" xlink:to="lab_us-gaap_LeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtConversionConvertedInstrumentSharesIssued1_f1ca0111-b89c-488b-aeb9-ec56ee41eba0_terseLabel_en-US" xlink:label="lab_us-gaap_DebtConversionConvertedInstrumentSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-marketable debt security (in shares)</link:label>
    <link:label id="lab_us-gaap_DebtConversionConvertedInstrumentSharesIssued1_label_en-US" xlink:label="lab_us-gaap_DebtConversionConvertedInstrumentSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Conversion, Converted Instrument, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtConversionConvertedInstrumentSharesIssued1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtConversionConvertedInstrumentSharesIssued1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtConversionConvertedInstrumentSharesIssued1" xlink:to="lab_us-gaap_DebtConversionConvertedInstrumentSharesIssued1" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeAxis_a04197bf-4ce3-4be7-8e9c-823e1ca49d3e_terseLabel_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Range [Axis]</link:label>
    <link:label id="lab_srt_RangeAxis_label_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis" xlink:to="lab_srt_RangeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_8d4db45e-ebea-45ee-8217-e973d9c64f57_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_label_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityInteractiveDataCurrent" xlink:to="lab_dei_EntityInteractiveDataCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ReceivableFromCollaborativeArrangement_7ae623d4-deeb-4914-9574-6b476ef8dbc0_terseLabel_en-US" xlink:label="lab_cdxs_ReceivableFromCollaborativeArrangement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone payment amount</link:label>
    <link:label id="lab_cdxs_ReceivableFromCollaborativeArrangement_label_en-US" xlink:label="lab_cdxs_ReceivableFromCollaborativeArrangement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable From Collaborative Arrangement</link:label>
    <link:label id="lab_cdxs_ReceivableFromCollaborativeArrangement_documentation_en-US" xlink:label="lab_cdxs_ReceivableFromCollaborativeArrangement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable From Collaborative Arrangement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ReceivableFromCollaborativeArrangement" xlink:href="cdxs-20231231.xsd#cdxs_ReceivableFromCollaborativeArrangement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ReceivableFromCollaborativeArrangement" xlink:to="lab_cdxs_ReceivableFromCollaborativeArrangement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_a19cef6a-b263-47b7-925d-1c67d728cd37_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetRetirementObligation_6c902c6b-7b97-44c4-acc1-4d076c451d87_terseLabel_en-US" xlink:label="lab_us-gaap_AssetRetirementObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset retirement obligation</link:label>
    <link:label id="lab_us-gaap_AssetRetirementObligation_label_en-US" xlink:label="lab_us-gaap_AssetRetirementObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Retirement Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetRetirementObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetRetirementObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetRetirementObligation" xlink:to="lab_us-gaap_AssetRetirementObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCommitmentDueInSecondYear_94585e8b-2a89-4da4-8cf7-feff4b710c5d_terseLabel_en-US" xlink:label="lab_us-gaap_OtherCommitmentDueInSecondYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2025 and Thereafter</link:label>
    <link:label id="lab_us-gaap_OtherCommitmentDueInSecondYear_label_en-US" xlink:label="lab_us-gaap_OtherCommitmentDueInSecondYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitment, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInSecondYear" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInSecondYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCommitmentDueInSecondYear" xlink:to="lab_us-gaap_OtherCommitmentDueInSecondYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductMember_3bd4bcb5-588e-4746-a2ed-8312e3a0b320_verboseLabel_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product revenue ($0, $514 and $0 from a related party)</link:label>
    <link:label id="lab_us-gaap_ProductMember_0c77b279-5b54-42b8-82b9-ce4d3be589a0_terseLabel_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product revenue</link:label>
    <link:label id="lab_us-gaap_ProductMember_label_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductMember" xlink:to="lab_us-gaap_ProductMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_78e5bec1-b1fd-4247-aea3-779383d717aa_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_e171ef61-c4c7-46e3-a5d0-5f7150821463_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureAxis_terseLabel_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measure:</link:label>
    <link:label id="lab_ecd_MeasureAxis_label_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measure [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureAxis" xlink:to="lab_ecd_MeasureAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_6c8ff9dd-1c77-4944-8380-9ab449679d5a_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryIndName" xlink:to="lab_ecd_OutstandingRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_21c9aaef-f663-4f9a-9a4d-f210a124e157_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_0f283bcd-c2b7-4218-bea7-13d2b4018626_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode" xlink:to="lab_dei_EntityIncorporationStateCountryCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_74e227d2-7507-4c93-adae-fdca8aa63e3e_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SecurityDeposit_a4826ad9-f5fd-43c9-a3c7-1ff98a2c7d80_terseLabel_en-US" xlink:label="lab_us-gaap_SecurityDeposit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security deposit</link:label>
    <link:label id="lab_us-gaap_SecurityDeposit_label_en-US" xlink:label="lab_us-gaap_SecurityDeposit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Deposit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityDeposit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityDeposit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SecurityDeposit" xlink:to="lab_us-gaap_SecurityDeposit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingExpense_176b2b61-a120-4f53-be81-aec94f52bd2a_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising expense</link:label>
    <link:label id="lab_us-gaap_AdvertisingExpense_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense" xlink:to="lab_us-gaap_AdvertisingExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_61ad7add-514e-426d-bbdb-3d619442b9f8_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Significant Components of Deferred Tax Assets and Liabilities</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_CounterpartyNameAxis_d5c70923-0d56-4c2f-8728-0d165a15c037_terseLabel_en-US" xlink:label="lab_srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:label id="lab_srt_CounterpartyNameAxis_label_en-US" xlink:label="lab_srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CounterpartyNameAxis" xlink:to="lab_srt_CounterpartyNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_673cdfbb-29e5-4103-b41f-8c22ed8a8f95_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_9825490d-dcd8-46f3-b80d-76f8058ad96b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Related Party Transactions, by Related Party [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Related Party Transactions, by Related Party [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="lab_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeasePayments_38e02dec-7927-4406-a623-aa365f22c833_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease payments</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_6dd56efa-3db5-4227-8ffd-50c7f87e76b4_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating cash flows from operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_label_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasePayments" xlink:to="lab_us-gaap_OperatingLeasePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_4b211ac7-9b64-4eed-a81c-cd8d044c6d77_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding" xlink:to="lab_us-gaap_CommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IndemnificationGuaranteeMember_202ba306-b74b-4e55-8eae-2441bbef400d_terseLabel_en-US" xlink:label="lab_us-gaap_IndemnificationGuaranteeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indemnification agreement</link:label>
    <link:label id="lab_us-gaap_IndemnificationGuaranteeMember_label_en-US" xlink:label="lab_us-gaap_IndemnificationGuaranteeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indemnification Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndemnificationGuaranteeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndemnificationGuaranteeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IndemnificationGuaranteeMember" xlink:to="lab_us-gaap_IndemnificationGuaranteeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MasterCollaborationResearchAgreementMember_c929a209-0b9b-47ac-8c75-f6acc148def5_terseLabel_en-US" xlink:label="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Master Collaboration &amp; Research Agreement</link:label>
    <link:label id="lab_cdxs_MasterCollaborationResearchAgreementMember_label_en-US" xlink:label="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Master Collaboration &amp; Research Agreement [Member]</link:label>
    <link:label id="lab_cdxs_MasterCollaborationResearchAgreementMember_documentation_en-US" xlink:label="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Master Collaboration &amp; Research Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MasterCollaborationResearchAgreementMember" xlink:to="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_e86800ec-bb57-4d98-9be5-ab2bf05ae98c_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, impairment loss</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_41bb4b8a-497f-41ad-a223-de0aeb5932e3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:to="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoMember_terseLabel_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO</link:label>
    <link:label id="lab_ecd_PeoMember_label_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoMember" xlink:to="lab_ecd_PeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskCreditRisk_72deffd3-8544-4b84-8980-b271e4973784_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentrations of Credit Risk</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskCreditRisk_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk, Credit Risk, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskCreditRisk" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskCreditRisk"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskCreditRisk" xlink:to="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorLocation_728ce07a-0cdc-410e-9dee-5c517d1a4be3_terseLabel_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Location</link:label>
    <link:label id="lab_dei_AuditorLocation_label_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Location</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorLocation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorLocation" xlink:to="lab_dei_AuditorLocation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_02101fd8-f08b-47df-b43f-be2486e7aa97_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">401(k) Plan</link:label>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Benefits [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:to="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_d4c920d8-d515-4bf5-8e8a-d530ed00b392_terseLabel_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity securities without readily determinable fair value, upward (downward) price adjustment, annual amount</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_label_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_documentation_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:to="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement_142428d4-9111-4fef-bf9a-bd3c09213bc8_terseLabel_en-US" xlink:label="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other non-cash items</link:label>
    <link:label id="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement_label_en-US" xlink:label="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Operating Activities, Cash Flow Statement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:to="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharesOutstanding_af4c5c41-2fa2-4536-a9a4-e474b9f35822_periodStartLabel_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at beginning of period (in shares)</link:label>
    <link:label id="lab_us-gaap_SharesOutstanding_38a7ce67-5356-4423-989e-8a264c59df71_periodEndLabel_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at end of period (in shares)</link:label>
    <link:label id="lab_us-gaap_SharesOutstanding_label_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharesOutstanding" xlink:to="lab_us-gaap_SharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PerformanceShareUnitsPSUsMember_2d68ef6f-2ba4-4034-9946-0aed147fe588_terseLabel_en-US" xlink:label="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Share Units (PSUs)</link:label>
    <link:label id="lab_cdxs_PerformanceShareUnitsPSUsMember_label_en-US" xlink:label="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Share Units (PSUs) [Member]</link:label>
    <link:label id="lab_cdxs_PerformanceShareUnitsPSUsMember_documentation_en-US" xlink:label="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Share Units (PSUs)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PerformanceShareUnitsPSUsMember" xlink:to="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_61d9977d-b515-4521-91dc-40eff57ceca1_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:to="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_c9d5bf46-d718-41a6-9f91-b6f09c59dec5_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_a84d1495-b6b3-4e34-8ffd-1e710fa860e7_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentAxis_a179de3c-5dca-4e9e-9dec-5457def78e5c_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentAxis_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentAxis" xlink:to="lab_us-gaap_DebtInstrumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingAggtErrCompAmt" xlink:to="lab_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_4a8adaaf-bacb-41cf-b0f6-6e75d473b9cb_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_28cebcc3-fd39-4983-9ecd-482635582aa8_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Carrying Value of Non-marketable Equity Securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CreditFacilityAxis_f0c19772-a688-4ac1-a8ac-16b045d9316b_terseLabel_en-US" xlink:label="lab_us-gaap_CreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:label id="lab_us-gaap_CreditFacilityAxis_label_en-US" xlink:label="lab_us-gaap_CreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CreditFacilityAxis" xlink:to="lab_us-gaap_CreditFacilityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SeriesBPreferredStockMember_6d14abf9-684d-462d-ba18-c730f1efb45b_terseLabel_en-US" xlink:label="lab_us-gaap_SeriesBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series B Preferred Stock</link:label>
    <link:label id="lab_us-gaap_SeriesBPreferredStockMember_label_en-US" xlink:label="lab_us-gaap_SeriesBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series B Preferred Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SeriesBPreferredStockMember" xlink:to="lab_us-gaap_SeriesBPreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Liabilities_b0c2cdd3-bd2b-40c6-b749-113abfee9304_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total liabilities</link:label>
    <link:label id="lab_us-gaap_Liabilities_label_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities" xlink:to="lab_us-gaap_Liabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_8477d3b2-340a-4fea-95cc-32bd7b17b11f_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross proceeds from public offering</link:label>
    <link:label id="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_label_en-US" xlink:label="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of Stock, Consideration Received on Transaction, Gross</link:label>
    <link:label id="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of Stock, Consideration Received on Transaction, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockConsiderationReceivedOnTransactionGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:to="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_030a3224-fa81-4fb4-ab75-dd3140575284_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total current provision</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermLoansSecondTrancheMember_4a321e17-92af-4097-ace5-e5de8ecffe5b_terseLabel_en-US" xlink:label="lab_cdxs_TermLoansSecondTrancheMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans - Second Tranche</link:label>
    <link:label id="lab_cdxs_TermLoansSecondTrancheMember_label_en-US" xlink:label="lab_cdxs_TermLoansSecondTrancheMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans - Second Tranche [Member]</link:label>
    <link:label id="lab_cdxs_TermLoansSecondTrancheMember_documentation_en-US" xlink:label="lab_cdxs_TermLoansSecondTrancheMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans - Second Tranche</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansSecondTrancheMember" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansSecondTrancheMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermLoansSecondTrancheMember" xlink:to="lab_cdxs_TermLoansSecondTrancheMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_fb3115b6-f423-4b01-bde1-63807d4abc38_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Volatility</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract_fd900f4b-7bb0-45ef-9350-c2d3eb12bfa0_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet [Abstract]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Related Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_65cfb78a-186d-405a-ba09-12edbc98c73d_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares reserved for future issuance (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_label_en-US" xlink:label="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Capital Shares Reserved for Future Issuance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFee_248c762b-b739-41ad-b260-69bbf698ad59_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with customer, liability, retainer fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFee_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFee_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFee"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_349baa71-9e4c-4f78-947a-f1fe857ecc3f_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial assets:</link:label>
    <link:label id="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_label_en-US" xlink:label="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, before Allowance for Credit Loss [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:to="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:to="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_82455bea-6e51-45fe-b776-c22cb60284c7_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">R&amp;D Capitalization</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, in Process Research and Development</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:to="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionDomain_cf919be4-ff80-45d3-a0e1-85fa2d89e96c_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction [Domain]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionDomain_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain" xlink:to="lab_us-gaap_RelatedPartyTransactionDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_72f6a13d-f946-4eb1-b9b4-cf4a64caa050_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_03866dc9-bf7e-4340-83f2-ab3bc4b0db05_terseLabel_en-US" xlink:label="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue recognized from transactions</link:label>
    <link:label id="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_label_en-US" xlink:label="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonmonetary Transaction, Gross Operating Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:to="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_ebe4d73f-7a3b-4c81-ad78-fabdf153f8e5_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_label_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventLineItems" xlink:to="lab_us-gaap_SubsequentEventLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_country_CH_c9d09c6f-5fab-4ae3-bf43-94f63fd0e1df_terseLabel_en-US" xlink:label="lab_country_CH" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SWITZERLAND</link:label>
    <link:label id="lab_country_CH_label_en-US" xlink:label="lab_country_CH" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SWITZERLAND</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_CH" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CH"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_CH" xlink:to="lab_country_CH" xlink:type="arc" order="1"/>
    <link:label id="lab_country_CN_7b70bafc-c43f-4725-85f1-c057c00fca3b_terseLabel_en-US" xlink:label="lab_country_CN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">CHINA</link:label>
    <link:label id="lab_country_CN_label_en-US" xlink:label="lab_country_CN" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">CHINA</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_CN" xlink:to="lab_country_CN" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis_466cb908-75aa-4cc4-bf2c-c83ab0436954_terseLabel_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Owned Not Readily Marketable [Axis]</link:label>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis_label_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Owned Not Readily Marketable [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:to="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent_1f3bbd5b-32e0-4c01-8a73-2fd37cdc7840_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accruals for expenses related to indemnification issues</link:label>
    <link:label id="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent_label_en-US" xlink:label="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingency, Accrual, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:to="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_24c9eb4a-85ec-443e-9288-3c0134921d00_negatedLabel_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued compensation and other accrued liabilities</link:label>
    <link:label id="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_label_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities</link:label>
    <link:label id="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_documentation_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:href="cdxs-20231231.xsd#cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:to="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2019PlanMember_d7f43cc5-2288-4806-b260-1fe65a3faf1f_terseLabel_en-US" xlink:label="lab_cdxs_A2019PlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2019 Plan</link:label>
    <link:label id="lab_cdxs_A2019PlanMember_label_en-US" xlink:label="lab_cdxs_A2019PlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2019 Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2019PlanMember_documentation_en-US" xlink:label="lab_cdxs_A2019PlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2019 Plan [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019PlanMember" xlink:href="cdxs-20231231.xsd#cdxs_A2019PlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2019PlanMember" xlink:to="lab_cdxs_A2019PlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Table</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_cec806fd-a84e-47a0-b202-9519247aa37f_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current State and Local Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock_ff0e762b-79ae-40b2-989a-fca85e6cbb10_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting</link:label>
    <link:label id="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:to="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrent_6e2e6a91-fde8-4413-8c45-cdbb3b6b27cb_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total current assets</link:label>
    <link:label id="lab_us-gaap_AssetsCurrent_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent" xlink:to="lab_us-gaap_AssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_720b70d6-e995-424a-8b75-949f432b779b_terseLabel_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset impairment charges</link:label>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_label_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Impairment Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetImpairmentCharges" xlink:to="lab_us-gaap_AssetImpairmentCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_673fb347-2251-48ca-bab8-a256fbf9d7ef_terseLabel_en-US" xlink:label="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Customers That Contributed 10% or More of Total Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_label_en-US" xlink:label="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedules of Concentration of Risk, by Risk Factor [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SupplementalCashFlowInformationAbstract_750b7a84-3ddd-491a-833b-ac3f3d0b0297_terseLabel_en-US" xlink:label="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supplemental disclosure of cash flow information:</link:label>
    <link:label id="lab_us-gaap_SupplementalCashFlowInformationAbstract_label_en-US" xlink:label="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supplemental Cash Flow Information [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalCashFlowInformationAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PurchaseObligation_061cdb9a-a943-4dd0-9877-857f0ba31e0c_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued purchases</link:label>
    <link:label id="lab_us-gaap_PurchaseObligation_label_en-US" xlink:label="lab_us-gaap_PurchaseObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PurchaseObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PurchaseObligation" xlink:to="lab_us-gaap_PurchaseObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_d4f85675-9d2f-4ac9-bea4-9328e9e3004f_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:to="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_47e0e995-6ca7-4abb-a302-6489e1cef517_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration risk, percentage</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_ca9f21f7-3868-44d2-a0dd-45f3de73e1db_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration risk, percentage</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_c542fd60-d6b7-4588-a5e0-58319a71166f_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current provision:</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_626d7bd6-0108-4add-aa67-6e30b50f0e29_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_country_IE_f5aae9d6-fce3-4432-9950-d5a3a4f12485_terseLabel_en-US" xlink:label="lab_country_IE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">IRELAND</link:label>
    <link:label id="lab_country_IE_label_en-US" xlink:label="lab_country_IE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">IRELAND</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_IE" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_IE"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_IE" xlink:to="lab_country_IE" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_801d33af-a73b-440b-8b82-8881d24535ec_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net cash provided by (used in) operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_f1b73a48-472a-418b-a1dd-9b2caa16b476_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate intrinsic value, exercisable options</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_5940786d-7ace-4d43-9685-5543097ba38b_terseLabel_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_label_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementClassOfStockAxis" xlink:to="lab_us-gaap_StatementClassOfStockAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_country_IN_882323b9-0414-4895-89e0-494b58e0d6b6_terseLabel_en-US" xlink:label="lab_country_IN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">India</link:label>
    <link:label id="lab_country_IN_label_en-US" xlink:label="lab_country_IN" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">INDIA</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_IN" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_IN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_IN" xlink:to="lab_country_IN" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompRecoveryTable_terseLabel_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneously Awarded Compensation Recovery</link:label>
    <link:label id="lab_ecd_ErrCompRecoveryTable_label_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneously Awarded Compensation Recovery [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompRecoveryTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="lab_ecd_ErrCompRecoveryTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_ab313682-d8d8-4519-9a93-11ca93410166_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of days for payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Milestone Revenue, Number Of Days For Payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Milestone Revenue, Number Of Days For Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:to="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SupplyAgreementMember_442ea23e-7138-4982-89ed-9fdea70766d2_terseLabel_en-US" xlink:label="lab_cdxs_SupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supply Agreement</link:label>
    <link:label id="lab_cdxs_SupplyAgreementMember_label_en-US" xlink:label="lab_cdxs_SupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supply Agreement [Member]</link:label>
    <link:label id="lab_cdxs_SupplyAgreementMember_documentation_en-US" xlink:label="lab_cdxs_SupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supply Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_SupplyAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SupplyAgreementMember" xlink:to="lab_cdxs_SupplyAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_b3cd5d57-f685-42d3-8b82-832bad3edfe4_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:to="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing, How MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing, How MNPI Considered [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:to="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_c41172d1-6dee-4813-9856-461eb315906d_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of stock, securities registered aggregate amount</link:label>
    <link:label id="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_label_en-US" xlink:label="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Securities Registered Aggregate Amount</link:label>
    <link:label id="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Securities Registered Aggregate Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:to="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncurrentAssets_f58aa52c-6130-4015-bb44-0bc1a341d9c6_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-lived assets</link:label>
    <link:label id="lab_us-gaap_NoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Lived Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncurrentAssets" xlink:to="lab_us-gaap_NoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_05be37a1-e6ed-439b-87c8-091a2059d798_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_ff730881-5b48-486c-aebc-bb5dbc1ef101_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillImpairmentLoss" xlink:to="lab_us-gaap_GoodwillImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_46fa9d82-f8bd-44c4-85c2-a2038704adcf_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_95691dc5-56cd-4844-91f0-2a3d1d13f5fe_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_a713e466-6fdd-4186-a269-73733ea97b69_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance obligations satisfied</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInFinanceReceivables_b7223ab2-c006-4c6d-81e4-5360147b6c51_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInFinanceReceivables_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Finance Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInFinanceReceivables"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:to="lab_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalents_2de8767c-f040-49ea-99e7-7b4388ee4ac6_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted cash, current and non-current</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalents_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalents" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2021PBOMember_635f9271-0b3a-42f4-91a0-74adf2edda98_terseLabel_en-US" xlink:label="lab_cdxs_A2021PBOMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PBO</link:label>
    <link:label id="lab_cdxs_A2021PBOMember_label_en-US" xlink:label="lab_cdxs_A2021PBOMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PBO [Member]</link:label>
    <link:label id="lab_cdxs_A2021PBOMember_documentation_en-US" xlink:label="lab_cdxs_A2021PBOMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PBO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PBOMember" xlink:href="cdxs-20231231.xsd#cdxs_A2021PBOMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2021PBOMember" xlink:to="lab_cdxs_A2021PBOMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_33cd5a45-013c-4ef2-876d-7697e7c4db38_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_f99f3761-fa10-4d7a-9a89-5e932d51d2a3_verboseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment in non-marketable equity securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockValueOfSharesForIssuance_886ef96d-f440-4429-a0d8-1d84b8f947b0_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of stock, value of shares for issuance</link:label>
    <link:label id="lab_cdxs_SaleOfStockValueOfSharesForIssuance_label_en-US" xlink:label="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Value Of Shares For Issuance</link:label>
    <link:label id="lab_cdxs_SaleOfStockValueOfSharesForIssuance_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Value Of Shares For Issuance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockValueOfSharesForIssuance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:to="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_5f15d3bc-21f5-4cc7-8a2f-956e628f18cd_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_67aa70ea-af8a-4b19-9968-60eacd170293_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesIssued" xlink:to="lab_us-gaap_PreferredStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NonStatutoryStockOptionsMember_ff20137f-fc48-4685-b7d4-2e8fe6a3dcbe_terseLabel_en-US" xlink:label="lab_cdxs_NonStatutoryStockOptionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Statutory Stock Options</link:label>
    <link:label id="lab_cdxs_NonStatutoryStockOptionsMember_label_en-US" xlink:label="lab_cdxs_NonStatutoryStockOptionsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Statutory Stock Options [Member]</link:label>
    <link:label id="lab_cdxs_NonStatutoryStockOptionsMember_documentation_en-US" xlink:label="lab_cdxs_NonStatutoryStockOptionsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Statutory Stock Options [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NonStatutoryStockOptionsMember" xlink:href="cdxs-20231231.xsd#cdxs_NonStatutoryStockOptionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NonStatutoryStockOptionsMember" xlink:to="lab_cdxs_NonStatutoryStockOptionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAggregatedInvestmentsMember_6970f15c-0ab4-4ae1-bb56-f2e6ce1bc714_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAggregatedInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other investments in non-marketable equity securities</link:label>
    <link:label id="lab_us-gaap_OtherAggregatedInvestmentsMember_label_en-US" xlink:label="lab_us-gaap_OtherAggregatedInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Security Investments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAggregatedInvestmentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAggregatedInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAggregatedInvestmentsMember" xlink:to="lab_us-gaap_OtherAggregatedInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_fb1b83db-f6be-437c-bc30-a801b0244ecf_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany" xlink:to="lab_dei_EntityEmergingGrowthCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_c778f685-8af6-46dc-a36f-57362db30ecc_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue recognized, including opening balance</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized, Including Opening Balance</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized, Including Opening Balance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryFinishedGoods_8e393e8c-f022-4213-a23d-5993eb50c681_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoods" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finished goods</link:label>
    <link:label id="lab_us-gaap_InventoryFinishedGoods_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoods" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Finished Goods, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoods" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoods" xlink:to="lab_us-gaap_InventoryFinishedGoods" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGross_12198be5-64b8-4fd9-99ff-05ae14ffa819_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGross_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGross" xlink:to="lab_us-gaap_DeferredTaxAssetsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_e826e69a-085b-4bdd-ae5a-9ffc0820de19_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2024</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure, Table</link:label>
    <link:label id="lab_ecd_PvpTableTextBlock_label_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTableTextBlock" xlink:to="lab_ecd_PvpTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_027048dc-d23f-4f5f-a413-dbe6ea05f9f1_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Threshold level multiplier</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_bc31a3b0-1afe-413b-99a0-4b7f226225b7_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndTitle_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Title</link:label>
    <link:label id="lab_ecd_TrdArrIndTitle_label_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement, Individual Title</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndTitle" xlink:to="lab_ecd_TrdArrIndTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockMember_58dc0f95-e978-4005-9327-36d47f8c8f01_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock</link:label>
    <link:label id="lab_us-gaap_CommonStockMember_label_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember" xlink:to="lab_us-gaap_CommonStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_IndividualAxis_terseLabel_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Individual:</link:label>
    <link:label id="lab_ecd_IndividualAxis_label_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Individual [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_IndividualAxis" xlink:to="lab_ecd_IndividualAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressPostalZipCode_f727d1b4-8931-4739-9ecb-c1ad107afac7_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode" xlink:to="lab_dei_EntityAddressPostalZipCode" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_79fe14c5-3e82-4ba9-b2f9-17c904720e53_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of stock, commissions and reimbursements, percentage of gross sales price</link:label>
    <link:label id="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_label_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price</link:label>
    <link:label id="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" xlink:to="lab_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_0a9cb349-ceb9-483a-8406-35b279b02255_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain" xlink:to="lab_us-gaap_IncomeStatementLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RoyaltyMember_8e553db4-8b85-4db6-8398-bb5c8db0173b_terseLabel_en-US" xlink:label="lab_us-gaap_RoyaltyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue sharing arrangement</link:label>
    <link:label id="lab_us-gaap_RoyaltyMember_label_en-US" xlink:label="lab_us-gaap_RoyaltyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Royalty [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RoyaltyMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RoyaltyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RoyaltyMember" xlink:to="lab_us-gaap_RoyaltyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_fee6b74c-ca3d-4b6d-8d53-60c04812330e_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest and penalties recognize in income tax expense</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MinimumMember_2de29d9f-b5e7-47c9-99f6-8de6f136a0fc_terseLabel_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum</link:label>
    <link:label id="lab_srt_MinimumMember_label_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember" xlink:to="lab_srt_MinimumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_afb56ca9-a73b-4f7f-8c95-b1f776491b2f_verboseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_8f3eec63-7c19-468f-8745-d04f95be08e0_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseInterestAccretion_831f5bee-a7f1-4515-a435-e32b3115e739_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseInterestAccretion" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest accretion</link:label>
    <link:label id="lab_cdxs_OperatingLeaseInterestAccretion_label_en-US" xlink:label="lab_cdxs_OperatingLeaseInterestAccretion" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Interest Accretion</link:label>
    <link:label id="lab_cdxs_OperatingLeaseInterestAccretion_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseInterestAccretion" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Interest Accretion</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseInterestAccretion" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseInterestAccretion"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseInterestAccretion" xlink:to="lab_cdxs_OperatingLeaseInterestAccretion" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A200220PenobscotMember_61d34891-6aa7-48d2-9f8a-9b70bc10ce81_terseLabel_en-US" xlink:label="lab_cdxs_A200220PenobscotMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">200-220 Penobscot</link:label>
    <link:label id="lab_cdxs_A200220PenobscotMember_label_en-US" xlink:label="lab_cdxs_A200220PenobscotMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">200-220 Penobscot [Member]</link:label>
    <link:label id="lab_cdxs_A200220PenobscotMember_documentation_en-US" xlink:label="lab_cdxs_A200220PenobscotMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">200-220 Penobscot</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A200220PenobscotMember" xlink:href="cdxs-20231231.xsd#cdxs_A200220PenobscotMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A200220PenobscotMember" xlink:to="lab_cdxs_A200220PenobscotMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AreaOfRealEstateProperty_a5244a46-4ed3-4d45-a89e-8a0b4ccb1eed_terseLabel_en-US" xlink:label="lab_us-gaap_AreaOfRealEstateProperty" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Area of real estate property (in square feet)</link:label>
    <link:label id="lab_us-gaap_AreaOfRealEstateProperty_label_en-US" xlink:label="lab_us-gaap_AreaOfRealEstateProperty" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Area of Real Estate Property</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AreaOfRealEstateProperty" xlink:to="lab_us-gaap_AreaOfRealEstateProperty" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_9057e1fb-42b6-42a4-aefb-16d77e62f1c1_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsAbstract_73414cdc-493a-45ea-beed-6c81d85f4f83_verboseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets</link:label>
    <link:label id="lab_us-gaap_AssetsAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="lab_us-gaap_AssetsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Disclosure</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:to="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NestecLtd.NestleHealthSciencesMember_3a9c97b2-c278-4592-872c-4bef3ffd0470_terseLabel_en-US" xlink:label="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nestec Ltd. (Nestle Health Sciences)</link:label>
    <link:label id="lab_cdxs_NestecLtd.NestleHealthSciencesMember_label_en-US" xlink:label="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nestec Ltd. (Nestle Health Sciences) [Member]</link:label>
    <link:label id="lab_cdxs_NestecLtd.NestleHealthSciencesMember_documentation_en-US" xlink:label="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nestec Ltd. (Nestle Health Sciences) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:href="cdxs-20231231.xsd#cdxs_NestecLtd.NestleHealthSciencesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:to="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_1aa85f8a-1326-47fa-af8d-e9aa5a857abf_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated performance goal achievement rate</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_8461effb-2a3e-4d2c-acc0-d76c44130a57_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taxes paid related to net share settlement of equity awards</link:label>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOther_e4432b87-8f2b-493c-a298-50736792235a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOther_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOther" xlink:to="lab_us-gaap_DeferredTaxAssetsOther" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AssetRetirementObligationWriteoff_24f86b05-17a5-4fcc-b67d-0b77b9f144a2_terseLabel_en-US" xlink:label="lab_cdxs_AssetRetirementObligationWriteoff" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset retirement obligation, writeoff</link:label>
    <link:label id="lab_cdxs_AssetRetirementObligationWriteoff_label_en-US" xlink:label="lab_cdxs_AssetRetirementObligationWriteoff" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Retirement Obligation, Writeoff</link:label>
    <link:label id="lab_cdxs_AssetRetirementObligationWriteoff_documentation_en-US" xlink:label="lab_cdxs_AssetRetirementObligationWriteoff" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Retirement Obligation, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetRetirementObligationWriteoff" xlink:href="cdxs-20231231.xsd#cdxs_AssetRetirementObligationWriteoff"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AssetRetirementObligationWriteoff" xlink:to="lab_cdxs_AssetRetirementObligationWriteoff" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_7cb56872-a652-48e5-9224-1ed8e30f46b4_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net cash provided by (used in) financing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_276670f5-e106-4eab-931f-00f971c5edf7_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equipment retired during period</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Disposals</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_0cd52b9d-37a6-43bd-8ac0-448f655662d0_verboseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetGrossCurrent_e53427b8-1842-4173-a961-dd12dde88641_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract assets</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetGrossCurrent_346be754-78a1-4df8-bae3-809db14c2368_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract assets</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetGrossCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Asset, before Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:to="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsMember_6cf99ede-2d49-49f5-834e-24e6cbac4e4f_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Deficit</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsMember_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember" xlink:to="lab_us-gaap_RetainedEarningsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote</link:label>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:to="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_25278519-00ed-49f8-b93f-972c531f231b_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net loss per share, basic (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic" xlink:to="lab_us-gaap_EarningsPerShareBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_7d3bba5a-68e0-49a2-98dd-fb416198a864_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized compensation cost, options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_9cd23e26-98de-49fa-9b96-b8cfc45b3f50_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_a9696948-1db9-45fe-b7ad-56953603113c_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract" xlink:to="lab_us-gaap_AccountingPoliciesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_0dc0e9be-14f7-419e-9898-7b1c9052f69d_terseLabel_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">One-time Termination Benefits</link:label>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_label_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">One-time Termination Benefits [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:to="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_e6f7569b-d747-4998-8d89-3d0e778c13b3_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expiration period of options upon employee's termination of service</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneous Compensation Analysis</link:label>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_label_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneous Compensation Analysis [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompAnalysisTextBlock" xlink:to="lab_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_d009952c-493c-4679-b8d0-ca5d8cd8bd80_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate intrinsic value of options exercised</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_e64c8651-6743-4166-8831-4ea361cbd64b_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of warrant or right, number of securities called by warrants or rights (in shares)</link:label>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_label_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Warrant or Right, Number of Securities Called by Warrants or Rights</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:to="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_bc983143-b8fc-438b-a680-050f91038ff5_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other nondeductible items</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_13a19677-dc03-4243-b0aa-47d22749c7fe_terseLabel_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity securities without readily determinable fair value (in shares)</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_label_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_documentation_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:to="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentTransitionReport_563a47a8-3c2d-48a9-8d28-a824e3762947_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Transition Report</link:label>
    <link:label id="lab_dei_DocumentTransitionReport_label_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentTransitionReport" xlink:to="lab_dei_DocumentTransitionReport" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Predetermined</link:label>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_label_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Predetermined [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgPredtrmndFlag" xlink:to="lab_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_25a63a24-6f30-4ce4-b843-67684cace03a_verboseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AmericasMember_e0ed1f00-d53e-442a-b100-40d4bb27a566_terseLabel_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Americas</link:label>
    <link:label id="lab_srt_AmericasMember_label_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Americas [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AmericasMember" xlink:to="lab_srt_AmericasMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_96e75317-0ed1-4670-8057-af71a55ec337_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other (in dollars per share)</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period, Weighted Average Grant Date Fair Value</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityPublicFloat_b6925dc0-c175-4933-9e9a-547f720983a5_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Public Float</link:label>
    <link:label id="lab_dei_EntityPublicFloat_label_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPublicFloat"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat" xlink:to="lab_dei_EntityPublicFloat" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_f31b6c48-c2e5-4d9f-8990-a7d8b701e87c_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_6777132c-f7a3-437f-ac9d-55875c965d45_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (decrease) in deferred tax asset valuation allowance</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:to="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CommercialAgreementMember_6fcb630e-540f-4f72-bcfb-18ef48a1be34_terseLabel_en-US" xlink:label="lab_cdxs_CommercialAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commercial Agreement</link:label>
    <link:label id="lab_cdxs_CommercialAgreementMember_label_en-US" xlink:label="lab_cdxs_CommercialAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commercial Agreement [Member]</link:label>
    <link:label id="lab_cdxs_CommercialAgreementMember_documentation_en-US" xlink:label="lab_cdxs_CommercialAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commercial Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercialAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_CommercialAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CommercialAgreementMember" xlink:to="lab_cdxs_CommercialAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_25aedaf8-918f-4ec8-832a-f369fa4fc490_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contingent annual receivable increase</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Contingent Annual Receivable Increase</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Contingent Annual Receivable Increase</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentAnnualReceivableIncrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:to="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllTradingArrangementsMember_terseLabel_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Trading Arrangements</link:label>
    <link:label id="lab_ecd_AllTradingArrangementsMember_label_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Trading Arrangements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllTradingArrangementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="lab_ecd_AllTradingArrangementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllAdjToCompMember_terseLabel_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Adjustments to Compensation</link:label>
    <link:label id="lab_ecd_AllAdjToCompMember_label_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Adjustments to Compensation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllAdjToCompMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="lab_ecd_AllAdjToCompMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesCAndC1PreferredStockMember_1073caf3-0cc6-41b8-8730-ac863afa90f1_terseLabel_en-US" xlink:label="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series C And C-1 Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesCAndC1PreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series C And C-1 Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesCAndC1PreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series C And C-1 Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesCAndC1PreferredStockMember" xlink:href="cdxs-20231231.xsd#cdxs_SeriesCAndC1PreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesCAndC1PreferredStockMember" xlink:to="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_6c1af262-8b85-48d3-8756-0f25846b94a4_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:to="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Recovery Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryCompAmt" xlink:to="lab_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_5f913616-1bff-491f-93d2-d50cbc6d720e_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Obligation, Expected Timing of Satisfaction</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount_26ccf1d3-ba24-446b-9af5-c0498e97a647_terseLabel_en-US" xlink:label="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative arrangement, upfront fee amount</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount_label_en-US" xlink:label="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement, Upfront Fee Amount</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount_documentation_en-US" xlink:label="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement, Upfront Fee Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementUpfrontFeeAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:to="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_ca21607b-781a-4ecc-b003-eed95da8d014_terseLabel_en-US" xlink:label="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Percent of voting interests</link:label>
    <link:label id="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_label_en-US" xlink:label="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Percent Of Voting Interests Threshold To Trigger Higher Exercise Price</link:label>
    <link:label id="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_documentation_en-US" xlink:label="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Percent Of Voting Interests Threshold To Trigger Higher Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" xlink:href="cdxs-20231231.xsd#cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" xlink:to="lab_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_54c6375f-95a5-4609-bde1-2e6d695a2cb2_terseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Provision (recovery) for credit losses</link:label>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_label_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:to="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_0bd9f8e8-1d94-4c37-bac5-179ae23ccb0e_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:to="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_1c6ea372-092e-4fa9-a30d-22e3df2702fb_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited/Expired (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_95c97068-f64a-47ed-89a5-fb98bfa59f4b_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total deferred benefit</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_c1296cd5-1c14-48d7-81ad-75f9880e834d_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeAxis" xlink:to="lab_us-gaap_SubsequentEventTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_8ae6e3bd-70f8-45dd-90a1-1d96dea52c53_verboseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from exercises of stock options</link:label>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:to="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_0b415564-56d0-403f-9452-415d70c6c083_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, performance goals achieved, superior level, shares eligible to vest, multiplier</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_913a766c-5a8a-41e2-9365-d22bd253a9f9_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercised (in dollars per share)</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Exercised, Weighted Average Grant Date Fair Value</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Exercised, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConvertibleDebtMember_5206ad52-ecc8-4b0d-a86b-0bcf2ca4bf99_terseLabel_en-US" xlink:label="lab_us-gaap_ConvertibleDebtMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Convertible Debt</link:label>
    <link:label id="lab_us-gaap_ConvertibleDebtMember_label_en-US" xlink:label="lab_us-gaap_ConvertibleDebtMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Convertible Debt [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebtMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertibleDebtMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConvertibleDebtMember" xlink:to="lab_us-gaap_ConvertibleDebtMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_f579b7e8-8411-43e9-874b-aad6a0424b8d_terseLabel_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_label_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:to="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_d8173cf7-3203-4753-b914-f58e8ec5fa2b_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited/Expired (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionContingentReceivable_6456f0fd-130c-42df-9dec-6af63ce8df9e_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contingent receivable</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentReceivable_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Contingent Receivable</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentReceivable_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Contingent Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionContingentReceivable" xlink:to="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_a79cc09a-968f-4160-ac7b-97b66dfb7d1b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Intangible Assets and Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Intangible Assets and Goodwill [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments_acea5964-766b-461a-86a6-ae1f033778b1_terseLabel_en-US" xlink:label="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional milestone payments</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments_label_en-US" xlink:label="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement, Number Of Milestone Payments</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments_documentation_en-US" xlink:label="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement, Number Of Milestone Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementNumberOfMilestonePayments" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementNumberOfMilestonePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CollaborativeArrangementNumberOfMilestonePayments" xlink:to="lab_cdxs_CollaborativeArrangementNumberOfMilestonePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_c37a906a-919d-4a8f-ab73-98561e852543_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contingent annual payments, term</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Contingent Annual Payments, Term</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Contingent Annual Payments, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentAnnualPaymentsTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:to="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_c160acdc-b41d-411a-847b-4418796d28b0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrealized gain on non-marketable securities ($0, ($208), and ($983) from a related party)</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_7a6ccb7f-607a-41ab-96f9-21217ad748b8_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrealized gain on non-marketable securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities, FV-NI, Unrealized Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:to="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_d68fa673-0a68-4f07-b726-e680a294c1c0_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Table]</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_0d275348-1560-4aeb-b64e-863de0d9e25c_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from sale of property and equipment</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentsIncorporatedByReferenceTextBlock_a2617f8b-13b6-4325-a8bd-938fdab42ed2_terseLabel_en-US" xlink:label="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Documents Incorporated by Reference</link:label>
    <link:label id="lab_dei_DocumentsIncorporatedByReferenceTextBlock_label_en-US" xlink:label="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Documents Incorporated by Reference [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentsIncorporatedByReferenceTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:to="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_f5237d62-4063-440a-8128-7e5d1f3beccb_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate" xlink:to="lab_dei_DocumentPeriodEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrAdoptionDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adoption Date</link:label>
    <link:label id="lab_ecd_TrdArrAdoptionDate_label_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement Adoption Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrAdoptionDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrAdoptionDate" xlink:to="lab_ecd_TrdArrAdoptionDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerMember_f6676953-bae4-4e44-9bf7-0fa8aa158e26_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer Benchmark</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerMember_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerMember" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_a940b4a6-d4d8-4ab7-be67-a4659f4146d0_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_57c9c891-800b-491e-ba08-c6018058694d_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_label_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_be634cf0-e30c-4f40-bbae-d54133ada709_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Provision for income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_0c3a6f20-1ea9-4d5d-acbc-63904984f7b1_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Provision for income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VestingAxis_170e3417-9740-48ae-87ec-ed4c014a7bc3_terseLabel_en-US" xlink:label="lab_us-gaap_VestingAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vesting [Axis]</link:label>
    <link:label id="lab_us-gaap_VestingAxis_label_en-US" xlink:label="lab_us-gaap_VestingAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vesting [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VestingAxis" xlink:to="lab_us-gaap_VestingAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:to="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForLoanLossesExpensed_7433a43e-8102-458b-8287-3c15f93b0ec9_verboseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForLoanLossesExpensed" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Provision for credit losses</link:label>
    <link:label id="lab_us-gaap_ProvisionForLoanLossesExpensed_label_en-US" xlink:label="lab_us-gaap_ProvisionForLoanLossesExpensed" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Credit Loss, Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForLoanLossesExpensed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForLoanLossesExpensed"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProvisionForLoanLossesExpensed" xlink:to="lab_us-gaap_ProvisionForLoanLossesExpensed" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityAbstract_2f901231-2650-403c-adfe-f6d8f7be5b21_terseLabel_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_EquityAbstract_label_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract" xlink:to="lab_us-gaap_EquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_5a814a88-68e8-494d-82de-6a034cf472ee_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Line Items]</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_label_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Line Items]</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_documentation_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">[Line Items] for Operating Loss and Tax Credit Carryforwards [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:to="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_c3dd2e75-a32b-4110-9559-eed86e492a21_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, weighted-average remaining lease term</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivables60To89DaysPastDueMember_3617d1b3-4548-404f-b95d-80cb3667a7b4_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivables60To89DaysPastDueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">61-90 Days</link:label>
    <link:label id="lab_us-gaap_FinancingReceivables60To89DaysPastDueMember_label_en-US" xlink:label="lab_us-gaap_FinancingReceivables60To89DaysPastDueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, 60 to 89 Days Past Due [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivables60To89DaysPastDueMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivables60To89DaysPastDueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivables60To89DaysPastDueMember" xlink:to="lab_us-gaap_FinancingReceivables60To89DaysPastDueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_3e6ec5b1-5829-4bd4-aab5-754a87230df5_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Rate Reconciliation</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Expense (Benefit), Effective Income Tax Rate Reconciliation, Amount [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MoneyMarketFundsMember_6fa2ef93-da6d-4e61-8534-526f65edf79f_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money market funds</link:label>
    <link:label id="lab_us-gaap_MoneyMarketFundsMember_label_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money Market Funds [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MoneyMarketFundsMember" xlink:to="lab_us-gaap_MoneyMarketFundsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_551ff0c6-4303-4820-8aa4-3a6b875627a1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAmount_c629dd5e-54fa-4f39-8123-c6dafc707f90_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax credits, amount</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAmount_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardAmount" xlink:to="lab_us-gaap_TaxCreditCarryforwardAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2021PSUAnd2021PBOMember_69be8eb6-9928-4692-8535-fce172451a55_terseLabel_en-US" xlink:label="lab_cdxs_A2021PSUAnd2021PBOMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PSU And 2021 PBO</link:label>
    <link:label id="lab_cdxs_A2021PSUAnd2021PBOMember_label_en-US" xlink:label="lab_cdxs_A2021PSUAnd2021PBOMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PSU And 2021 PBO [Member]</link:label>
    <link:label id="lab_cdxs_A2021PSUAnd2021PBOMember_documentation_en-US" xlink:label="lab_cdxs_A2021PSUAnd2021PBOMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PSU And 2021 PBO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PSUAnd2021PBOMember" xlink:href="cdxs-20231231.xsd#cdxs_A2021PSUAnd2021PBOMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2021PSUAnd2021PBOMember" xlink:to="lab_cdxs_A2021PSUAnd2021PBOMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_13825ae5-4737-450f-b7e5-5b6591bde160_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_c5074e8c-1657-47dc-b9d6-e3d7ddc5ede9_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjusted Cost</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DemandDepositsMember_ecd11d5d-23c3-42f3-aeef-ecc4d5664a78_terseLabel_en-US" xlink:label="lab_us-gaap_DemandDepositsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Demand deposits</link:label>
    <link:label id="lab_us-gaap_DemandDepositsMember_label_en-US" xlink:label="lab_us-gaap_DemandDepositsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Demand Deposits [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DemandDepositsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DemandDepositsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DemandDepositsMember" xlink:to="lab_us-gaap_DemandDepositsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_4485387d-ee51-4394-baf4-722bf8522a6d_negatedLabel_en-US" xlink:label="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taxes paid related to net share settlement of equity awards (in shares)</link:label>
    <link:label id="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PastDueFinancingReceivablesTableTextBlock_739c15e6-f5a4-4cde-a5c6-b8293ec0c57a_terseLabel_en-US" xlink:label="lab_us-gaap_PastDueFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Accounts Receivable by Aging</link:label>
    <link:label id="lab_us-gaap_PastDueFinancingReceivablesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_PastDueFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Past Due [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PastDueFinancingReceivablesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PastDueFinancingReceivablesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PastDueFinancingReceivablesTableTextBlock" xlink:to="lab_us-gaap_PastDueFinancingReceivablesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CreditFacilityDomain_c57ad913-72b8-4a00-9033-00bcfe10308f_terseLabel_en-US" xlink:label="lab_us-gaap_CreditFacilityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:label id="lab_us-gaap_CreditFacilityDomain_label_en-US" xlink:label="lab_us-gaap_CreditFacilityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CreditFacilityDomain" xlink:to="lab_us-gaap_CreditFacilityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_5e7eed2f-9557-4ed1-a512-eaf90c7f89b2_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basis spread on variable rate</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Basis Spread on Variable Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_42c2fc9f-42d8-475f-81a1-c7a33565fc0c_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated useful life</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Other Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Other Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_b55ec775-ebc3-484b-9b21-7702322516ef_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents, Unrestricted Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:to="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCommitment_e1978fdd-ddc2-4ef2-af92-683adef3aa16_totalLabel_en-US" xlink:label="lab_us-gaap_OtherCommitment" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_OtherCommitment_label_en-US" xlink:label="lab_us-gaap_OtherCommitment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCommitment" xlink:to="lab_us-gaap_OtherCommitment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_a7f4e6e7-84ca-4b72-8ab4-dc8808c72f89_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PerformanceStockUnitsMember_d68b0e7c-bb34-4a8a-a1ed-e3f7d6f23aa4_terseLabel_en-US" xlink:label="lab_cdxs_PerformanceStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PSUs</link:label>
    <link:label id="lab_cdxs_PerformanceStockUnitsMember_label_en-US" xlink:label="lab_cdxs_PerformanceStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Stock Units [Member]</link:label>
    <link:label id="lab_cdxs_PerformanceStockUnitsMember_documentation_en-US" xlink:label="lab_cdxs_PerformanceStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Stock Units</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PerformanceStockUnitsMember" xlink:to="lab_cdxs_PerformanceStockUnitsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_4d73bd4a-590f-42f4-b29c-037c14e947b3_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_51e4c459-fed9-40a2-a2fb-9f093351a2dc_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Paid-in Capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentAnnualReport_b8771fd9-8142-4307-8ad3-a5d26899d57b_terseLabel_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Annual Report</link:label>
    <link:label id="lab_dei_DocumentAnnualReport_label_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Annual Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAnnualReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentAnnualReport" xlink:to="lab_dei_DocumentAnnualReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivables30To59DaysPastDueMember_cb62118d-715b-4485-a391-ef93a28c6c40_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivables30To59DaysPastDueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">31-60 Days</link:label>
    <link:label id="lab_us-gaap_FinancingReceivables30To59DaysPastDueMember_label_en-US" xlink:label="lab_us-gaap_FinancingReceivables30To59DaysPastDueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, 30 to 59 Days Past Due [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivables30To59DaysPastDueMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivables30To59DaysPastDueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivables30To59DaysPastDueMember" xlink:to="lab_us-gaap_FinancingReceivables30To59DaysPastDueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CoverAbstract_label_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract" xlink:to="lab_dei_CoverAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_499ea700-1f97-48ec-af63-e8c66568b252_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsTextBlock" xlink:to="lab_us-gaap_SubsequentEventsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_country_US_9efdb9f5-b54c-4c0c-8c87-d01fe008375d_terseLabel_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">United States</link:label>
    <link:label id="lab_country_US_label_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">UNITED STATES</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_US" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_US" xlink:to="lab_country_US" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_15aab5c7-a366-4fce-9cae-6913ca3eb2fb_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Measurement and Measurement Inputs, Recurring and Nonrecurring [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementInputsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:to="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_7aba62be-ec7e-4fc4-b030-2bee1e60f14c_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other long-term liabilities</link:label>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Liabilities, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:to="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_b17ef530-130e-4161-b540-c0cdc373408a_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total minimum lease payments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_f1ba0e34-4124-4823-bf09-f0ffdcd36009_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited/Expired (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligation_1cbc2491-e25b-4f02-8c5a-c17b1da70b71_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance obligation</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligation_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligation" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_071ce1d6-822f-456d-b282-6b4e624e3b01_verboseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment, Geographical and Other Revenue Information</link:label>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_77984c04-3d58-4072-97be-fc5beec237c4_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net decrease in cash, cash equivalents and restricted cash</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRenewalTerm_bfc15fff-a5db-4b7c-876c-6e619c721f09_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Renewal term</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRenewalTerm_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Renewal Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityComponentDomain_704cff82-08da-4cd4-90a8-6bd626707fa4_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:label id="lab_us-gaap_EquityComponentDomain_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain" xlink:to="lab_us-gaap_EquityComponentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_dbe2b5c7-c7ee-4782-b932-faf728bf9719_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Option price as a percent of common stock</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MilestoneTwoMember_b11da943-bbfc-4fb2-b956-c25c44597a5a_terseLabel_en-US" xlink:label="lab_cdxs_MilestoneTwoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone Two</link:label>
    <link:label id="lab_cdxs_MilestoneTwoMember_label_en-US" xlink:label="lab_cdxs_MilestoneTwoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone Two [Member]</link:label>
    <link:label id="lab_cdxs_MilestoneTwoMember_documentation_en-US" xlink:label="lab_cdxs_MilestoneTwoMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MilestoneTwoMember" xlink:to="lab_cdxs_MilestoneTwoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StateAndLocalJurisdictionMember_595a56c0-1177-4747-89a9-0151c861211b_terseLabel_en-US" xlink:label="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_StateAndLocalJurisdictionMember_label_en-US" xlink:label="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State and Local Jurisdiction [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StateAndLocalJurisdictionMember" xlink:to="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2021PSUMember_5a242d1c-5feb-4156-83e4-7d6eef59fd23_terseLabel_en-US" xlink:label="lab_cdxs_A2021PSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PSU</link:label>
    <link:label id="lab_cdxs_A2021PSUMember_label_en-US" xlink:label="lab_cdxs_A2021PSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PSU [Member]</link:label>
    <link:label id="lab_cdxs_A2021PSUMember_documentation_en-US" xlink:label="lab_cdxs_A2021PSUMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2021 PSU</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PSUMember" xlink:href="cdxs-20231231.xsd#cdxs_A2021PSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2021PSUMember" xlink:to="lab_cdxs_A2021PSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_8c919777-363f-4372-b979-e9ffb9b542e5_totalLabel_en-US" xlink:label="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total financial assets, net</link:label>
    <link:label id="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts and Financing Receivable, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:to="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-GAAP Measure Description</link:label>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_label_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-GAAP Measure Description [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:to="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesOther_2d5b80a5-1f7a-47e4-893e-f3868fa411cd_negatedLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesOther" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Other</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesOther_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesOther" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesOther" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesOther" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCurrentReportingStatus_f71b96ad-3c9d-417d-a510-8d61984422de_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:label id="lab_dei_EntityCurrentReportingStatus_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus" xlink:to="lab_dei_EntityCurrentReportingStatus" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LaboratoryEquipmentMember_6b2a309a-f614-46e7-a564-3041f11d1f92_terseLabel_en-US" xlink:label="lab_cdxs_LaboratoryEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Laboratory equipment</link:label>
    <link:label id="lab_cdxs_LaboratoryEquipmentMember_label_en-US" xlink:label="lab_cdxs_LaboratoryEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Laboratory Equipment [Member]</link:label>
    <link:label id="lab_cdxs_LaboratoryEquipmentMember_documentation_en-US" xlink:label="lab_cdxs_LaboratoryEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Laboratory Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LaboratoryEquipmentMember" xlink:href="cdxs-20231231.xsd#cdxs_LaboratoryEquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LaboratoryEquipmentMember" xlink:to="lab_cdxs_LaboratoryEquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_26c8a886-3a0c-426e-873b-2b6367111662_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_7301345a-8776-434e-a5e9-f5186c068a63_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss from operations</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss" xlink:to="lab_us-gaap_OperatingIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_00e46b8b-eaa8-4ea0-a02c-4dbb15f28503_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled receivables, not billable</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled Receivables, Not Billable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:to="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilities_6849fbdc-74d9-44c7-8f4b-746aff912f09_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesB2PreferredStockMember_c70c024c-d6dd-4f06-b30d-a8c927cb3b00_terseLabel_en-US" xlink:label="lab_cdxs_SeriesB2PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series B-2 Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesB2PreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesB2PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series B-2 Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesB2PreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesB2PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series B-2 Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesB2PreferredStockMember" xlink:href="cdxs-20231231.xsd#cdxs_SeriesB2PreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesB2PreferredStockMember" xlink:to="lab_cdxs_SeriesB2PreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AcquisitionAgreementMember_601128ae-176c-42d8-8700-18a3daeec87d_terseLabel_en-US" xlink:label="lab_cdxs_AcquisitionAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Acquisition Agreement</link:label>
    <link:label id="lab_cdxs_AcquisitionAgreementMember_label_en-US" xlink:label="lab_cdxs_AcquisitionAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Acquisition Agreement [Member]</link:label>
    <link:label id="lab_cdxs_AcquisitionAgreementMember_documentation_en-US" xlink:label="lab_cdxs_AcquisitionAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Acquisition Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AcquisitionAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_AcquisitionAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AcquisitionAgreementMember" xlink:to="lab_cdxs_AcquisitionAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseLiabilityRollForward_b9af5bf6-ab67-448e-9941-8d7db8a59a12_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseLiabilityRollForward_label_en-US" xlink:label="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseLiabilityRollForward_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseLiabilityRollForward" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseLiabilityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward" xlink:to="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermLoansMember_804f88ce-4ebf-44bc-8bc3-9dfe96a7b033_terseLabel_en-US" xlink:label="lab_cdxs_TermLoansMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans</link:label>
    <link:label id="lab_cdxs_TermLoansMember_label_en-US" xlink:label="lab_cdxs_TermLoansMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans [Member]</link:label>
    <link:label id="lab_cdxs_TermLoansMember_documentation_en-US" xlink:label="lab_cdxs_TermLoansMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansMember" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermLoansMember" xlink:to="lab_cdxs_TermLoansMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0690f9f8-09d0-4181-9bb2-b3c1db1d8b52_terseLabel_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</link:label>
    <link:label id="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_label_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_b48948a3-8af5-4692-94c0-dc579fb1efd6_terseLabel_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segments [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:to="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_cfc4e855-c925-472a-9bd0-c127dca0da32_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived_0f407427-4455-465c-9e49-a3f008dc158a_terseLabel_en-US" xlink:label="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MAI agreement milestone payment received</link:label>
    <link:label id="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived_label_en-US" xlink:label="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction, Milestone Payment Received</link:label>
    <link:label id="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived_documentation_en-US" xlink:label="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction, Milestone Payment Received</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:href="cdxs-20231231.xsd#cdxs_RelatedPartyTransactionMilestonePaymentReceived"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:to="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_0b44848e-5bdd-421b-8c1a-b0e395763c99_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Disclosures</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_4e5376e0-8cfb-4cb6-8a16-679380571fb3_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_label_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfRestructuringDomain" xlink:to="lab_us-gaap_TypeOfRestructuringDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember_0c805ffa-f22e-4975-9b27-72a8a4c61da4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tranche One</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Tranche One [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAwardTrancheOneMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:to="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VariableRateDomain_9b64b9bc-e4a6-4b45-9ba8-583ca8e369f3_terseLabel_en-US" xlink:label="lab_us-gaap_VariableRateDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Rate [Domain]</link:label>
    <link:label id="lab_us-gaap_VariableRateDomain_label_en-US" xlink:label="lab_us-gaap_VariableRateDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Rate [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VariableRateDomain" xlink:to="lab_us-gaap_VariableRateDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_1eba3dc6-816a-4a62-8365-ed3ecee2bb25_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonemployee</link:label>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_90a0420b-6032-468e-9bab-d20c08bafc49_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonemployee Awards</link:label>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Nonemployee [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:to="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PayVsPerformanceDisclosureLineItems_label_en-US" xlink:label="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityVoluntaryFilers_76315d12-4475-4460-8b56-a1ff0531304a_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:label id="lab_dei_EntityVoluntaryFilers_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityVoluntaryFilers"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers" xlink:to="lab_dei_EntityVoluntaryFilers" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_ed709fe1-8647-4771-a16d-81d850e31ce4_terseLabel_en-US" xlink:label="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Executive compensation</link:label>
    <link:label id="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_label_en-US" xlink:label="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation</link:label>
    <link:label id="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_documentation_en-US" xlink:label="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:href="cdxs-20231231.xsd#cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:to="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeMember_a13850fa-d9f8-40e0-928e-1f1e707fe0a2_terseLabel_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Range [Domain]</link:label>
    <link:label id="lab_srt_RangeMember_label_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember" xlink:to="lab_srt_RangeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerEMember_1421a0d6-896d-48fc-aa55-efa414c7161c_terseLabel_en-US" xlink:label="lab_cdxs_CustomerEMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer E</link:label>
    <link:label id="lab_cdxs_CustomerEMember_label_en-US" xlink:label="lab_cdxs_CustomerEMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer E [Member]</link:label>
    <link:label id="lab_cdxs_CustomerEMember_documentation_en-US" xlink:label="lab_cdxs_CustomerEMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer E</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerEMember" xlink:href="cdxs-20231231.xsd#cdxs_CustomerEMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerEMember" xlink:to="lab_cdxs_CustomerEMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_terseLabel_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Underlying Security Market Price Change</link:label>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_label_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Underlying Security Market Price Change, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:to="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SitagliptinEnzymeMember_776e588b-f375-439e-bc23-2c2b45f66bdd_terseLabel_en-US" xlink:label="lab_cdxs_SitagliptinEnzymeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sitagliptin Enzyme</link:label>
    <link:label id="lab_cdxs_SitagliptinEnzymeMember_label_en-US" xlink:label="lab_cdxs_SitagliptinEnzymeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sitagliptin Enzyme [Member]</link:label>
    <link:label id="lab_cdxs_SitagliptinEnzymeMember_documentation_en-US" xlink:label="lab_cdxs_SitagliptinEnzymeMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sitagliptin Enzyme</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SitagliptinEnzymeMember" xlink:href="cdxs-20231231.xsd#cdxs_SitagliptinEnzymeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SitagliptinEnzymeMember" xlink:to="lab_cdxs_SitagliptinEnzymeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RocheMember_099e6fcd-5dbf-4b02-b7e2-d65d40e908cf_terseLabel_en-US" xlink:label="lab_cdxs_RocheMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Roche</link:label>
    <link:label id="lab_cdxs_RocheMember_label_en-US" xlink:label="lab_cdxs_RocheMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Roche [Member]</link:label>
    <link:label id="lab_cdxs_RocheMember_documentation_en-US" xlink:label="lab_cdxs_RocheMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Roche</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RocheMember" xlink:href="cdxs-20231231.xsd#cdxs_RocheMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RocheMember" xlink:to="lab_cdxs_RocheMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CashDepositMember_b75f49a9-61a7-4d9a-8e38-cf87366d05f1_terseLabel_en-US" xlink:label="lab_cdxs_CashDepositMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash Deposit</link:label>
    <link:label id="lab_cdxs_CashDepositMember_label_en-US" xlink:label="lab_cdxs_CashDepositMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash Deposit [Member]</link:label>
    <link:label id="lab_cdxs_CashDepositMember_documentation_en-US" xlink:label="lab_cdxs_CashDepositMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash Deposit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashDepositMember" xlink:href="cdxs-20231231.xsd#cdxs_CashDepositMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CashDepositMember" xlink:to="lab_cdxs_CashDepositMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_95cecb4d-1f5e-4f71-8b7f-37fbd91eab03_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-vested, beginning of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_ffd073e4-21fd-4e79-b191-e47782123943_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-vested, end of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_08902998-f4d8-45ed-83c3-800147fe56a1_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpensePolicy_796ecc41-c65b-49b8-b89a-2f9265135d4e_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpensePolicy_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Expense, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_label_en-US" xlink:label="lab_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments, Debt and Equity Securities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:to="lab_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevolvingCreditFacilityMember_0b680357-ae33-4ad7-a0b5-fba23efc3130_terseLabel_en-US" xlink:label="lab_us-gaap_RevolvingCreditFacilityMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revolving Credit Facility</link:label>
    <link:label id="lab_us-gaap_RevolvingCreditFacilityMember_label_en-US" xlink:label="lab_us-gaap_RevolvingCreditFacilityMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revolving Credit Facility [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevolvingCreditFacilityMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevolvingCreditFacilityMember" xlink:to="lab_us-gaap_RevolvingCreditFacilityMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_terseLabel_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value</link:label>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_label_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:to="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PerformanceSharesMember_3cdb58e5-2b17-417c-9ae1-32444415a54f_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PBOs</link:label>
    <link:label id="lab_us-gaap_PerformanceSharesMember_label_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PerformanceSharesMember" xlink:to="lab_us-gaap_PerformanceSharesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_e97c6be3-680e-4b92-b34e-c49bc3e818dd_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract" xlink:to="lab_us-gaap_SegmentReportingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_0ff61429-aa69-4c80-a156-f94092b4738e_verboseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Payable, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent" xlink:to="lab_us-gaap_AccountsPayableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_66934b9e-bd1c-40df-b91c-d0b2c31eaac3_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted average remaining contractual terms, exercisable options</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComputerEquipmentMember_97fe53a9-4612-41d9-9079-31f25107ae7c_terseLabel_en-US" xlink:label="lab_us-gaap_ComputerEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer equipment and software</link:label>
    <link:label id="lab_us-gaap_ComputerEquipmentMember_label_en-US" xlink:label="lab_us-gaap_ComputerEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerEquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComputerEquipmentMember" xlink:to="lab_us-gaap_ComputerEquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_5198943d-18f9-4156-a514-5dade8268095_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Line Items]</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentAbstract_09014e4f-a1e2-4329-86b2-ba45840e30cf_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development [Abstract]</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentAbstract_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentAbstract" xlink:to="lab_us-gaap_ResearchAndDevelopmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDateAxis_terseLabel_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date:</link:label>
    <link:label id="lab_ecd_RestatementDateAxis_label_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDateAxis" xlink:to="lab_ecd_RestatementDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_2bf16597-ae13-4eff-a37e-576e87f03ec1_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment, Name [Axis]</link:label>
    <link:label id="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_label_en-US" xlink:label="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment, Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:to="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_8f240087-4cc0-4ef4-b413-61a556645653_terseLabel_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Office equipment and furniture</link:label>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_label_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Office Equipment and Furniture [Member]</link:label>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_documentation_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Office Equipment and Furniture [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember" xlink:href="cdxs-20231231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OfficeEquipmentAndFurnitureMember" xlink:to="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_13b3670a-3b13-4759-afe4-9bc2d7943ba7_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other long-term liabilities</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Other Noncurrent Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_1e7f9f12-26e0-4513-b0fe-880006230b60_verboseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and contingencies (Note 13)</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies" xlink:to="lab_us-gaap_CommitmentsAndContingencies" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3f47ebd2-4458-49b5-90a8-9f0138ec2284_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_b923292f-a9b3-4174-a0cb-fbf1ec302b1d_terseLabel_en-US" xlink:label="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentrations of Supply Risk</link:label>
    <link:label id="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_label_en-US" xlink:label="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk, Supply Risk [Policy Text Block]</link:label>
    <link:label id="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_documentation_en-US" xlink:label="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk, Supply Risk [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:href="cdxs-20231231.xsd#cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:to="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfCommonStock_7716c5cb-a1a5-45de-a9ec-a0d8e4eba388_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from issuance of common stock in connection with public offering</link:label>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfCommonStock_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Issuance of Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_529a2d0c-7699-4379-bbb2-5516427b8327_totalLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total revenues</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementGeographicalAxis_b219dfda-c155-4cc2-8fb4-3d66f5ba3eba_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:label id="lab_srt_StatementGeographicalAxis_label_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementGeographicalAxis" xlink:to="lab_srt_StatementGeographicalAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TypeOfArrangementAxis_1a39f001-28cf-4bba-9e26-441fc8d33979_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfArrangementAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Arrangement and Non-arrangement Transactions [Axis]</link:label>
    <link:label id="lab_us-gaap_TypeOfArrangementAxis_label_en-US" xlink:label="lab_us-gaap_TypeOfArrangementAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfArrangementAxis" xlink:to="lab_us-gaap_TypeOfArrangementAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_b434a75b-97c1-450c-835c-91d73b1e2843_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_74787825-e2ff-4f9e-8b29-77d4e135a47a_verboseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue ($0, $0, $245 to a related party)</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_603944a9-2f41-43af-89e3-733fa1d1a833_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_694e42d9-bbac-4d7e-892f-313a189fcd6f_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems" xlink:to="lab_us-gaap_ConcentrationRiskLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_dc92bf04-e240-477f-8309-c8f7caa4d3d2_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease Accounting</link:label>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RSUsAndRSAsMember_9226cb27-863b-4bcb-bf16-0703ab613cee_terseLabel_en-US" xlink:label="lab_cdxs_RSUsAndRSAsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">RSUs and RSAs</link:label>
    <link:label id="lab_cdxs_RSUsAndRSAsMember_label_en-US" xlink:label="lab_cdxs_RSUsAndRSAsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">RSUs And RSAs [Member]</link:label>
    <link:label id="lab_cdxs_RSUsAndRSAsMember_documentation_en-US" xlink:label="lab_cdxs_RSUsAndRSAsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">RSUs And RSAs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember" xlink:href="cdxs-20231231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RSUsAndRSAsMember" xlink:to="lab_cdxs_RSUsAndRSAsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_c356d9fd-1776-485a-9bf3-86ee35974bf2_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Change in valuation allowance</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_cc327726-bd83-4db2-8503-d0bd381484c6_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_e82130ab-1e54-404d-8e54-4e7ee034c439_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Grant Date Fair Value Per Share</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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 [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CommonStockWarrantsMember_3a20f55e-cca8-4296-8165-7b6acc00e982_terseLabel_en-US" xlink:label="lab_cdxs_CommonStockWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock Warrants</link:label>
    <link:label id="lab_cdxs_CommonStockWarrantsMember_label_en-US" xlink:label="lab_cdxs_CommonStockWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock Warrants [Member]</link:label>
    <link:label id="lab_cdxs_CommonStockWarrantsMember_documentation_en-US" xlink:label="lab_cdxs_CommonStockWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock Warrants</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommonStockWarrantsMember" xlink:href="cdxs-20231231.xsd#cdxs_CommonStockWarrantsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CommonStockWarrantsMember" xlink:to="lab_cdxs_CommonStockWarrantsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNetAbstract_0a1aacf8-7592-45ea-8e8b-0745fcb766f4_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryNetAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Inventory Components</link:label>
    <link:label id="lab_us-gaap_InventoryNetAbstract_label_en-US" xlink:label="lab_us-gaap_InventoryNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Net [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNetAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNetAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNetAbstract" xlink:to="lab_us-gaap_InventoryNetAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_7c6bab19-7273-4db0-b615-45286899fceb_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoTotalCompAmt_label_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoTotalCompAmt" xlink:to="lab_ecd_PeoTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_f792dabf-992a-49ae-9652-ce512591d7a8_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Property, Plant and Equipment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillRollForward_7b94f221-c2ca-4f74-9ffa-21b381a99af7_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_GoodwillRollForward_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward" xlink:to="lab_us-gaap_GoodwillRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_f9b7699c-56e3-4dd5-a2fe-7369f0743449_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options vested and expected to vest (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrByIndTable_terseLabel_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangements, by Individual</link:label>
    <link:label id="lab_ecd_TradingArrByIndTable_label_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangements, by Individual [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrByIndTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="lab_ecd_TradingArrByIndTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_421abce4-af2b-4048-83a5-40da203c63b7_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Level&#160;3</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel3Member" xlink:to="lab_us-gaap_FairValueInputsLevel3Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_6adcc36f-c88e-4e93-bbf1-18c12caa5a2e_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other-than-temporary impairment losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Unrealized Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NoncashActivityAbstract_6aaf2854-adab-4313-a510-07dcc16f34ec_terseLabel_en-US" xlink:label="lab_cdxs_NoncashActivityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-cash activity:</link:label>
    <link:label id="lab_cdxs_NoncashActivityAbstract_label_en-US" xlink:label="lab_cdxs_NoncashActivityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncash Activity [Abstract]</link:label>
    <link:label id="lab_cdxs_NoncashActivityAbstract_documentation_en-US" xlink:label="lab_cdxs_NoncashActivityAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncash Activity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NoncashActivityAbstract" xlink:href="cdxs-20231231.xsd#cdxs_NoncashActivityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NoncashActivityAbstract" xlink:to="lab_cdxs_NoncashActivityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_88bb1c01-fb1d-4aa7-9fda-866639833244_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding, beginning of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_8eae66fc-8136-4e5f-9d91-7d51a97d0505_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding, end of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_877a909e-29f6-48c8-801b-56a6507c8c5e_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercise of stock options</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:to="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_0922587e-a150-4ad7-a9be-91a181edb274_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Analysis of Allowance for Credit Losses</link:label>
    <link:label id="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:to="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_996f873a-69ea-422a-9fee-07400eb07972_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted average grant date fair value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetIncomeLoss_4307a127-2dda-46fd-bdc6-aec64f16d8cf_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net loss</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_2d86c82c-8421-4d71-9cd1-24ae46fa4528_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net loss</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss" xlink:to="lab_us-gaap_NetIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_8b8322fc-a0b5-4d3a-9ad1-5d0c4261f62a_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total current liabilities</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent" xlink:to="lab_us-gaap_LiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember_c262420d-5b97-425b-9b0e-666a8d3ac4a0_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">91 Days and Over</link:label>
    <link:label id="lab_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember_label_en-US" xlink:label="lab_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, Equal to or Greater than 90 Days Past Due [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember" xlink:to="lab_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_5e719f29-85f8-4961-b05a-6bc7ef30d6ce_terseLabel_en-US" xlink:label="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term of collaborative research and development agreement</link:label>
    <link:label id="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_label_en-US" xlink:label="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term of Collaborative Research and Development Agreement</link:label>
    <link:label id="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_documentation_en-US" xlink:label="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term of collaborative research and development agreement.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:href="cdxs-20231231.xsd#cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:to="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_945c493a-625c-48c2-a870-dc8a079e65b1_verboseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency Translation</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changed Peer Group, Footnote</link:label>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_label_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changed Peer Group, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:to="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureName_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureName_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureName" xlink:to="lab_ecd_CoSelectedMeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_2966ca55-af04-42d1-af3f-45ddcd34fb3b_verboseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities and Stockholders&#8217; Equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities and Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DeferredTaxAssetsLeaseLiability_d2945a6a-8d72-4c5e-8f10-3b4b2d08ef97_terseLabel_en-US" xlink:label="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease liability</link:label>
    <link:label id="lab_cdxs_DeferredTaxAssetsLeaseLiability_label_en-US" xlink:label="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Lease Liability</link:label>
    <link:label id="lab_cdxs_DeferredTaxAssetsLeaseLiability_documentation_en-US" xlink:label="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Lease Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxAssetsLeaseLiability" xlink:href="cdxs-20231231.xsd#cdxs_DeferredTaxAssetsLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DeferredTaxAssetsLeaseLiability" xlink:to="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_202afbe9-3356-404e-bc8b-8af25e8fe11b_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_423fe6bf-f0ec-43bc-bf2d-d795b43e7bc3_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercise of stock options (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_85481937-dbea-4089-920a-659f3216078b_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercised (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_caac9334-56db-48cb-887a-df590c59eeee_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">United States</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_c4639278-6b2a-4b4f-b447-4132f3857736_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of investment in non-marketable securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value, Impairment Loss, Annual Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_16dc8270-7745-45c9-bd56-a5253767a5e0_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost of product revenue</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost of Goods and Services Sold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_272c580a-163e-4b39-ad0f-bc443753e49a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vesting period of units granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherNoncashIncome_a15dbcd8-f62b-4e2b-81a0-c09164b309d9_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherNoncashIncome" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity securities earned from research and development activities ($0, ($1,245), and ($1,955) from a related party)</link:label>
    <link:label id="lab_us-gaap_OtherNoncashIncome_12e38fe9-a476-42ad-b987-8208643b4fb0_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNoncashIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other noncash income</link:label>
    <link:label id="lab_us-gaap_OtherNoncashIncome_label_en-US" xlink:label="lab_us-gaap_OtherNoncashIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Noncash Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNoncashIncome" xlink:to="lab_us-gaap_OtherNoncashIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureName_terseLabel_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_MeasureName_label_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureName" xlink:to="lab_ecd_MeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_6fc5fa04-d9c5-4cea-81c7-83c5d0793fab_terseLabel_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current borrowing capacity</link:label>
    <link:label id="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_label_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Line of Credit Facility, Current Borrowing Capacity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:to="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryIndName" xlink:to="lab_ecd_ForgoneRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Goodwill_fe6fa7f5-5d61-4920-8c7a-8098afd5200c_verboseLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_7329165d-9b23-4f31-aa0c-19452a84fdc4_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, beginning balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_a52aa431-13dc-451d-bd6a-e22eb66f047b_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, ending balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_label_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill" xlink:to="lab_us-gaap_Goodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_d90f3ea5-476e-4edd-8979-6dd54d6a777f_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additions to tax position of prior years</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceTable_75d33303-8f71-4f3f-8ee0-f74c45d1f125_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes [Table]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceTable_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Valuation Allowance [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceTable" xlink:to="lab_us-gaap_ValuationAllowanceTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_terseLabel_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Underlying Securities</link:label>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_label_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Underlying Securities Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:to="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember_3d509766-94a0-4b69-bfec-2443a0a54ce0_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, general and administrative</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, General and Administrative Expenses [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_9ba7414e-216c-4d47-b325-7126c64802c6_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term lease obligations - Operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MerckMember_e7d60c88-63ff-4693-948d-5614f6f4a228_terseLabel_en-US" xlink:label="lab_cdxs_MerckMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Merck</link:label>
    <link:label id="lab_cdxs_MerckMember_label_en-US" xlink:label="lab_cdxs_MerckMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Merck [Member]</link:label>
    <link:label id="lab_cdxs_MerckMember_documentation_en-US" xlink:label="lab_cdxs_MerckMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Merck [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember" xlink:href="cdxs-20231231.xsd#cdxs_MerckMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MerckMember" xlink:to="lab_cdxs_MerckMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShippingAndDistributionCost_a33add1a-2107-4110-8777-0c5f70b58f14_terseLabel_en-US" xlink:label="lab_cdxs_ShippingAndDistributionCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shipping and distribution cost</link:label>
    <link:label id="lab_cdxs_ShippingAndDistributionCost_label_en-US" xlink:label="lab_cdxs_ShippingAndDistributionCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shipping And Distribution Cost</link:label>
    <link:label id="lab_cdxs_ShippingAndDistributionCost_documentation_en-US" xlink:label="lab_cdxs_ShippingAndDistributionCost" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shipping And Distribution Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShippingAndDistributionCost" xlink:href="cdxs-20231231.xsd#cdxs_ShippingAndDistributionCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShippingAndDistributionCost" xlink:to="lab_cdxs_ShippingAndDistributionCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentTerm_234bf20d-7c8c-422d-bb10-1f06a2c727e9_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt instrument, term</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentTerm_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentTerm" xlink:to="lab_us-gaap_DebtInstrumentTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerSettlementFee_7191db85-4f24-4731-beaf-7b60f5d13eb2_terseLabel_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerSettlementFee" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from contract with customer, settlement fee</link:label>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerSettlementFee_label_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerSettlementFee" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue From Contract With Customer, Settlement Fee</link:label>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerSettlementFee_documentation_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerSettlementFee" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue From Contract With Customer, Settlement Fee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerSettlementFee" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromContractWithCustomerSettlementFee"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueFromContractWithCustomerSettlementFee" xlink:to="lab_cdxs_RevenueFromContractWithCustomerSettlementFee" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfStockIssuanceCosts_3d28e4ba-5081-4461-80d2-14db3e9fbd55_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfStockIssuanceCosts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Costs incurred in connection with offering</link:label>
    <link:label id="lab_us-gaap_PaymentsOfStockIssuanceCosts_label_en-US" xlink:label="lab_us-gaap_PaymentsOfStockIssuanceCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments of Stock Issuance Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfStockIssuanceCosts" xlink:to="lab_us-gaap_PaymentsOfStockIssuanceCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentNameDomain_23385b52-21d9-4eae-b889-12adb117ccc9_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentNameDomain_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentNameDomain" xlink:to="lab_us-gaap_DebtInstrumentNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_8d4ff0b8-ae3a-46d7-9bcf-e67bea0847e2_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax liability from undistributed foreign earnings</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Undistributed Foreign Earnings</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_13d8c5c8-e1d4-47e4-893e-eb1d017acaf5_terseLabel_en-US" xlink:label="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance obligations satisfied from new activities in the period - contract revenue</link:label>
    <link:label id="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_label_en-US" xlink:label="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition</link:label>
    <link:label id="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_documentation_en-US" xlink:label="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:href="cdxs-20231231.xsd#cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:to="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_131d7670-0205-452d-864f-76a29bacdaab_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis" xlink:to="lab_us-gaap_IncomeStatementLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_be6c3788-d042-4b52-903d-3b3b8c2d52e7_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]</link:label>
    <link:label id="lab_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_label_en-US" xlink:label="lab_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract" xlink:to="lab_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CreditLossFinancialInstrumentTextBlock_a733d1fc-7e7a-41ff-8241-8bab1f60e001_terseLabel_en-US" xlink:label="lab_us-gaap_CreditLossFinancialInstrumentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance for Credit Losses</link:label>
    <link:label id="lab_us-gaap_CreditLossFinancialInstrumentTextBlock_label_en-US" xlink:label="lab_us-gaap_CreditLossFinancialInstrumentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit Loss, Financial Instrument [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditLossFinancialInstrumentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditLossFinancialInstrumentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CreditLossFinancialInstrumentTextBlock" xlink:to="lab_us-gaap_CreditLossFinancialInstrumentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_04bad2c7-676e-4940-bb74-7fdc4f5e6d3f_terseLabel_en-US" xlink:label="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Technology Transfer and License Agreement</link:label>
    <link:label id="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_label_en-US" xlink:label="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Technology Transfer, Collaboration and License Agreement [Member]</link:label>
    <link:label id="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_documentation_en-US" xlink:label="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Technology Transfer, Collaboration and License Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_TechnologyTransferCollaborationandLicenseAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" xlink:to="lab_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_e19ddffb-2a85-4b88-96f6-9ea44b9ad1c6_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease Maturity</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerSalesMilestone_3e36ef40-d000-4308-a207-3a05ac9dc7db_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate commercial sales, milestone</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerSalesMilestone_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Sales Milestone</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerSalesMilestone_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Sales Milestone</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerSalesMilestone" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerSalesMilestone"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerSalesMilestone" xlink:to="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022PSUAnd2022PBOMember_8d89150a-4590-400c-929e-45de1b6d503b_terseLabel_en-US" xlink:label="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PSU And 2022 PBO</link:label>
    <link:label id="lab_cdxs_A2022PSUAnd2022PBOMember_label_en-US" xlink:label="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PSU And 2022 PBO [Member]</link:label>
    <link:label id="lab_cdxs_A2022PSUAnd2022PBOMember_documentation_en-US" xlink:label="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PSU And 2022 PBO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUAnd2022PBOMember" xlink:href="cdxs-20231231.xsd#cdxs_A2022PSUAnd2022PBOMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022PSUAnd2022PBOMember" xlink:to="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductsAndServicesDomain_8e7c604f-f7ef-4725-b5fa-1e4c3710d32b_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:label id="lab_srt_ProductsAndServicesDomain_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain" xlink:to="lab_srt_ProductsAndServicesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_label_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OtherPerfMeasureAmt" xlink:to="lab_ecd_OtherPerfMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_4c2fd7c7-c840-4e11-8173-11439b637c05_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reserves and accruals</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseCostTableTextBlock_5999870c-87c4-45e5-a776-660ae4eb6e8e_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseCostTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease Cost</link:label>
    <link:label id="lab_us-gaap_LeaseCostTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LeaseCostTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCostTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCostTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCostTableTextBlock" xlink:to="lab_us-gaap_LeaseCostTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_76660322-ce0b-4db3-9159-e54d3a77e58e_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_afa510c8-f3b6-4544-ade6-ce90423c9110_verboseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameDomain_07d41811-d9a7-4869-b32d-0231801b4e2e_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:label id="lab_us-gaap_PlanNameDomain_label_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameDomain" xlink:to="lab_us-gaap_PlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EnzymeProductMember_1d905492-b86b-4592-a150-c350c97ce381_terseLabel_en-US" xlink:label="lab_cdxs_EnzymeProductMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enzyme Product</link:label>
    <link:label id="lab_cdxs_EnzymeProductMember_label_en-US" xlink:label="lab_cdxs_EnzymeProductMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enzyme Product [Member]</link:label>
    <link:label id="lab_cdxs_EnzymeProductMember_documentation_en-US" xlink:label="lab_cdxs_EnzymeProductMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enzyme Product</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeProductMember" xlink:href="cdxs-20231231.xsd#cdxs_EnzymeProductMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EnzymeProductMember" xlink:to="lab_cdxs_EnzymeProductMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AssetImpairmentAndOtherCharges_45e75cd8-9d90-4770-a9f1-9e48bd5a3811_terseLabel_en-US" xlink:label="lab_cdxs_AssetImpairmentAndOtherCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset impairment and other charges</link:label>
    <link:label id="lab_cdxs_AssetImpairmentAndOtherCharges_label_en-US" xlink:label="lab_cdxs_AssetImpairmentAndOtherCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Impairment And Other Charges</link:label>
    <link:label id="lab_cdxs_AssetImpairmentAndOtherCharges_documentation_en-US" xlink:label="lab_cdxs_AssetImpairmentAndOtherCharges" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Impairment And Other Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetImpairmentAndOtherCharges" xlink:href="cdxs-20231231.xsd#cdxs_AssetImpairmentAndOtherCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AssetImpairmentAndOtherCharges" xlink:to="lab_cdxs_AssetImpairmentAndOtherCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_3d5ec833-d93d-4e2e-9c30-45faed74472f_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized compensation cost, awards other than options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid_8966aada-4ff3-4e24-a530-45e8a3ef7ea7_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capital expenditures incurred but not yet paid</link:label>
    <link:label id="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid_label_en-US" xlink:label="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capital Expenditures Incurred but Not yet Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:to="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_96b45853-efbd-4c05-b3be-ba4df4f4bb23_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NovelBiotherapeuticsMember_74b4d8ff-333f-46be-9664-f78e1b381cde_terseLabel_en-US" xlink:label="lab_cdxs_NovelBiotherapeuticsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Novel Biotherapeutics</link:label>
    <link:label id="lab_cdxs_NovelBiotherapeuticsMember_label_en-US" xlink:label="lab_cdxs_NovelBiotherapeuticsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Novel Biotherapeutics [Member]</link:label>
    <link:label id="lab_cdxs_NovelBiotherapeuticsMember_documentation_en-US" xlink:label="lab_cdxs_NovelBiotherapeuticsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Novel Biotherapeutics [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember" xlink:href="cdxs-20231231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NovelBiotherapeuticsMember" xlink:to="lab_cdxs_NovelBiotherapeuticsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_71a1cbc3-5d0f-42f0-b57b-cdcc8376644f_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted average remaining contractual terms</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrAxis_terseLabel_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement:</link:label>
    <link:label id="lab_ecd_TradingArrAxis_label_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrAxis" xlink:to="lab_ecd_TradingArrAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_21436bf1-0a1a-4bb1-b819-6f3a4c7e2bc9_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation, Performance Shares Award Outstanding Activity</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:to="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UseOfEstimates_2c7e0f2b-dbfb-44bd-a8c3-6a2ff1fd4da7_verboseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Use of Estimates</link:label>
    <link:label id="lab_us-gaap_UseOfEstimates_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UseOfEstimates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates" xlink:to="lab_us-gaap_UseOfEstimates" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFileNumber_96a66020-5bb2-4fb2-9d02-8eada660e5e7_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_label_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber" xlink:to="lab_dei_EntityFileNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingenciesTable_e856b983-639f-472c-8f3c-3651903bf31b_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingencies [Table]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesTable_label_en-US" xlink:label="lab_us-gaap_LossContingenciesTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss Contingencies [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesTable" xlink:to="lab_us-gaap_LossContingenciesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OtherInformationAbstract_6b14c8cb-1aed-40a6-986a-c0d83170f8cd_terseLabel_en-US" xlink:label="lab_cdxs_OtherInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other information:</link:label>
    <link:label id="lab_cdxs_OtherInformationAbstract_label_en-US" xlink:label="lab_cdxs_OtherInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Information [Abstract]</link:label>
    <link:label id="lab_cdxs_OtherInformationAbstract_documentation_en-US" xlink:label="lab_cdxs_OtherInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OtherInformationAbstract" xlink:href="cdxs-20231231.xsd#cdxs_OtherInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OtherInformationAbstract" xlink:to="lab_cdxs_OtherInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CapitalizedContractCostNetCurrent_dfff5549-a087-44e9-bb4d-b5a798e9302c_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract costs</link:label>
    <link:label id="lab_us-gaap_CapitalizedContractCostNetCurrent_label_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capitalized Contract Cost, Net, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalizedContractCostNetCurrent" xlink:to="lab_us-gaap_CapitalizedContractCostNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_a93a396a-a9c1-47c1-b3d7-c5f243a6bbe2_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_24512617-ced4-46af-84fa-566e0e40009c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-based Compensation, RSA Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_531e4399-47ee-44d2-9cc9-0e5895646977_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reductions to tax position of prior years</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorFirmId_093fca45-4f84-405e-ba22-abbc8f4563bd_terseLabel_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:label id="lab_dei_AuditorFirmId_label_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorFirmId"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorFirmId" xlink:to="lab_dei_AuditorFirmId" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityShellCompany_262fa049-795a-4726-a4b0-88e7571b1d75_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Shell Company</link:label>
    <link:label id="lab_dei_EntityShellCompany_label_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany" xlink:to="lab_dei_EntityShellCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_72ff8071-ffa6-4e66-b204-ec3572ff3adf_terseLabel_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Milestone payments received (in shares)</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_label_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_documentation_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:to="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDeterminationDate_terseLabel_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:label id="lab_ecd_RestatementDeterminationDate_label_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDeterminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDeterminationDate" xlink:to="lab_ecd_RestatementDeterminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_a3935849-e4f2-42e9-8ce9-636de25f08ee_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additions based on tax positions related to current year</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_0dcde4c7-cfa1-4d5a-94e3-d6ef48bd4a83_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable" xlink:to="lab_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:to="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8bfeef61-2176-4a50-996b-d5c1de9cbf39_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring and Related Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring and Related Costs [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_bb37e540-4dc5-4722-b569-86a57f3eb806_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, cash equivalents and restricted cash at the beginning of the year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c42e87a3-5708-4d83-a4cf-d03d58cbc856_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, cash equivalents and restricted cash at the end of the year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_bc4edf99-e9c7-40b6-8af2-a8a68f972c99_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total cash, cash equivalents and restricted cash at the end of the period</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VariableLeaseCost_ff854086-a217-4198-ad72-e693385cb096_terseLabel_en-US" xlink:label="lab_us-gaap_VariableLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable lease, cost</link:label>
    <link:label id="lab_us-gaap_VariableLeaseCost_label_en-US" xlink:label="lab_us-gaap_VariableLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VariableLeaseCost" xlink:to="lab_us-gaap_VariableLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AllowanceForCreditLossWriteOff_ee8c0476-2bcc-4875-a21b-edd668b07977_negatedTerseLabel_en-US" xlink:label="lab_cdxs_AllowanceForCreditLossWriteOff" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Write-offs</link:label>
    <link:label id="lab_cdxs_AllowanceForCreditLossWriteOff_label_en-US" xlink:label="lab_cdxs_AllowanceForCreditLossWriteOff" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance For Credit Loss, Write Off</link:label>
    <link:label id="lab_cdxs_AllowanceForCreditLossWriteOff_documentation_en-US" xlink:label="lab_cdxs_AllowanceForCreditLossWriteOff" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance For Credit Loss, Write Off</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForCreditLossWriteOff" xlink:href="cdxs-20231231.xsd#cdxs_AllowanceForCreditLossWriteOff"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AllowanceForCreditLossWriteOff" xlink:to="lab_cdxs_AllowanceForCreditLossWriteOff" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseCost_a3321744-4a77-4298-b42b-852109312f4f_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease cost</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseCost_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseCost" xlink:to="lab_us-gaap_OperatingLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_ebd4bb1b-fa5b-4c92-9df5-50af45ebe508_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of Long-Lived Assets</link:label>
    <link:label id="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:to="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A501ChesapeakeMember_ebb8fee8-62cb-4188-8b9b-40de8a5c928b_terseLabel_en-US" xlink:label="lab_cdxs_A501ChesapeakeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">501 Chesapeake</link:label>
    <link:label id="lab_cdxs_A501ChesapeakeMember_label_en-US" xlink:label="lab_cdxs_A501ChesapeakeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">501 Chesapeake [Member]</link:label>
    <link:label id="lab_cdxs_A501ChesapeakeMember_documentation_en-US" xlink:label="lab_cdxs_A501ChesapeakeMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">501 Chesapeake</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A501ChesapeakeMember" xlink:href="cdxs-20231231.xsd#cdxs_A501ChesapeakeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A501ChesapeakeMember" xlink:to="lab_cdxs_A501ChesapeakeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_af4163c3-3eab-471a-affe-71ca078f8e40_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued" xlink:to="lab_us-gaap_CommonStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_2b87abf0-b797-42ef-b6f6-8249d7b9e991_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vested (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_b2b9088a-f68b-4a6e-bfbd-301886693f5f_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and development credits</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:to="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_5bbee183-5416-451a-a034-a7127997a215_terseLabel_en-US" xlink:label="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from public offering</link:label>
    <link:label id="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_label_en-US" xlink:label="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of Stock, Consideration Received on Transaction</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockConsiderationReceivedOnTransaction"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:to="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_a50b5703-9e86-493b-b1ae-f9fcd2014f0e_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted-average remaining amortization period</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_StrategicCollaborationAgreementMember_82fb6adb-422a-4d1f-954a-f48ef390cea3_terseLabel_en-US" xlink:label="lab_cdxs_StrategicCollaborationAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Strategic Collaboration Agreement</link:label>
    <link:label id="lab_cdxs_StrategicCollaborationAgreementMember_label_en-US" xlink:label="lab_cdxs_StrategicCollaborationAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Strategic Collaboration Agreement [Member]</link:label>
    <link:label id="lab_cdxs_StrategicCollaborationAgreementMember_documentation_en-US" xlink:label="lab_cdxs_StrategicCollaborationAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Strategic Collaboration Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_StrategicCollaborationAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_StrategicCollaborationAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_StrategicCollaborationAgreementMember" xlink:to="lab_cdxs_StrategicCollaborationAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShortTermLeaseCost_b67123c7-f0cd-438c-8bfe-8aa3d4a94b9d_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-term lease costs</link:label>
    <link:label id="lab_us-gaap_ShortTermLeaseCost_label_en-US" xlink:label="lab_us-gaap_ShortTermLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-Term Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermLeaseCost" xlink:to="lab_us-gaap_ShortTermLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DomesticCountryMember_37f56a8d-3f2b-4e64-b326-03c4a5dcb576_terseLabel_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_DomesticCountryMember_label_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DomesticCountryMember" xlink:to="lab_us-gaap_DomesticCountryMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_d0b7e8e1-1f6d-44eb-9ce3-ee303a353b1b_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity instruments other than options, aggregate intrinsic value, vested</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_22791d05-4702-4831-b781-97ecec5e3ce1_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1" xlink:to="lab_dei_EntityAddressAddressLine1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_1f02399c-a9ba-4661-923c-4bd93fd8115f_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_label_en-US" xlink:label="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:to="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTable_55bba313-f451-4837-bc30-c8229c7e772c_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTable_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTable" xlink:to="lab_us-gaap_SubsequentEventTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_fcf35a75-fdaa-428b-bf67-c0d22251ca05_terseLabel_en-US" xlink:label="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of Deferred Tax Assets and Liabilities [Abstract]</link:label>
    <link:label id="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of Deferred Tax Assets and Liabilities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_40ab7b07-4ee4-44ed-bd17-2f0fffd8f4db_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Exercise Price Per Share</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventMember_8d365637-1e3d-40b8-947e-0fe00a1c4ab2_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event</link:label>
    <link:label id="lab_us-gaap_SubsequentEventMember_label_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventMember" xlink:to="lab_us-gaap_SubsequentEventMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLossCarryforwards_c6b4fdbf-853b-455d-a79b-c0ff069d6c66_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net operating losses, amount</link:label>
    <link:label id="lab_us-gaap_OperatingLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLossCarryforwards" xlink:to="lab_us-gaap_OperatingLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_537d2f37-683f-4fda-aa03-e8f8fc5d6540_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest and penalties recognized on the balance sheet</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MAIAgreementMember_035445a7-8e30-469c-865b-fcdc5a70938b_terseLabel_en-US" xlink:label="lab_cdxs_MAIAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MAI Agreement</link:label>
    <link:label id="lab_cdxs_MAIAgreementMember_label_en-US" xlink:label="lab_cdxs_MAIAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MAI Agreement [Member]</link:label>
    <link:label id="lab_cdxs_MAIAgreementMember_documentation_en-US" xlink:label="lab_cdxs_MAIAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MAI Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MAIAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_MAIAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MAIAgreementMember" xlink:to="lab_cdxs_MAIAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsDeferredIncome_8c8dbac5-c1c5-475b-8f4d-6ad5b30964af_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenues</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsDeferredIncome_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Deferred Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsDeferredIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:to="lab_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentOwnedBalanceShares_af962f0c-6f94-4138-963c-8900d32770cf_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentOwnedBalanceShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment owned, balance (in shares)</link:label>
    <link:label id="lab_us-gaap_InvestmentOwnedBalanceShares_label_en-US" xlink:label="lab_us-gaap_InvestmentOwnedBalanceShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Owned, Balance, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentOwnedBalanceShares" xlink:to="lab_us-gaap_InvestmentOwnedBalanceShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_9fa8281b-a7ac-4699-9dea-0270011b9ecb_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract" xlink:to="lab_us-gaap_IncomeStatementAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermLoanMember_df56cfc1-136b-4f27-8966-366ae9a9a264_terseLabel_en-US" xlink:label="lab_cdxs_TermLoanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loan</link:label>
    <link:label id="lab_cdxs_TermLoanMember_label_en-US" xlink:label="lab_cdxs_TermLoanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:label id="lab_cdxs_TermLoanMember_documentation_en-US" xlink:label="lab_cdxs_TermLoanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember" xlink:href="cdxs-20231231.xsd#cdxs_TermLoanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermLoanMember" xlink:to="lab_cdxs_TermLoanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentTable_674813b3-b885-4bea-90b4-7cbf12d9bc68_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term Purchase Commitment [Table]</link:label>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentTable_label_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Term Purchase Commitment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermPurchaseCommitmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable" xlink:to="lab_us-gaap_LongTermPurchaseCommitmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues_5365a91e-2dca-4897-8295-b9af5f7bfd76_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Issuance of common stock, net of issuance costs (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Issued During Period, Shares, New Issues</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NumberOfBusinessSegments_ffd4536e-9aa2-4d33-9232-1906261fbcb6_terseLabel_en-US" xlink:label="lab_cdxs_NumberOfBusinessSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of business segments</link:label>
    <link:label id="lab_cdxs_NumberOfBusinessSegments_label_en-US" xlink:label="lab_cdxs_NumberOfBusinessSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number Of Business Segments</link:label>
    <link:label id="lab_cdxs_NumberOfBusinessSegments_documentation_en-US" xlink:label="lab_cdxs_NumberOfBusinessSegments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number Of Business Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfBusinessSegments" xlink:href="cdxs-20231231.xsd#cdxs_NumberOfBusinessSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NumberOfBusinessSegments" xlink:to="lab_cdxs_NumberOfBusinessSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:to="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure_67cb0ac5-021f-4a37-a1a1-bcf0c6cac6e0_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money market funds</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure_3a51da4b-e3bc-4d31-b115-ebeab22897bf_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Fair Value</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:to="lab_us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCommitmentDueInNextTwelveMonths_129a8105-8f36-4b45-8e59-560e53ca66f3_terseLabel_en-US" xlink:label="lab_us-gaap_OtherCommitmentDueInNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2024</link:label>
    <link:label id="lab_us-gaap_OtherCommitmentDueInNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_OtherCommitmentDueInNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitment, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths" xlink:to="lab_us-gaap_OtherCommitmentDueInNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsCurrent_873d2a05-5051-43df-8401-4d9352fae748_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other assets, current</link:label>
    <link:label id="lab_us-gaap_OtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsCurrent" xlink:to="lab_us-gaap_OtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_624dc85f-bf5d-414c-936a-580f537f4af0_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, write-off due to lease modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_e2729c60-dd87-4035-8a13-619ab9e99be3_negatedTerseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Remeasurement due to lease modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_label_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Write-off Due To Lease Modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Write-off Due To Lease Modification</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:to="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_200cf72d-1c88-49cb-9038-5deefad609a0_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_label_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockLineItems" xlink:to="lab_us-gaap_ClassOfStockLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_bed2250f-32c8-49e7-89ea-d522722f2d75_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax benefit at federal statutory rate</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1_ac6d5972-3ac9-4481-a31d-5827d78db980_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease renewal term</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Lease Not yet Commenced, Renewal Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1" xlink:to="lab_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCommitmentsDomain_7b63af65-45c1-4693-a52d-b7a770d0998f_terseLabel_en-US" xlink:label="lab_us-gaap_OtherCommitmentsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitments [Domain]</link:label>
    <link:label id="lab_us-gaap_OtherCommitmentsDomain_label_en-US" xlink:label="lab_us-gaap_OtherCommitmentsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCommitmentsDomain" xlink:to="lab_us-gaap_OtherCommitmentsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNet_26faa363-7edf-449c-9acb-731f7eee5e22_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_c92fe88a-ab69-4c48-bec3-0125bd68a40b_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_label_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet" xlink:to="lab_us-gaap_InventoryNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_9303f40e-3c54-48ac-88db-e587962eff78_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising</link:label>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising Cost [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnAmt" xlink:to="lab_ecd_TotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_673b5d43-3ee0-471b-99cb-0980d23476e6_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding" xlink:to="lab_dei_EntityCommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment To PEO Compensation, Footnote</link:label>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment To PEO Compensation, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToPeoCompFnTextBlock" xlink:to="lab_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_ff477846-7f15-4484-bf19-5eccee734a01_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Foreign Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentDomain_ae473782-91a8-47f2-bd0d-c0acb697ec1b_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segments [Domain]</link:label>
    <link:label id="lab_us-gaap_SegmentDomain_label_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentDomain" xlink:to="lab_us-gaap_SegmentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_c7a09010-b8f2-4e1b-84f6-2957e6a760b2_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TateLyleMember_2a73b306-2af9-4eb4-92d5-a4f38bd3536a_terseLabel_en-US" xlink:label="lab_cdxs_TateLyleMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tate &amp; Lyle</link:label>
    <link:label id="lab_cdxs_TateLyleMember_label_en-US" xlink:label="lab_cdxs_TateLyleMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tate &amp; Lyle [Member]</link:label>
    <link:label id="lab_cdxs_TateLyleMember_documentation_en-US" xlink:label="lab_cdxs_TateLyleMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tate &amp; Lyle [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TateLyleMember" xlink:href="cdxs-20231231.xsd#cdxs_TateLyleMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TateLyleMember" xlink:to="lab_cdxs_TateLyleMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_e3a640dd-df79-4166-ac0a-521c987d0550_verboseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated deficit</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_4d7a003b-ff4b-4d49-b9be-0aae82ee12b5_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other (in shares)</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentFaceAmount_70757f98-1898-452d-bf95-ac5569c103c5_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentFaceAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt instrument, face amount</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentFaceAmount_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentFaceAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Face Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentFaceAmount" xlink:to="lab_us-gaap_DebtInstrumentFaceAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment_fac4928e-d5e3-48c3-911e-6aac802f54f1_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue recognition, number of annual payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Number Of Annual Payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Number Of Annual Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionNumberOfAnnualPayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:to="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_d9b40be6-9a93-456d-8b0c-fe92209f0a86_verboseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current assets:</link:label>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract" xlink:to="lab_us-gaap_AssetsCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCommitmentsLineItems_b5f73a5c-66cd-4696-8b8b-fcfe807905d6_terseLabel_en-US" xlink:label="lab_us-gaap_OtherCommitmentsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitments [Line Items]</link:label>
    <link:label id="lab_us-gaap_OtherCommitmentsLineItems_label_en-US" xlink:label="lab_us-gaap_OtherCommitmentsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitments [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCommitmentsLineItems" xlink:to="lab_us-gaap_OtherCommitmentsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AccountingPoliciesLineItems_bc556866-f4f9-47bd-85dd-47fa2e5568b4_terseLabel_en-US" xlink:label="lab_cdxs_AccountingPoliciesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Line Items]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesLineItems_label_en-US" xlink:label="lab_cdxs_AccountingPoliciesLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Line Items]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesLineItems_documentation_en-US" xlink:label="lab_cdxs_AccountingPoliciesLineItems" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesLineItems" xlink:href="cdxs-20231231.xsd#cdxs_AccountingPoliciesLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AccountingPoliciesLineItems" xlink:to="lab_cdxs_AccountingPoliciesLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressStateOrProvince_40a581a6-7187-45da-accd-65eff23ef7e4_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince" xlink:to="lab_dei_EntityAddressStateOrProvince" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_158392c0-bf01-4bd3-8d14-f0bda1530d60_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_996a06b4-bcb8-471a-bcbc-9abe2bd889c3_verboseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfStockDomain_4d2bf0aa-e319-4224-9e14-9f6129c74aad_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Domain]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockDomain_label_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockDomain" xlink:to="lab_us-gaap_ClassOfStockDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_b1e02386-330f-4559-8bb8-f92e7851cc2c_terseLabel_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Domain]</link:label>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_label_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_NameOfMajorCustomerDomain" xlink:to="lab_srt_NameOfMajorCustomerDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_2eedae24-9c39-46a4-a7fc-efe93fc445be_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Inventory Components</link:label>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_c679f34a-7ece-423a-9406-4157362f4b42_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_6ff8b9e7-fbfc-4b77-8a78-80297c233552_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_32c48b69-9abf-455f-95fc-f0a0c3cbfcaa_terseLabel_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name of Property [Domain]</link:label>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_label_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name of Property [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:to="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_0a9985c5-54dd-4876-b857-45dd7f2b31e6_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease obligations</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_743fed99-548f-4e1b-add0-8c3d92db5c4b_periodStartLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance, lease obligations - operating leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_cd8110f8-408f-4688-9f25-5504c9cf1c5b_periodEndLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Ending balance, lease obligations - operating leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability" xlink:to="lab_us-gaap_OperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Vs Peer Group</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Vs Peer Group [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:to="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_6d804235-9ad9-4239-a813-f14f8091d1e0_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_9753817a-a3f0-4636-9c7f-ca375358cd6d_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with customer, liability, portion of retainer fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Portion Of Retainer Fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Portion Of Retainer Fee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:to="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VestingDomain_b55f632b-fa2c-4d52-b2c0-8bd44d108453_terseLabel_en-US" xlink:label="lab_us-gaap_VestingDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vesting [Domain]</link:label>
    <link:label id="lab_us-gaap_VestingDomain_label_en-US" xlink:label="lab_us-gaap_VestingDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vesting [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VestingDomain" xlink:to="lab_us-gaap_VestingDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_cf9d1f64-9769-44be-ad66-92bbf5b86756_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_AggtErrCompAmt_label_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompAmt" xlink:to="lab_ecd_AggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_5ccb0d73-e71a-4ef3-a36b-63c03626d8ef_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_7bd5c241-e833-4579-a433-c6f747a3f700_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Defined contribution plan, cost</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_terseLabel_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Executive Categories</link:label>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_label_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Executive Categories [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="lab_ecd_AllExecutiveCategoriesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent_f5258357-c049-4409-9582-5d5751a5abc8_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue, net of current portion</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2019AmendedPlanMember_18c1647c-e505-4f6e-b36a-bd6a07436274_terseLabel_en-US" xlink:label="lab_cdxs_A2019AmendedPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2019 Amended Plan</link:label>
    <link:label id="lab_cdxs_A2019AmendedPlanMember_label_en-US" xlink:label="lab_cdxs_A2019AmendedPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2019 Amended Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2019AmendedPlanMember_documentation_en-US" xlink:label="lab_cdxs_A2019AmendedPlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2019 Amended Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019AmendedPlanMember" xlink:href="cdxs-20231231.xsd#cdxs_A2019AmendedPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2019AmendedPlanMember" xlink:to="lab_cdxs_A2019AmendedPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_668c3271-dbaa-4427-a414-5b25fec3e3e2_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash and Cash Equivalents [Axis]</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash and Cash Equivalents [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms_5b5c6386-c4a9-4f74-82ab-9becd0c95bc2_terseLabel_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment terms</link:label>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms_label_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue From Contract With Customer, Payment Terms</link:label>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms_documentation_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue From Contract With Customer, Payment Terms</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromContractWithCustomerPaymentTerms"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:to="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameAxis_11445c8b-6eaf-4522-ac89-f58b00e7e4ba_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:label id="lab_us-gaap_PlanNameAxis_label_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameAxis" xlink:to="lab_us-gaap_PlanNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_49f4bd5d-0f6f-447b-811e-4f8b4ee5ab1b_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued professional and outside service fees</link:label>
    <link:label id="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_label_en-US" xlink:label="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Professional Fees</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:to="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_628c6f67-1f28-424e-832c-0ef48e58e369_terseLabel_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled Receivable</link:label>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_label_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trade and Other Accounts Receivable, Unbilled Receivables, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:to="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_f063d746-4903-47a3-ba07-c83781e5a287_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of reportable segments</link:label>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_label_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfReportableSegments" xlink:to="lab_us-gaap_NumberOfReportableSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_39ed0edb-d654-490b-91bf-c8248aaa51ca_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract" xlink:to="lab_us-gaap_EarningsPerShareAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockValue_3518c86b-7ca0-4b77-b903-474115bff05e_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, $0.0001 par value per share; 200,000 shares authorized; 69,905 and 65,811 shares issued and outstanding at December&#160;31, 2023 and December&#160;31, 2022, respectively</link:label>
    <link:label id="lab_us-gaap_CommonStockValue_label_en-US" xlink:label="lab_us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Value, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValue" xlink:to="lab_us-gaap_CommonStockValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_3f860a21-894d-4b4c-b3ec-83430f5d208b_terseLabel_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_label_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_fb282f87-1949-45a8-8a06-69e09612602a_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortization expense - right-of-use assets - operating and finance leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_73b39dc7-fe69-49da-ac55-7d51fc1ffe50_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortization of right-of-use assets</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-of-Use Asset, Periodic Reduction</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_529fd014-66db-41b3-bfb5-543492545976_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:to="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_c546a618-d5a9-4c0e-b427-5856beb13259_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred benefit:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_df9b7aeb-56b2-495e-adc4-b2e639040e3d_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Long-lived Assets by Geographical Area</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:to="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_e6133163-88e8-46ef-ac47-b7ec2417acf0_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCash_71c80e2f-cfad-4aad-9e6e-4abea4e4563e_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted cash, current</link:label>
    <link:label id="lab_us-gaap_RestrictedCash_label_en-US" xlink:label="lab_us-gaap_RestrictedCash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCash" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCash" xlink:to="lab_us-gaap_RestrictedCash" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllIndividualsMember_terseLabel_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Individuals</link:label>
    <link:label id="lab_ecd_AllIndividualsMember_label_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Individuals [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="lab_ecd_AllIndividualsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_3ed4c97c-f008-4b77-9c12-2625d98ac296_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other income (expense), net ($0, $208 and $983 from a related party)</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_97125986-c55c-46c5-a171-61d539724d72_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other income (expense), net</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Nonoperating Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFilerCategory_46069088-b645-486f-8e83-a60f95b73ed4_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Filer Category</link:label>
    <link:label id="lab_dei_EntityFilerCategory_label_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory" xlink:to="lab_dei_EntityFilerCategory" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:to="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementTable_bd9bc11b-ba4f-436d-9c58-3734f33ac5bf_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Table]</link:label>
    <link:label id="lab_us-gaap_StatementTable_label_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable" xlink:to="lab_us-gaap_StatementTable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_6622ed55-5999-4ea7-826c-38e6f12959b9_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate" xlink:to="lab_dei_CurrentFiscalYearEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_04c4db95-ee1c-43d6-9334-1575dfd6a309_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Provision for Income Taxes Calculated at the Statutory Rate to Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ArzedaMember_cea0cb09-9ccc-4209-b056-46edeacec748_terseLabel_en-US" xlink:label="lab_cdxs_ArzedaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Arzeda</link:label>
    <link:label id="lab_cdxs_ArzedaMember_label_en-US" xlink:label="lab_cdxs_ArzedaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Arzeda [Member]</link:label>
    <link:label id="lab_cdxs_ArzedaMember_documentation_en-US" xlink:label="lab_cdxs_ArzedaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Arzeda</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ArzedaMember" xlink:to="lab_cdxs_ArzedaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_1d81ab8c-b610-4eed-96d3-975d2d78f239_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at beginning of year</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_af840b60-55ea-49e0-a145-73c05614d5e5_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at end of year</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_51d0b28d-a0af-42ec-a177-f045ed6ff1dc_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoName_terseLabel_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Name</link:label>
    <link:label id="lab_ecd_PeoName_label_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoName" xlink:to="lab_ecd_PeoName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_187fe989-b8df-40fe-9aa7-64ea1a7b2402_terseLabel_en-US" xlink:label="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncash or part noncash acquisition, noncash financial or equity instrument consideration, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_label_en-US" xlink:label="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncash or Part Noncash Acquisition, Noncash Financial or Equity Instrument Consideration, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:to="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AsiaPacificMember_a996d707-1c65-496c-b150-e43653c3b388_terseLabel_en-US" xlink:label="lab_srt_AsiaPacificMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">APAC</link:label>
    <link:label id="lab_srt_AsiaPacificMember_label_en-US" xlink:label="lab_srt_AsiaPacificMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asia Pacific [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AsiaPacificMember" xlink:to="lab_srt_AsiaPacificMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_8d2194c6-3c4e-447c-9707-a842dc80e39d_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashCurrent_1882b8ec-eabc-4356-8811-b8213b3a7ace_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current restricted cash</link:label>
    <link:label id="lab_us-gaap_RestrictedCashCurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Cash, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashCurrent" xlink:to="lab_us-gaap_RestrictedCashCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_89908efb-e4ef-42a6-bfa4-94cb09d72d64_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_059d5787-9b8a-4a6c-b1bc-52ee11f25991_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesOutstanding" xlink:to="lab_us-gaap_PreferredStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_f3e1843a-dd7a-4b86-97e5-4284de04144c_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credits</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_c443af95-16a4-48c9-8ef3-8d2bdea57303_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_57b15380-9495-4f7d-8216-d62ea747c8d9_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Line Items]</link:label>
    <link:label id="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_label_en-US" xlink:label="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems" xlink:to="lab_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_17631597-51e9-4f15-8151-72d5d3ce4507_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, maximum employee subscription amount</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_289083bc-2d0f-44ae-ac9d-15c3ff25c962_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment in non-marketable securities ($0, $0, and ($7,630) in a related party)</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_72bd4fc6-2321-4abc-a608-c422ce69a4b1_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments in non-marketable securities</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_f49a715f-1959-4038-a1d4-adfe30867fd8_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments in non-marketable securities</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments to Acquire Other Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireOtherInvestments" xlink:to="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NatureOfOperations_ba2f8576-7136-463c-8049-4483cb03e080_verboseLabel_en-US" xlink:label="lab_us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Description of Business</link:label>
    <link:label id="lab_us-gaap_NatureOfOperations_label_en-US" xlink:label="lab_us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nature of Operations [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NatureOfOperations" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NatureOfOperations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NatureOfOperations" xlink:to="lab_us-gaap_NatureOfOperations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage_dfa1fa2d-f3f6-4950-a132-1e0aff77052f_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest rate, stated percentage</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Instrument, Interest Rate, Stated Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:to="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_3aca2af6-459a-41e1-a1ec-750e6d90b16f_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TwoCustomersMember_51d50558-508e-4088-af77-65fd067ea5f2_terseLabel_en-US" xlink:label="lab_cdxs_TwoCustomersMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Two Customers</link:label>
    <link:label id="lab_cdxs_TwoCustomersMember_label_en-US" xlink:label="lab_cdxs_TwoCustomersMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Two Customers [Member]</link:label>
    <link:label id="lab_cdxs_TwoCustomersMember_documentation_en-US" xlink:label="lab_cdxs_TwoCustomersMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Two Customers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TwoCustomersMember" xlink:href="cdxs-20231231.xsd#cdxs_TwoCustomersMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TwoCustomersMember" xlink:to="lab_cdxs_TwoCustomersMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquity_a45882b4-c0d3-42d3-8e0c-a0e6d35dfe67_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total stockholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_966658f5-115a-4e3e-9d80-87a6dfbe3fdf_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at beginning of period</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_cb501ec2-0e6a-48fb-b758-87ce7757c102_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance at end of period</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity" xlink:to="lab_us-gaap_StockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_c822f980-1013-4337-97c6-7f91c55cfd52_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized tax benefits that would impact effective tax rate</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockMember_fcf9fee1-7590-4918-9778-676972823619_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_67847c52-164a-4703-8c5b-9c0039ba9389_verboseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">RSAs</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockMember" xlink:to="lab_us-gaap_RestrictedStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_d9a884da-5934-46ae-9823-d4aa5245e0fa_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity securities without readily determinable fair value, upward price adjustment, annual amount</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value, Upward Price Adjustment, Annual Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_a480e274-aa20-46c5-ab5b-f2c186806075_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable" xlink:to="lab_us-gaap_ScheduleOfStockByClassTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_430d6340-39d8-4d50-9ab6-b62095f7841f_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_387ef69b-ba44-4816-93dc-67fdba7ded9e_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expected life (years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_4e4e5f50-73de-4503-ace4-ab471c10d8e8_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsAbstract" xlink:to="lab_us-gaap_SubsequentEventsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_2f58d38f-24b3-4abf-b350-b31f918b2c58_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss before income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_506cc63c-dc65-472c-94fa-ad03fbc77dcd_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale of stock, commissions, percentage of gross sales price</link:label>
    <link:label id="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_label_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Commissions, Percentage Of Gross Sales Price</link:label>
    <link:label id="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sale Of Stock, Commissions, Percentage Of Gross Sales Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" xlink:to="lab_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledContractsReceivable_a06e4776-efb2-4c43-a4bd-271a77ccf68c_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledContractsReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled receivables</link:label>
    <link:label id="lab_us-gaap_UnbilledContractsReceivable_label_en-US" xlink:label="lab_us-gaap_UnbilledContractsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled Contracts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledContractsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledContractsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledContractsReceivable" xlink:to="lab_us-gaap_UnbilledContractsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward_ca2f27e7-c24b-47bb-a364-0d482572d4ec_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-of-Use Asset [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward_label_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-of-Use Asset [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseRightOfUseAssetRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:to="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_FinancialReceivablesPastDueMember_3af97550-1692-45fb-a4ed-605f4a401b96_terseLabel_en-US" xlink:label="lab_cdxs_FinancialReceivablesPastDueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total over 31 Days</link:label>
    <link:label id="lab_cdxs_FinancialReceivablesPastDueMember_label_en-US" xlink:label="lab_cdxs_FinancialReceivablesPastDueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Receivables Past Due [Member]</link:label>
    <link:label id="lab_cdxs_FinancialReceivablesPastDueMember_documentation_en-US" xlink:label="lab_cdxs_FinancialReceivablesPastDueMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Receivables Past Due</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinancialReceivablesPastDueMember" xlink:href="cdxs-20231231.xsd#cdxs_FinancialReceivablesPastDueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_FinancialReceivablesPastDueMember" xlink:to="lab_cdxs_FinancialReceivablesPastDueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_3e80cc61-1623-4159-9f01-6d4212207699_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_c17601cf-e0e6-49f8-91e2-ad4940be2ebe_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Level 2</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member" xlink:to="lab_us-gaap_FairValueInputsLevel2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_299dadb4-b6cc-4725-8b15-33687ecb4846_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, consecutive offering period</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:to="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022PSUMember_b66329db-22f5-480f-82e2-15de97aab9af_terseLabel_en-US" xlink:label="lab_cdxs_A2022PSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PSU</link:label>
    <link:label id="lab_cdxs_A2022PSUMember_label_en-US" xlink:label="lab_cdxs_A2022PSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PSU [Member]</link:label>
    <link:label id="lab_cdxs_A2022PSUMember_documentation_en-US" xlink:label="lab_cdxs_A2022PSUMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PSU</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUMember" xlink:href="cdxs-20231231.xsd#cdxs_A2022PSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022PSUMember" xlink:to="lab_cdxs_A2022PSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9e5a19c7-8206-4dde-9c92-6fd87a5c7537_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Named Executive Officers, Footnote</link:label>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_label_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Named Executive Officers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:to="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementEmployeeMember_3c5325c1-c203-4880-8555-95b474315f4b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee</link:label>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementEmployeeMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Employee [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementEmployeeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:to="lab_us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_4636ee16-39cf-4278-a22b-dbd54d4c7132_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus" xlink:to="lab_dei_DocumentFiscalPeriodFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_7ae7ff9a-44cc-43c5-a7e8-494a1e48bb4b_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockCompensationPlanMember_de9598df-be72-4666-8b74-0f5a53cec2f7_terseLabel_en-US" xlink:label="lab_us-gaap_StockCompensationPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares issuable under the Equity Incentive Plans and ESPP</link:label>
    <link:label id="lab_us-gaap_StockCompensationPlanMember_label_en-US" xlink:label="lab_us-gaap_StockCompensationPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockCompensationPlanMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockCompensationPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockCompensationPlanMember" xlink:to="lab_us-gaap_StockCompensationPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_6af4fc00-4985-4cbd-b9ba-4f0bfac70af6_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding, beginning of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_33cab19c-3652-4983-bae6-4df91f6c3d7d_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding, end of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensation_d417fdb8-af18-4655-aa59-0a103064cd82_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensation_52f578e5-a2c7-4be7-89df-0ab40f180d23_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Noncash Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensation" xlink:to="lab_us-gaap_ShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LongTermUnbilledReceivablesMember_0e48365f-ec69-4c99-a2c1-14625350e2c4_terseLabel_en-US" xlink:label="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Term Unbilled Receivables</link:label>
    <link:label id="lab_cdxs_LongTermUnbilledReceivablesMember_label_en-US" xlink:label="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Term Unbilled Receivables [Member]</link:label>
    <link:label id="lab_cdxs_LongTermUnbilledReceivablesMember_documentation_en-US" xlink:label="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Term Unbilled Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LongTermUnbilledReceivablesMember" xlink:href="cdxs-20231231.xsd#cdxs_LongTermUnbilledReceivablesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LongTermUnbilledReceivablesMember" xlink:to="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_456813ed-d770-4ba4-9cdc-ea9fd71fb7c8_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_label_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode" xlink:to="lab_dei_CityAreaCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivablesPeriodPastDueDomain_ce3d5814-88e4-461b-82b2-0957164b2019_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivablesPeriodPastDueDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, Period Past Due [Domain]</link:label>
    <link:label id="lab_us-gaap_FinancingReceivablesPeriodPastDueDomain_label_en-US" xlink:label="lab_us-gaap_FinancingReceivablesPeriodPastDueDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, Aging [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain" xlink:to="lab_us-gaap_FinancingReceivablesPeriodPastDueDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_76a83a91-7154-4b6a-bf5e-ac05cbc2c828_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Loss per Share</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock" xlink:to="lab_us-gaap_EarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductOrServiceAxis_8eecd9f2-1524-4a86-9dea-e3ee14209764_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:label id="lab_srt_ProductOrServiceAxis_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis" xlink:to="lab_srt_ProductOrServiceAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PortonMember_6bf28252-494e-40f5-b715-db095872408b_terseLabel_en-US" xlink:label="lab_cdxs_PortonMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Porton</link:label>
    <link:label id="lab_cdxs_PortonMember_label_en-US" xlink:label="lab_cdxs_PortonMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Porton [Member]</link:label>
    <link:label id="lab_cdxs_PortonMember_documentation_en-US" xlink:label="lab_cdxs_PortonMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Porton [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PortonMember" xlink:href="cdxs-20231231.xsd#cdxs_PortonMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PortonMember" xlink:to="lab_cdxs_PortonMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalYearFocus_cf225395-0563-4422-b0ed-b234fbd48c7c_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalYearFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus" xlink:to="lab_dei_DocumentFiscalYearFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_SegmentGeographicalDomain_05a28c0e-07de-4af5-9609-60366d477cd9_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:label id="lab_srt_SegmentGeographicalDomain_label_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_SegmentGeographicalDomain" xlink:to="lab_srt_SegmentGeographicalDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReceivablesAbstract_label_en-US" xlink:label="lab_us-gaap_ReceivablesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivables [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivablesAbstract" xlink:to="lab_us-gaap_ReceivablesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_e50f6682-8dca-495e-ba1f-640ade5684f0_verboseLabel_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basis of Presentation and Summary of Significant Accounting Policies</link:label>
    <link:label id="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_label_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Organization, Consolidation, Basis of Presentation, Business Description and Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:to="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_5f740bd5-4567-4f9f-8473-ac1b3cfc98c5_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-based Compensation, Stock Options, Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardExrcPrice_terseLabel_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercise Price</link:label>
    <link:label id="lab_ecd_AwardExrcPrice_label_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardExrcPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardExrcPrice" xlink:to="lab_ecd_AwardExrcPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TakedaPharmaceuticalCoLtdMember_38f8fd7f-a86a-4629-94ab-59c647ddcaf0_terseLabel_en-US" xlink:label="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Takeda</link:label>
    <link:label id="lab_cdxs_TakedaPharmaceuticalCoLtdMember_label_en-US" xlink:label="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Takeda Pharmaceutical Co. Ltd. [Member]</link:label>
    <link:label id="lab_cdxs_TakedaPharmaceuticalCoLtdMember_documentation_en-US" xlink:label="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Takeda Pharmaceutical Co. Ltd.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:href="cdxs-20231231.xsd#cdxs_TakedaPharmaceuticalCoLtdMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:to="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentLineItems_15e66969-469c-48e2-b8db-66d3c8d31de4_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term Purchase Commitment [Line Items]</link:label>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentLineItems_label_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Term Purchase Commitment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermPurchaseCommitmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:to="lab_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_5db18934-f974-471d-b907-40f69f254251_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes Paid, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaidNet" xlink:to="lab_us-gaap_IncomeTaxesPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_07b9eac8-8768-4c9d-b076-f053ba0cc2e9_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Financial Instruments Measured at Fair Value on a Recurring Basis</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:to="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A400PenoscotMember_afa9eee6-39a9-4a2d-aab4-e80a0fec613c_terseLabel_en-US" xlink:label="lab_cdxs_A400PenoscotMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">400 Penoscot</link:label>
    <link:label id="lab_cdxs_A400PenoscotMember_label_en-US" xlink:label="lab_cdxs_A400PenoscotMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">400 Penoscot [Member]</link:label>
    <link:label id="lab_cdxs_A400PenoscotMember_documentation_en-US" xlink:label="lab_cdxs_A400PenoscotMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">400 Penoscot</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A400PenoscotMember" xlink:href="cdxs-20231231.xsd#cdxs_A400PenoscotMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A400PenoscotMember" xlink:to="lab_cdxs_A400PenoscotMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ComputerEquipmentAndSoftwareMember_b36deb0b-5f7a-4974-8282-bd699d211d36_terseLabel_en-US" xlink:label="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer equipment and software</link:label>
    <link:label id="lab_cdxs_ComputerEquipmentAndSoftwareMember_label_en-US" xlink:label="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Equipment and Software [Member]</link:label>
    <link:label id="lab_cdxs_ComputerEquipmentAndSoftwareMember_documentation_en-US" xlink:label="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Equipment and Software [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember" xlink:href="cdxs-20231231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ComputerEquipmentAndSoftwareMember" xlink:to="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_d2641f6b-3d1a-45e9-8c21-2ee8d2354f8b_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock-based Compensation Expense</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_fa33519c-cf27-4740-b26b-c346c0d83a31_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total liabilities and stockholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities and Equity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_c77eeafc-44ab-453a-a9cd-581e69566d9a_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other non-current assets</link:label>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Assets, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent" xlink:to="lab_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:to="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_9d1a77b9-d98f-4a32-b78b-4470d54c2f83_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:to="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_396c9ed3-1f6b-4cac-a4e8-0339b620bb85_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Risk-free interest rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_dd01302d-df2a-4fd7-9c35-830b10e7a7bf_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Right-of-use assets - Operating leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_c7aeeef1-f37e-4b70-9d90-3b49122a986b_periodStartLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance, right-of-use assets - operation leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_bf5b9ccf-0757-4782-b4e3-85e884177912_periodEndLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Ending balance, right-of-use assets - operation leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_38d4c073-a73e-4db6-bd4a-2eb47f8f4449_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and related cost, number of positions eliminated, period percent</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Cost, Number of Positions Eliminated, Period Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:to="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote</link:label>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_label_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:to="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_3ccda8f5-bb1d-4e5b-b527-b78e0f5b9d54_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Foreign Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrDuration_terseLabel_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Arrangement Duration</link:label>
    <link:label id="lab_ecd_TrdArrDuration_label_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrDuration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrDuration" xlink:to="lab_ecd_TrdArrDuration" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_28d439c0-29fa-4d2c-beb2-1e0264517c45_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown" xlink:to="lab_dei_EntityAddressCityOrTown" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Considered [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:to="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyMember_1b6a6cff-b2d7-4363-b841-2542aa881420_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party</link:label>
    <link:label id="lab_us-gaap_RelatedPartyMember_label_en-US" xlink:label="lab_us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyMember" xlink:to="lab_us-gaap_RelatedPartyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_f5a03c37-0fa1-470f-983d-01be321b35bb_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted average remaining contractual terms, vested and expected to vest options</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_736c6246-fbcc-4f83-b768-5d30d0d2576b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Cash and Cash Equivalents [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Cash and Cash Equivalents [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:to="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_24989657-b469-4d35-aa17-12e390a6a09c_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net operating losses, not subject to expiration, amount</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_5064f593-fe3c-4a5b-b5ea-85a1783e51e1_terseLabel_en-US" xlink:label="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Details</link:label>
    <link:label id="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_label_en-US" xlink:label="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Supplemental Balance Sheet Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_fe7945bc-fece-465f-bd8b-212303c23189_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Additional Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCharges_a715af5c-b925-437d-a5e1-75d1f987a05e_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring charges</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_label_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCharges" xlink:to="lab_us-gaap_RestructuringCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_f15d283f-7696-43df-bbcd-e9f2528cd066_verboseLabel_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and development revenue ($0, $1,245 and $1,955 from a related party)</link:label>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_65a4496b-ad4a-4893-b325-26cb67828e4c_terseLabel_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and development revenue</link:label>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_label_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Revenue [Member]</link:label>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_documentation_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Revenue [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ResearchandDevelopmentRevenueMember" xlink:to="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_512ecedd-31e5-4aeb-8275-7d009ce652a7_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Net, by Type [Abstract]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Net, by Type [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MolecularAssembliesIncMember_d399ea7e-f285-41cc-b171-cd1ef55df8fa_terseLabel_en-US" xlink:label="lab_cdxs_MolecularAssembliesIncMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MAI</link:label>
    <link:label id="lab_cdxs_MolecularAssembliesIncMember_label_en-US" xlink:label="lab_cdxs_MolecularAssembliesIncMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Molecular Assemblies, Inc. [Member]</link:label>
    <link:label id="lab_cdxs_MolecularAssembliesIncMember_documentation_en-US" xlink:label="lab_cdxs_MolecularAssembliesIncMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Molecular Assemblies, Inc.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MolecularAssembliesIncMember" xlink:to="lab_cdxs_MolecularAssembliesIncMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_29f647fe-774d-4f3d-9234-1d2ad1a3427a_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrTerminationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Termination Date</link:label>
    <link:label id="lab_ecd_TrdArrTerminationDate_label_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement Termination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrTerminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrTerminationDate" xlink:to="lab_ecd_TrdArrTerminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_abd6fe2b-7280-41e5-ab92-43a9df4b68f5_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized" xlink:to="lab_us-gaap_CommonStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_ffea5588-3720-4fba-b377-b5fd49c2e113_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale non-marketable interest-bearing debt securities</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryRawMaterials_776ff8ba-77b9-4c1d-a857-49078edbcfc0_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterials" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Raw materials</link:label>
    <link:label id="lab_us-gaap_InventoryRawMaterials_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterials" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Raw Materials, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterials" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterials"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterials" xlink:to="lab_us-gaap_InventoryRawMaterials" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NestleHealthScienceMember_81255aba-5145-4220-a400-3273d132b284_terseLabel_en-US" xlink:label="lab_cdxs_NestleHealthScienceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nestl&#233; Health Science</link:label>
    <link:label id="lab_cdxs_NestleHealthScienceMember_label_en-US" xlink:label="lab_cdxs_NestleHealthScienceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nestl&#233; Health Science [Member]</link:label>
    <link:label id="lab_cdxs_NestleHealthScienceMember_documentation_en-US" xlink:label="lab_cdxs_NestleHealthScienceMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nestl&#233; Health Science</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestleHealthScienceMember" xlink:href="cdxs-20231231.xsd#cdxs_NestleHealthScienceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NestleHealthScienceMember" xlink:to="lab_cdxs_NestleHealthScienceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivablesPeriodPastDueAxis_cbcf7078-5397-4bea-af87-ccc33718cabb_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivablesPeriodPastDueAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, Period Past Due [Axis]</link:label>
    <link:label id="lab_us-gaap_FinancingReceivablesPeriodPastDueAxis_label_en-US" xlink:label="lab_us-gaap_FinancingReceivablesPeriodPastDueAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Asset, Aging [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis" xlink:to="lab_us-gaap_FinancingReceivablesPeriodPastDueAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_c0a7c3ba-16d3-4fcb-97df-18ed9098b7b0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercised (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShortTermUnbilledReceivablesMember_9f4ffe8e-ebd2-42e2-875a-134aa6a82097_terseLabel_en-US" xlink:label="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-Term Unbilled Receivables</link:label>
    <link:label id="lab_cdxs_ShortTermUnbilledReceivablesMember_label_en-US" xlink:label="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-Term Unbilled Receivables [Member]</link:label>
    <link:label id="lab_cdxs_ShortTermUnbilledReceivablesMember_documentation_en-US" xlink:label="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-Term Unbilled Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShortTermUnbilledReceivablesMember" xlink:href="cdxs-20231231.xsd#cdxs_ShortTermUnbilledReceivablesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShortTermUnbilledReceivablesMember" xlink:to="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_c9158d93-c07f-433b-8688-8c1407b2e3a7_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase price of common stock when voting percent is above minimum threshold</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_fb255413-9615-453b-ab5c-387feadf030b_verboseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustments to reconcile net loss to net cash provided by (used in) operating activities:</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsAbstract_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transactions [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract" xlink:to="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgDiscLineItems_label_en-US" xlink:label="lab_ecd_AwardTmgDiscLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Disclosures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="lab_ecd_AwardTmgDiscLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCommitmentsAxis_80e69c79-d14e-4b83-afe2-577223dc1937_terseLabel_en-US" xlink:label="lab_us-gaap_OtherCommitmentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitments [Axis]</link:label>
    <link:label id="lab_us-gaap_OtherCommitmentsAxis_label_en-US" xlink:label="lab_us-gaap_OtherCommitmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Commitments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCommitmentsAxis" xlink:to="lab_us-gaap_OtherCommitmentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapital_136b7c94-006b-4d3e-bac8-4e721863f958_verboseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapital_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Paid in Capital</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapital" xlink:to="lab_us-gaap_AdditionalPaidInCapital" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_1ec99939-e68b-452e-8742-3831bba92bd8_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changes in the period:</link:label>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_label_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Change in Contract with Customer, Liability [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:to="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_e7e7fd90-a5ed-4ed3-b31e-6c34c5ee21e1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022PBOMember_e3fc2f23-8a37-4401-88ad-1e5227d56b98_terseLabel_en-US" xlink:label="lab_cdxs_A2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PBO</link:label>
    <link:label id="lab_cdxs_A2022PBOMember_label_en-US" xlink:label="lab_cdxs_A2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PBO [Member]</link:label>
    <link:label id="lab_cdxs_A2022PBOMember_documentation_en-US" xlink:label="lab_cdxs_A2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2022 PBO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PBOMember" xlink:href="cdxs-20231231.xsd#cdxs_A2022PBOMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022PBOMember" xlink:to="lab_cdxs_A2022PBOMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_a2272d63-ecf1-45f9-88aa-1b4a3bf894ad_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_a4194a56-75c1-4ae7-b569-d2f348620fbb_verboseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid Expense and Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWorkInProcess_27d39759-35f8-4d30-b1c5-7ca6263303f9_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcess" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Work in process</link:label>
    <link:label id="lab_us-gaap_InventoryWorkInProcess_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcess" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Work in Process, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcess" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcess"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcess" xlink:to="lab_us-gaap_InventoryWorkInProcess" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_UpFrontPaymentMember_49091d05-81ab-4b2d-8fa4-00f1d7aa45d2_terseLabel_en-US" xlink:label="lab_cdxs_UpFrontPaymentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Up-front Payment</link:label>
    <link:label id="lab_cdxs_UpFrontPaymentMember_label_en-US" xlink:label="lab_cdxs_UpFrontPaymentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Up-front Payment [Member]</link:label>
    <link:label id="lab_cdxs_UpFrontPaymentMember_documentation_en-US" xlink:label="lab_cdxs_UpFrontPaymentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Up-front Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_UpFrontPaymentMember" xlink:href="cdxs-20231231.xsd#cdxs_UpFrontPaymentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_UpFrontPaymentMember" xlink:to="lab_cdxs_UpFrontPaymentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NotesReceivableGross_0a788b59-200b-4a54-8523-380016121308_totalLabel_en-US" xlink:label="lab_us-gaap_NotesReceivableGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total financial assets</link:label>
    <link:label id="lab_us-gaap_NotesReceivableGross_label_en-US" xlink:label="lab_us-gaap_NotesReceivableGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, before Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesReceivableGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NotesReceivableGross" xlink:to="lab_us-gaap_NotesReceivableGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_c702f80c-b3b0-4f67-a4b9-6295086c5eb8_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amounts included in contract liabilities at the beginning of the period:</link:label>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_label_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Change in Contract with Customer, Asset and Liability [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:to="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingArrLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingArrLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Arrangements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="lab_ecd_InsiderTradingArrLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermLoansFirstTrancheMember_1b95dc2d-e925-4666-b76b-d83d417856e7_terseLabel_en-US" xlink:label="lab_cdxs_TermLoansFirstTrancheMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans - First Tranche</link:label>
    <link:label id="lab_cdxs_TermLoansFirstTrancheMember_label_en-US" xlink:label="lab_cdxs_TermLoansFirstTrancheMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans - First Tranche [Member]</link:label>
    <link:label id="lab_cdxs_TermLoansFirstTrancheMember_documentation_en-US" xlink:label="lab_cdxs_TermLoansFirstTrancheMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Term Loans - First Tranche</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansFirstTrancheMember" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansFirstTrancheMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermLoansFirstTrancheMember" xlink:to="lab_cdxs_TermLoansFirstTrancheMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e1334e07-faea-4c97-bd34-dc00c25e6355_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party [Axis]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party, Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerBMember_e1ca57db-37f4-4caf-a53b-092f782d45fd_terseLabel_en-US" xlink:label="lab_cdxs_CustomerBMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer B</link:label>
    <link:label id="lab_cdxs_CustomerBMember_label_en-US" xlink:label="lab_cdxs_CustomerBMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer B [Member]</link:label>
    <link:label id="lab_cdxs_CustomerBMember_documentation_en-US" xlink:label="lab_cdxs_CustomerBMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer B</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerBMember" xlink:href="cdxs-20231231.xsd#cdxs_CustomerBMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerBMember" xlink:to="lab_cdxs_CustomerBMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_3c895da9-ae4d-4a87-88e3-8fe4d213050c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate intrinsic value, outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_353eb1d7-a5f1-4b83-8c22-3f274d7817d1_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_label_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName" xlink:to="lab_dei_EntityRegistrantName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_terseLabel_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Material Terms of Trading Arrangement</link:label>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_label_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Material Terms of Trading Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:to="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Method</link:label>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMethodTextBlock" xlink:to="lab_ecd_AwardTmgMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation, Amount</link:label>
    <link:label id="lab_ecd_AdjToCompAmt_label_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAmt" xlink:to="lab_ecd_AdjToCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_93834a4f-b22f-4876-9f64-aeb397457945_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tranche Two</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Tranche Two [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAwardTrancheTwoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:to="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfSalesMember_8d8e1fe9-00d7-424e-852b-1ba9ead5629b_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfSalesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Costs of product revenue</link:label>
    <link:label id="lab_us-gaap_CostOfSalesMember_label_en-US" xlink:label="lab_us-gaap_CostOfSalesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfSalesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfSalesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfSalesMember" xlink:to="lab_us-gaap_CostOfSalesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeSeveranceMember_68f7053a-f0e7-45c2-88fc-243eec29e705_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeSeveranceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Severance</link:label>
    <link:label id="lab_us-gaap_EmployeeSeveranceMember_label_en-US" xlink:label="lab_us-gaap_EmployeeSeveranceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Severance [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeSeveranceMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeSeveranceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeSeveranceMember" xlink:to="lab_us-gaap_EmployeeSeveranceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorName_ac5803c9-1e5f-484d-8bda-cae651d50314_terseLabel_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Name</link:label>
    <link:label id="lab_dei_AuditorName_label_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorName" xlink:to="lab_dei_AuditorName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Net Income</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Net Income [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Issuers, Footnote</link:label>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_label_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Issuers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:to="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_bfc86dac-153a-4768-9a25-b82603592aec_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Less: accumulated depreciation and amortization</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense_a8cb2102-d690-4ecd-9cba-2e4dec6d06f8_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment charges related to contract assets</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Asset, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:to="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9ee813e1-6915-4804-aef8-73d1605afa79_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options exercisable (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCentralIndexKey_7290f5d0-4729-4169-9831-9353be705990_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey" xlink:to="lab_dei_EntityCentralIndexKey" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_68451363-a5bc-4ae6-ab65-3896b6bd1153_terseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based payment arrangement, expense</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:to="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PfizerMember_99e01f3b-b0c3-4506-aed0-cbdbe07ff153_terseLabel_en-US" xlink:label="lab_cdxs_PfizerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pfizer</link:label>
    <link:label id="lab_cdxs_PfizerMember_label_en-US" xlink:label="lab_cdxs_PfizerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pfizer [Member]</link:label>
    <link:label id="lab_cdxs_PfizerMember_documentation_en-US" xlink:label="lab_cdxs_PfizerMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pfizer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PfizerMember" xlink:href="cdxs-20231231.xsd#cdxs_PfizerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PfizerMember" xlink:to="lab_cdxs_PfizerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_5bbfd41e-0047-4913-be18-84eccad7465a_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOfLeasehold_d1f83b12-4a6f-4790-8709-515a0bc7f8e9_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfLeasehold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of leasehold</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfLeasehold_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfLeasehold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of Leasehold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfLeasehold" xlink:to="lab_us-gaap_ImpairmentOfLeasehold" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_bfc3eee1-5c0d-4353-aa79-634882fdb44e_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Federal, State and Foreign NOL Carryforwards and Federal Research and Development Tax Credits</link:label>
    <link:label id="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_label_en-US" xlink:label="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Operating Loss Carryforwards [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:to="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent_09cb65bb-a58c-4fff-b20b-b47ab51edf10_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued compensation</link:label>
    <link:label id="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee-related Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfFinancingCosts_ab0ae15c-f58f-4023-b538-58b1096565af_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfFinancingCosts" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Costs incurred in connection with issuance of common stock at public offering</link:label>
    <link:label id="lab_us-gaap_PaymentsOfFinancingCosts_label_en-US" xlink:label="lab_us-gaap_PaymentsOfFinancingCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments of Financing Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfFinancingCosts" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfFinancingCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfFinancingCosts" xlink:to="lab_us-gaap_PaymentsOfFinancingCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_b67908df-0936-401c-a57b-6a7704824196_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Benchmark</link:label>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember" xlink:to="lab_us-gaap_SalesRevenueNetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndName_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_TrdArrIndName_label_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndName" xlink:to="lab_ecd_TrdArrIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerAMember_98c47ef4-68f8-4307-9568-bdb08f687564_terseLabel_en-US" xlink:label="lab_cdxs_CustomerAMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer A</link:label>
    <link:label id="lab_cdxs_CustomerAMember_label_en-US" xlink:label="lab_cdxs_CustomerAMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer A [Member]</link:label>
    <link:label id="lab_cdxs_CustomerAMember_documentation_en-US" xlink:label="lab_cdxs_CustomerAMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer A</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerAMember" xlink:href="cdxs-20231231.xsd#cdxs_CustomerAMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerAMember" xlink:to="lab_cdxs_CustomerAMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_600845b1-d082-4713-8bbe-9cc2704380c5_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues_1e7b1e5d-9ed0-4bfa-ae12-738b1922f320_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Issuance of common stock, net of issuance costs</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Issued During Period, Value, New Issues</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_19f11b6a-57cb-4d8a-91f0-2d1b42cbe03b_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign operations taxed at different rates</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:to="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_bf28afae-2a28-46af-b7a9-7f39433d0367_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total revenues</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_dbb7d78d-411f-42cb-97e0-af8fd1015731_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityDomain_5896cb3f-02dd-4074-9abb-16f7dc4fac38_terseLabel_en-US" xlink:label="lab_dei_EntityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity [Domain]</link:label>
    <link:label id="lab_dei_EntityDomain_label_en-US" xlink:label="lab_dei_EntityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityDomain" xlink:to="lab_dei_EntityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsLineItems_ca1b6131-1dc9-4204-b772-7b2ecb918a30_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Line Items]</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsLineItems_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems" xlink:to="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_d82e3857-dce9-4b26-89c7-e2a7b352f76f_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_label_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag" xlink:to="lab_dei_AmendmentFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LegalEntityAxis_4457d248-56bb-4b36-9828-f855a146434d_terseLabel_en-US" xlink:label="lab_dei_LegalEntityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:label id="lab_dei_LegalEntityAxis_label_en-US" xlink:label="lab_dei_LegalEntityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LegalEntityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LegalEntityAxis" xlink:to="lab_dei_LegalEntityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_ece55488-048a-40ab-8dd6-c75caba1c59c_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with customer, liability, retainer fee, creditable percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Creditable Percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Creditable Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAxis_b0a6c044-6560-4cba-a365-24238a939a08_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Axis]</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAxis_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis" xlink:to="lab_us-gaap_CashAndCashEquivalentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_5a498ff3-8b25-4c16-8fb1-e7b1b90d0ddb_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Goodwill and Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:to="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_8819278a-78fd-4988-b20f-23c79ea70444_terseLabel_en-US" xlink:label="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional contingent payments</link:label>
    <link:label id="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_label_en-US" xlink:label="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue From Collaborative Arrangement, Contingent Amounts</link:label>
    <link:label id="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_documentation_en-US" xlink:label="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue From Collaborative Arrangement, Contingent Amounts</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromCollaborativeArrangementContingentAmounts" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromCollaborativeArrangementContingentAmounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueFromCollaborativeArrangementContingentAmounts" xlink:to="lab_cdxs_RevenueFromCollaborativeArrangementContingentAmounts" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber_0a1dd22b-b82d-48cc-9a23-07f99ea84bdd_terseLabel_en-US" xlink:label="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of options to extend lease term</link:label>
    <link:label id="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber_label_en-US" xlink:label="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Number</link:label>
    <link:label id="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber_documentation_en-US" xlink:label="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Option To Extend, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LesseeOperatingLeaseOptionToExtendNumber" xlink:href="cdxs-20231231.xsd#cdxs_LesseeOperatingLeaseOptionToExtendNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LesseeOperatingLeaseOptionToExtendNumber" xlink:to="lab_cdxs_LesseeOperatingLeaseOptionToExtendNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_d17cfa22-4b2b-445d-add6-8f485e97ce4e_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating leases, weighted-average discount rate</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestPaidNet_e09d8180-ccb0-42ad-ba81-8bd323686d24_terseLabel_en-US" xlink:label="lab_us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest paid</link:label>
    <link:label id="lab_us-gaap_InterestPaidNet_label_en-US" xlink:label="lab_us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest Paid, Excluding Capitalized Interest, Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestPaidNet" xlink:to="lab_us-gaap_InterestPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_f829e45a-ccb7-4215-8398-f0978470e86b_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock issued during period, shares, issued for services (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Issued During Period, Shares, Issued for Services</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_d30b07a8-3749-4f22-bc57-6bbd82243326_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leasehold improvements</link:label>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember" xlink:to="lab_us-gaap_LeaseholdImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_b60ebbeb-ee7c-4254-84f0-cc7acdf98985_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net deferred tax liabilities</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilities" xlink:to="lab_us-gaap_DeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_421859fe-57d1-4167-ad8f-ebe5d690b69c_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted average common stock shares used in computing net loss per share, diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GranteeStatusDomain_4c87bf5f-2674-4e8f-9700-e9fc9a96bfd2_terseLabel_en-US" xlink:label="lab_us-gaap_GranteeStatusDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Grantee Status [Domain]</link:label>
    <link:label id="lab_us-gaap_GranteeStatusDomain_label_en-US" xlink:label="lab_us-gaap_GranteeStatusDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Grantee Status [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GranteeStatusDomain" xlink:to="lab_us-gaap_GranteeStatusDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:to="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_GSKMember_3be85a86-424e-429d-87d8-e5ec907067dc_terseLabel_en-US" xlink:label="lab_cdxs_GSKMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GSK Platform</link:label>
    <link:label id="lab_cdxs_GSKMember_label_en-US" xlink:label="lab_cdxs_GSKMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GSK [Member]</link:label>
    <link:label id="lab_cdxs_GSKMember_documentation_en-US" xlink:label="lab_cdxs_GSKMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GSK [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_GSKMember" xlink:href="cdxs-20231231.xsd#cdxs_GSKMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_GSKMember" xlink:to="lab_cdxs_GSKMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_eba9f7c1-1e37-4618-990d-f465e0695255_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based compensation arrangement by share-based payment ward, number of additional shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueProductLineMember_61e01869-3e44-45e4-bb0c-c639d8f8d692_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueProductLineMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Product and Service Benchmark</link:label>
    <link:label id="lab_us-gaap_SalesRevenueProductLineMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueProductLineMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Product and Service Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueProductLineMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueProductLineMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueProductLineMember" xlink:to="lab_us-gaap_SalesRevenueProductLineMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_6af4a740-a16c-45f6-ab78-9448db060226_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase of property and equipment</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureAmt" xlink:to="lab_ecd_CoSelectedMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerFMember_dc6b2cb2-84eb-4bf7-be29-d389e43c5d11_terseLabel_en-US" xlink:label="lab_cdxs_CustomerFMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer F</link:label>
    <link:label id="lab_cdxs_CustomerFMember_label_en-US" xlink:label="lab_cdxs_CustomerFMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer F [Member]</link:label>
    <link:label id="lab_cdxs_CustomerFMember_documentation_en-US" xlink:label="lab_cdxs_CustomerFMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer F</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerFMember" xlink:href="cdxs-20231231.xsd#cdxs_CustomerFMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerFMember" xlink:to="lab_cdxs_CustomerFMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionAnnualPayment_e5403251-ed99-4084-9244-2b78b960565b_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue recognition, annual payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionAnnualPayment_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Annual Payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionAnnualPayment_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition, Annual Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionAnnualPayment" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionAnnualPayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionAnnualPayment" xlink:to="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Assets_4b28a413-8cb0-4eb1-944a-05343ea18b71_totalLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total assets</link:label>
    <link:label id="lab_us-gaap_Assets_label_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets" xlink:to="lab_us-gaap_Assets" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:to="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquipmentMember_7b0124da-da7f-4146-be4c-bcf6d3fb1efa_terseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Laboratory equipment</link:label>
    <link:label id="lab_us-gaap_EquipmentMember_label_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquipmentMember" xlink:to="lab_us-gaap_EquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_a071dfae-7970-43bb-913b-fd9028d47437_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee stock-based compensation</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NovartisMember_0b5e7da4-06cc-4bdb-bac2-bde44cf50611_terseLabel_en-US" xlink:label="lab_cdxs_NovartisMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Novartis</link:label>
    <link:label id="lab_cdxs_NovartisMember_label_en-US" xlink:label="lab_cdxs_NovartisMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Novartis [Member]</link:label>
    <link:label id="lab_cdxs_NovartisMember_documentation_en-US" xlink:label="lab_cdxs_NovartisMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Novartis [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovartisMember" xlink:href="cdxs-20231231.xsd#cdxs_NovartisMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NovartisMember" xlink:to="lab_cdxs_NovartisMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SeriesAPreferredStockMember_fd8fe6f9-1c8b-4a66-ab82-fef4a5309cba_terseLabel_en-US" xlink:label="lab_us-gaap_SeriesAPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series A Preferred Stock</link:label>
    <link:label id="lab_us-gaap_SeriesAPreferredStockMember_label_en-US" xlink:label="lab_us-gaap_SeriesAPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Series A Preferred Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SeriesAPreferredStockMember" xlink:to="lab_us-gaap_SeriesAPreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_316a102f-30cc-4113-83c8-1a0db69948f0_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vested (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonNeosMember_terseLabel_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-NEOs</link:label>
    <link:label id="lab_ecd_NonNeosMember_label_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-NEOs [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonNeosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonNeosMember" xlink:to="lab_ecd_NonNeosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConstructionInProgressMember_9fe5cf2a-e77f-4344-800c-962bbb301537_terseLabel_en-US" xlink:label="lab_us-gaap_ConstructionInProgressMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Construction in progress</link:label>
    <link:label id="lab_us-gaap_ConstructionInProgressMember_label_en-US" xlink:label="lab_us-gaap_ConstructionInProgressMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Construction in Progress [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConstructionInProgressMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConstructionInProgressMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConstructionInProgressMember" xlink:to="lab_us-gaap_ConstructionInProgressMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_73a4326a-0e84-428c-962d-4326e6a5a29b_terseLabel_en-US" xlink:label="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Right-of-use Assets and Lease Obligations</link:label>
    <link:label id="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_label_en-US" xlink:label="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule Of Right-of-use Assets And Lease Obligations [Table Text Block]</link:label>
    <link:label id="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_documentation_en-US" xlink:label="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule Of Right-of-use Assets And Lease Obligations</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:href="cdxs-20231231.xsd#cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:to="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrimeRateMember_97034bdf-c814-4cb3-8540-21cec727b1c4_terseLabel_en-US" xlink:label="lab_us-gaap_PrimeRateMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prime Rate</link:label>
    <link:label id="lab_us-gaap_PrimeRateMember_label_en-US" xlink:label="lab_us-gaap_PrimeRateMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prime Rate [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrimeRateMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrimeRateMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrimeRateMember" xlink:to="lab_us-gaap_PrimeRateMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_7ce7c6ff-b3bb-4ea5-9199-fffd41b6f647_verboseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoMember_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO</link:label>
    <link:label id="lab_ecd_NonPeoNeoMember_label_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoMember" xlink:to="lab_ecd_NonPeoNeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAxis_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation:</link:label>
    <link:label id="lab_ecd_AdjToCompAxis_label_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="lab_ecd_AdjToCompAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_FourCustomersMember_c6e935bf-efa6-4ea8-9ec9-c9b2546ed964_terseLabel_en-US" xlink:label="lab_cdxs_FourCustomersMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Four Customers</link:label>
    <link:label id="lab_cdxs_FourCustomersMember_label_en-US" xlink:label="lab_cdxs_FourCustomersMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Four Customers [Member]</link:label>
    <link:label id="lab_cdxs_FourCustomersMember_documentation_en-US" xlink:label="lab_cdxs_FourCustomersMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Four Customers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FourCustomersMember" xlink:href="cdxs-20231231.xsd#cdxs_FourCustomersMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_FourCustomersMember" xlink:to="lab_cdxs_FourCustomersMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerCMember_0d6e2c6c-3ed1-4477-8356-d202709619cd_terseLabel_en-US" xlink:label="lab_cdxs_CustomerCMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer C</link:label>
    <link:label id="lab_cdxs_CustomerCMember_label_en-US" xlink:label="lab_cdxs_CustomerCMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer C [Member]</link:label>
    <link:label id="lab_cdxs_CustomerCMember_documentation_en-US" xlink:label="lab_cdxs_CustomerCMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer C</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerCMember" xlink:href="cdxs-20231231.xsd#cdxs_CustomerCMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerCMember" xlink:to="lab_cdxs_CustomerCMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_74b794f5-b8b6-4407-92cf-ba83447e18d2_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net operating losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_5a8b7dc7-3a3b-4840-b887-32e999af6cfa_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted average common stock shares used in computing net loss per share, basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_9881c184-5ae0-494e-9b59-2867696f10e8_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and Equipment</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:to="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_b887ed2e-6fcf-473e-b206-0fc910d7e14c_negatedLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property and Equipment</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_11ee7c88-222c-4607-a7b8-b7b39c17b9f0_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenuesAbstract_e04cdd5c-0793-4e9d-8f9e-1d0752851294_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenuesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues:</link:label>
    <link:label id="lab_us-gaap_RevenuesAbstract_9e298742-54a0-4a1c-8879-57fe19e008d6_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues [Abstract]</link:label>
    <link:label id="lab_us-gaap_RevenuesAbstract_label_en-US" xlink:label="lab_us-gaap_RevenuesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesAbstract" xlink:to="lab_us-gaap_RevenuesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionAxis_6fa9aaea-6c47-4457-9d1a-eb2ebc3a8e30_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionAxis_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis" xlink:to="lab_us-gaap_RelatedPartyTransactionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTable_terseLabel_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure</link:label>
    <link:label id="lab_ecd_PvpTable_label_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTable" xlink:to="lab_ecd_PvpTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementLineItems_d5c7625e-ae8a-49a4-82f5-2ab1a2c03ae4_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:label id="lab_us-gaap_StatementLineItems_label_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems" xlink:to="lab_us-gaap_StatementLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_18bc2d9f-c961-4f3e-8a4f-03fb45cf32a8_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable" xlink:to="lab_us-gaap_ConcentrationRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_ed043f39-b905-407e-b179-dd5de23a0c4d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options vested and expected to vest (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerDMember_b94d774d-0ab0-42b8-9638-b42f75a29710_terseLabel_en-US" xlink:label="lab_cdxs_CustomerDMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer D</link:label>
    <link:label id="lab_cdxs_CustomerDMember_label_en-US" xlink:label="lab_cdxs_CustomerDMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer D [Member]</link:label>
    <link:label id="lab_cdxs_CustomerDMember_documentation_en-US" xlink:label="lab_cdxs_CustomerDMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer D</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerDMember" xlink:href="cdxs-20231231.xsd#cdxs_CustomerDMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerDMember" xlink:to="lab_cdxs_CustomerDMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_73097cb4-e225-40ab-bb4e-7d910732d514_terseLabel_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name of Property [Axis]</link:label>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_label_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name of Property [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:to="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EnzymeSupplyAgreementMember_ac4be86d-ed9a-4550-82dd-19d4136e9dbe_terseLabel_en-US" xlink:label="lab_cdxs_EnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enzyme Supply Agreement</link:label>
    <link:label id="lab_cdxs_EnzymeSupplyAgreementMember_label_en-US" xlink:label="lab_cdxs_EnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enzyme Supply Agreement [Member]</link:label>
    <link:label id="lab_cdxs_EnzymeSupplyAgreementMember_documentation_en-US" xlink:label="lab_cdxs_EnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enzyme Supply Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeSupplyAgreementMember" xlink:href="cdxs-20231231.xsd#cdxs_EnzymeSupplyAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EnzymeSupplyAgreementMember" xlink:to="lab_cdxs_EnzymeSupplyAgreementMember" xlink:type="arc" order="1"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>14
<FILENAME>cdxs-20231231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:94d45509-9aef-44d3-a47e-c1e1904e3223,g:402e078b-413f-4095-9479-d13944eb3b89-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.codexis.com/role/CoverPage" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CoverPage"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_02baef62-d93d-4d63-9b35-48d73d49617d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentType_02baef62-d93d-4d63-9b35-48d73d49617d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport_ca354aa9-715e-4e3e-a74e-398e2b172ba7" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAnnualReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentAnnualReport_ca354aa9-715e-4e3e-a74e-398e2b172ba7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_1151d108-f9cd-4483-a63e-8962e26c9b43" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentPeriodEndDate_1151d108-f9cd-4483-a63e-8962e26c9b43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_a69883e9-dc82-4481-9bf6-4b1a8b107090" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_CurrentFiscalYearEndDate_a69883e9-dc82-4481-9bf6-4b1a8b107090" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_03efda7f-e24f-408a-9018-87a9f01c45ef" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentTransitionReport_03efda7f-e24f-408a-9018-87a9f01c45ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_bbc9ee76-df23-451c-8b16-f25febf6710d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityFileNumber_bbc9ee76-df23-451c-8b16-f25febf6710d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_e47e2628-a0fe-4451-bf6e-4356d116ac9e" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityRegistrantName_e47e2628-a0fe-4451-bf6e-4356d116ac9e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_8afe8df6-5fea-457c-a679-0f3088462c4a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityIncorporationStateCountryCode_8afe8df6-5fea-457c-a679-0f3088462c4a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_2511eeed-7355-4a3c-8ec8-dc27473e9cca" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityTaxIdentificationNumber_2511eeed-7355-4a3c-8ec8-dc27473e9cca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_34236717-1802-4fa6-883a-3ab9877a8d6f" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityAddressAddressLine1_34236717-1802-4fa6-883a-3ab9877a8d6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_3e9f060b-8faa-4279-a08a-0ed85a370582" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityAddressCityOrTown_3e9f060b-8faa-4279-a08a-0ed85a370582" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_d827d76d-9b7d-4c0e-8787-242540fe2da5" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityAddressStateOrProvince_d827d76d-9b7d-4c0e-8787-242540fe2da5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_b56f0e15-b871-4c20-a70f-f65d160357be" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityAddressPostalZipCode_b56f0e15-b871-4c20-a70f-f65d160357be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_ff15af08-666c-4b01-9a58-e05038f13165" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_CityAreaCode_ff15af08-666c-4b01-9a58-e05038f13165" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_caebbb72-eeb5-4f4b-9c24-84e9d054bd67" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_LocalPhoneNumber_caebbb72-eeb5-4f4b-9c24-84e9d054bd67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_38eadc1d-80dd-4e35-a59b-4da126ae7c44" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_Security12bTitle_38eadc1d-80dd-4e35-a59b-4da126ae7c44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_ef425e03-fd39-4bfb-9275-52b7fe331cf5" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_TradingSymbol_ef425e03-fd39-4bfb-9275-52b7fe331cf5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_d8631fcf-849f-4e70-b7c9-181b33e59697" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_SecurityExchangeName_d8631fcf-849f-4e70-b7c9-181b33e59697" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_51dfde4b-aa19-4ce8-ad12-e10cbed6644d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_51dfde4b-aa19-4ce8-ad12-e10cbed6644d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers_12efc6b7-0b40-4873-9152-8caf5a054769" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityVoluntaryFilers"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityVoluntaryFilers_12efc6b7-0b40-4873-9152-8caf5a054769" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_45e650b2-b499-4355-b765-99ed36d83f8c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityCurrentReportingStatus_45e650b2-b499-4355-b765-99ed36d83f8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_71f14ea9-3f0c-4ce5-b561-6b4bd06e489a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityInteractiveDataCurrent_71f14ea9-3f0c-4ce5-b561-6b4bd06e489a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_e23da714-9130-4984-b123-cd96acff50f3" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityFilerCategory_e23da714-9130-4984-b123-cd96acff50f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_c9977d67-f47e-4edd-afa8-e337a42619bf" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntitySmallBusiness_c9977d67-f47e-4edd-afa8-e337a42619bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_4ee9d398-b27e-4162-851d-f6069f4f992a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityEmergingGrowthCompany_4ee9d398-b27e-4162-851d-f6069f4f992a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag_fce8ccb3-8044-483b-a740-f0154c4b322c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_IcfrAuditorAttestationFlag_fce8ccb3-8044-483b-a740-f0154c4b322c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag_2699821f-4a18-45d0-b85c-639434e8c1a2" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentFinStmtErrorCorrectionFlag_2699821f-4a18-45d0-b85c-639434e8c1a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_dab98137-f7c8-4fec-91a5-269f9715b841" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityShellCompany_dab98137-f7c8-4fec-91a5-269f9715b841" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat_ae469753-45c5-4b4f-b0ac-7043d7d5c849" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPublicFloat"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityPublicFloat_ae469753-45c5-4b4f-b0ac-7043d7d5c849" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_95c09251-570e-4a31-a8ec-283034a6170a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_95c09251-570e-4a31-a8ec-283034a6170a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentsIncorporatedByReferenceTextBlock_60358707-6383-4c89-8012-7d3eff6789f2" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentsIncorporatedByReferenceTextBlock"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentsIncorporatedByReferenceTextBlock_60358707-6383-4c89-8012-7d3eff6789f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_5f5bc21e-59b3-4704-a396-c5886107f51c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_EntityCentralIndexKey_5f5bc21e-59b3-4704-a396-c5886107f51c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_73c58314-fe42-4c96-bcc8-296538e3329e" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_AmendmentFlag_73c58314-fe42-4c96-bcc8-296538e3329e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_3e25f501-5e16-46f1-99ad-9bad42e82dfb" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="34" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentFiscalYearFocus_3e25f501-5e16-46f1-99ad-9bad42e82dfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_91a68a18-f934-4bb8-8335-29eb3f3587cc" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="35" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_adc10da1-8bb2-4073-85b2-0632a083550e" xlink:to="loc_dei_DocumentFiscalPeriodFocus_91a68a18-f934-4bb8-8335-29eb3f3587cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AuditInformation" xlink:type="simple" xlink:href="cdxs-20231231.xsd#AuditInformation"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/AuditInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AuditorInformationAbstract_87a641e5-fa3b-4ae5-88c7-1088e099e019" xlink:href="cdxs-20231231.xsd#cdxs_AuditorInformationAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName_5622fba0-af9a-4179-ab19-b642d8bc3c33" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AuditorInformationAbstract_87a641e5-fa3b-4ae5-88c7-1088e099e019" xlink:to="loc_dei_AuditorName_5622fba0-af9a-4179-ab19-b642d8bc3c33" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation_f3dcc283-84d5-432e-8841-94b8ae0ba084" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorLocation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AuditorInformationAbstract_87a641e5-fa3b-4ae5-88c7-1088e099e019" xlink:to="loc_dei_AuditorLocation_f3dcc283-84d5-432e-8841-94b8ae0ba084" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId_ba626a18-727a-45ad-a7bc-10c0626e9f3b" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorFirmId"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AuditorInformationAbstract_87a641e5-fa3b-4ae5-88c7-1088e099e019" xlink:to="loc_dei_AuditorFirmId_ba626a18-727a-45ad-a7bc-10c0626e9f3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedBalanceSheets"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_06bde3f7-f459-4b0c-88b3-dbd9f26fcfa8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_06bde3f7-f459-4b0c-88b3-dbd9f26fcfa8" xlink:to="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_acbe48ba-9df0-43cb-8973-6e3e1ba09605" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_acbe48ba-9df0-43cb-8973-6e3e1ba09605" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCash_1fc06eed-b921-4715-be40-bc7fa50b13cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCash"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:to="loc_us-gaap_RestrictedCash_1fc06eed-b921-4715-be40-bc7fa50b13cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:to="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_874960fd-4497-4569-91ac-dc807f081262" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_874960fd-4497-4569-91ac-dc807f081262" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_6756075b-8874-43ee-bafb-9f1aabec5a10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:to="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_6756075b-8874-43ee-bafb-9f1aabec5a10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_e9f86ac0-0da1-43fd-b0ad-5c67b9aeba69" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_e9f86ac0-0da1-43fd-b0ad-5c67b9aeba69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross_872fe977-ade9-4265-860d-bcc126c15b15" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesReceivableGross"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:to="loc_us-gaap_NotesReceivableGross_872fe977-ade9-4265-860d-bcc126c15b15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_fc3dbfa1-3b64-4057-998c-672817266d41" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:to="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_fc3dbfa1-3b64-4057-998c-672817266d41" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_7fe07732-398b-43fe-988b-eb387b4c814b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_0d588b58-b750-4db4-bc3b-f54fa8ba4ddb" xlink:to="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_7fe07732-398b-43fe-988b-eb387b4c814b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_841e7709-d36f-4264-80f6-c182d2fd9091" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:to="loc_us-gaap_InventoryNet_841e7709-d36f-4264-80f6-c182d2fd9091" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_dda04833-7cb3-452a-b2ac-b4a8358ad8b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_dda04833-7cb3-452a-b2ac-b4a8358ad8b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_41d99166-e1ac-4743-a34e-641771769a62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_8d036bf7-1f6f-4e44-a18d-a71311ca308d" xlink:to="loc_us-gaap_AssetsCurrent_41d99166-e1ac-4743-a34e-641771769a62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent_964df88c-9664-4deb-9a8b-05767c9e698a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_RestrictedCashNoncurrent_964df88c-9664-4deb-9a8b-05767c9e698a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_f2ee8b3f-efac-43df-99f7-e0b1d4764aaf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_f2ee8b3f-efac-43df-99f7-e0b1d4764aaf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_7389152e-8d4b-4d9f-9065-eab12f0a179a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_7389152e-8d4b-4d9f-9065-eab12f0a179a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_56ab407c-d06e-424c-b884-bcedd32ae6ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_56ab407c-d06e-424c-b884-bcedd32ae6ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_4961f291-97c7-47e0-9c0b-54fb0c49d42b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_Goodwill_4961f291-97c7-47e0-9c0b-54fb0c49d42b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_66ca1f47-7a69-45df-bd16-27aeda17da1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_66ca1f47-7a69-45df-bd16-27aeda17da1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_3c688459-304b-4db2-a9a6-c3f38aaa31d3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_04d33110-a46e-4ac1-b10a-1d64644b64a9" xlink:to="loc_us-gaap_Assets_3c688459-304b-4db2-a9a6-c3f38aaa31d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_06bde3f7-f459-4b0c-88b3-dbd9f26fcfa8" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_71f1a4e4-9a2c-4a80-a04d-2a6ea964544b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:to="loc_us-gaap_AccountsPayableCurrent_71f1a4e4-9a2c-4a80-a04d-2a6ea964544b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_d5529b92-0467-4c93-890c-56d51aaf1bef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:to="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_d5529b92-0467-4c93-890c-56d51aaf1bef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_d2b89cc9-bf8f-4b33-8a9c-4e762438d2e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_d2b89cc9-bf8f-4b33-8a9c-4e762438d2e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_7e6d62d8-b851-4e83-8f07-91b9a0ca7286" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_7e6d62d8-b851-4e83-8f07-91b9a0ca7286" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_cab0d5d4-8e52-4fcc-8345-8bb10efc0ca7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_cab0d5d4-8e52-4fcc-8345-8bb10efc0ca7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_5a9dfa09-e3da-4f22-a4bc-69547abf48dd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_b069d4df-c380-41a1-86c3-495eb4fcd70a" xlink:to="loc_us-gaap_LiabilitiesCurrent_5a9dfa09-e3da-4f22-a4bc-69547abf48dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_2d819a2c-a01f-49e6-b11d-586b2fc2fa58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_2d819a2c-a01f-49e6-b11d-586b2fc2fa58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_55171bf6-8fcd-4fdd-baf7-e98443939da4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_55171bf6-8fcd-4fdd-baf7-e98443939da4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_c5648540-bbeb-407c-a789-27a439185811" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_c5648540-bbeb-407c-a789-27a439185811" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_0f351526-9457-4936-98ab-417384e8420f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_Liabilities_0f351526-9457-4936-98ab-417384e8420f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_50ed8f9b-40cc-46aa-bd09-ddfdfa0cbb86" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_CommitmentsAndContingencies_50ed8f9b-40cc-46aa-bd09-ddfdfa0cbb86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValue_49aa1e02-d0d3-485e-a297-a8426c0dd99e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:to="loc_us-gaap_PreferredStockValue_49aa1e02-d0d3-485e-a297-a8426c0dd99e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue_7a259906-87c5-4586-88ef-b9e8001cf4fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:to="loc_us-gaap_CommonStockValue_7a259906-87c5-4586-88ef-b9e8001cf4fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital_9f202e57-c6ca-4a98-ac7d-fcc20b2b5316" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:to="loc_us-gaap_AdditionalPaidInCapital_9f202e57-c6ca-4a98-ac7d-fcc20b2b5316" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_9aea032e-41e4-4dc2-b238-0c063638c491" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_9aea032e-41e4-4dc2-b238-0c063638c491" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_607567ac-bd19-4e8a-bb22-26480a9e45c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_b420c5ea-17f3-4ae2-8d37-f15a2dc76d9c" xlink:to="loc_us-gaap_StockholdersEquity_607567ac-bd19-4e8a-bb22-26480a9e45c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_7e1957f3-4c3c-48f5-b8fb-d3788d957587" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_ab5a1561-8aa3-484e-be52-0a8807d6b12b" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_7e1957f3-4c3c-48f5-b8fb-d3788d957587" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_51db74bd-c637-4aae-9d4f-bfad1615b1e5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_51db74bd-c637-4aae-9d4f-bfad1615b1e5" xlink:to="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_8d7e2619-621c-4de5-b0d0-24658d30a3be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_0b00d090-4518-4d90-b737-a6eca340c36c" xlink:to="loc_us-gaap_RelatedPartyDomain_8d7e2619-621c-4de5-b0d0-24658d30a3be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_60bfac0b-5e3b-4320-ac9c-cc61fce1541f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_8d7e2619-621c-4de5-b0d0-24658d30a3be" xlink:to="loc_us-gaap_RelatedPartyMember_60bfac0b-5e3b-4320-ac9c-cc61fce1541f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_4fe1ac98-3083-4d82-ba15-a139c6af7234" xlink:to="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_c7b2ad1b-2e57-48ab-b7da-b2abf9d3e18e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_c7b2ad1b-2e57-48ab-b7da-b2abf9d3e18e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_1c23ad9e-9f85-4d8a-9d07-22975ffe332b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_1c23ad9e-9f85-4d8a-9d07-22975ffe332b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_73e380d9-55a7-4c66-9654-b38e13ed1554" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_73e380d9-55a7-4c66-9654-b38e13ed1554" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_6aec161c-6f93-435a-8405-1e5df5c0ed74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockSharesIssued_6aec161c-6f93-435a-8405-1e5df5c0ed74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_e8224aa8-16c9-4b41-9ac6-c6b8e22839ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_e8224aa8-16c9-4b41-9ac6-c6b8e22839ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_4dc5ca7c-6c03-4b8a-be7b-1f256c184a30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_4dc5ca7c-6c03-4b8a-be7b-1f256c184a30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_e6a99414-6784-43fa-8522-2cd0929fdbff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_e6a99414-6784-43fa-8522-2cd0929fdbff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_93394fe6-1773-4e1e-b9ca-184eae7f10d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockSharesIssued_93394fe6-1773-4e1e-b9ca-184eae7f10d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_fb03801f-ea62-4042-9821-aeb8f7e12939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_69f81b76-a3d7-4f98-b7e3-f7f39a0ceaff" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_fb03801f-ea62-4042-9821-aeb8f7e12939" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofOperations"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_e84beec1-31b7-4984-be66-56323fee4ce2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_e84beec1-31b7-4984-be66-56323fee4ce2" xlink:to="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:to="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_465de5f6-3665-41b1-95f8-606c1f24f623" xlink:to="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_13e87bfe-26d7-428b-8bca-1190f416711e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:to="loc_us-gaap_ProductMember_13e87bfe-26d7-428b-8bca-1190f416711e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_06e9de3c-eb7b-41ee-91f9-1c0d0e94fba4" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_b48e70d0-d9e0-4caa-99a4-12442a083c6b" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_06e9de3c-eb7b-41ee-91f9-1c0d0e94fba4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_f1b066f4-e525-4ae8-aefd-45ad628e5619" xlink:to="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_e07e4c44-1945-4e07-854a-d3eab65cf2e3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_RevenuesAbstract_e07e4c44-1945-4e07-854a-d3eab65cf2e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f50d95ea-eb92-4ad2-a902-d1dcc1a7f926" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesAbstract_e07e4c44-1945-4e07-854a-d3eab65cf2e3" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f50d95ea-eb92-4ad2-a902-d1dcc1a7f926" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingCostsAndExpensesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_6d61a76c-1b26-4838-9f4a-396ffc075659" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_6d61a76c-1b26-4838-9f4a-396ffc075659" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_f87a8155-1921-4e4c-8c10-25873a346acb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_f87a8155-1921-4e4c-8c10-25873a346acb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_fd86ca7a-cb66-4b65-8876-99e04ed2aab3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_fd86ca7a-cb66-4b65-8876-99e04ed2aab3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_f732a0a7-96e1-4b6e-b2c3-d8890394536d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_RestructuringCharges_f732a0a7-96e1-4b6e-b2c3-d8890394536d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetImpairmentAndOtherCharges_75eb4d31-7301-44d5-92bd-101aacf2e123" xlink:href="cdxs-20231231.xsd#cdxs_AssetImpairmentAndOtherCharges"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_cdxs_AssetImpairmentAndOtherCharges_75eb4d31-7301-44d5-92bd-101aacf2e123" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_0b242010-4b3a-40f0-a2f6-bfe79440ec73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_b1505a55-463f-432f-9a3a-6ee2ce63ff2f" xlink:to="loc_us-gaap_CostsAndExpenses_0b242010-4b3a-40f0-a2f6-bfe79440ec73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_bfb9466c-dc9f-45f8-9ad0-11990ca650b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_OperatingIncomeLoss_bfb9466c-dc9f-45f8-9ad0-11990ca650b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest_fee4d485-6ec1-44a5-bbaa-fc95672ffd71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_InvestmentIncomeInterest_fee4d485-6ec1-44a5-bbaa-fc95672ffd71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_dee68f11-59fc-4a66-a453-c4ca1827f982" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_dee68f11-59fc-4a66-a453-c4ca1827f982" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_666946e0-280a-4a2a-b49f-54d9b09e0bbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_666946e0-280a-4a2a-b49f-54d9b09e0bbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_fcff18f3-5614-4164-aff2-3c1e2a0ac850" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_fcff18f3-5614-4164-aff2-3c1e2a0ac850" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_8fe2afae-fa83-4556-9a90-cea14eb5b08e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_NetIncomeLoss_8fe2afae-fa83-4556-9a90-cea14eb5b08e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_0a0fda8c-437f-4bd8-a8fe-288f2d72e086" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_EarningsPerShareBasic_0a0fda8c-437f-4bd8-a8fe-288f2d72e086" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_100904cb-b3b8-46ec-b5b4-9ebb3908ef6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_EarningsPerShareDiluted_100904cb-b3b8-46ec-b5b4-9ebb3908ef6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_7ee37780-8557-4bba-acd8-912b25dfe4b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_7ee37780-8557-4bba-acd8-912b25dfe4b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_646a9e82-7fd1-4b5e-b9e4-31c79c3c19ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_6ad6809f-2f77-4576-90e3-f6108c5f957c" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_646a9e82-7fd1-4b5e-b9e4-31c79c3c19ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofOperationsParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_da02f2f8-6077-4d1f-bb3b-8c3f3690369f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_da02f2f8-6077-4d1f-bb3b-8c3f3690369f" xlink:to="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:to="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_155da834-9f42-4e58-9631-c9043f25c14b" xlink:to="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_94275bca-fe9a-4fa3-b1e8-89e6ef62e50c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:to="loc_us-gaap_ProductMember_94275bca-fe9a-4fa3-b1e8-89e6ef62e50c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_63034f10-5028-4429-af51-808e3aa8e02d" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_36f82efd-87b1-4730-b3d1-01a3d956e3a2" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_63034f10-5028-4429-af51-808e3aa8e02d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_f98be929-c4a4-47eb-a337-aee637c156b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_e597cf2b-f73a-4b2b-aca3-d46658e18fdf" xlink:to="loc_us-gaap_RelatedPartyDomain_f98be929-c4a4-47eb-a337-aee637c156b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_9370a742-821f-4a05-870f-b6e3bc26249e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_f98be929-c4a4-47eb-a337-aee637c156b4" xlink:to="loc_us-gaap_RelatedPartyMember_9370a742-821f-4a05-870f-b6e3bc26249e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_2d794499-0d72-45b5-8029-a744bdc2595f" xlink:to="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4bb97918-13c4-4f95-a4d5-ebcb458d843c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4bb97918-13c4-4f95-a4d5-ebcb458d843c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_ff1b57e9-9eb8-46e2-b636-4bc32df33f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_78db5001-679b-401b-83ed-673b105cce07" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_ff1b57e9-9eb8-46e2-b636-4bc32df33f5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofStockholdersEquity"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_44a4aeb2-605d-44e8-8d03-4f251cd48a47" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_44a4aeb2-605d-44e8-8d03-4f251cd48a47" xlink:to="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_aa075da3-a551-403b-9a4e-0ed2b484fc99" xlink:to="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_ef4e8d1d-559f-4373-9273-f27d07aae121" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:to="loc_us-gaap_CommonStockMember_ef4e8d1d-559f-4373-9273-f27d07aae121" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_cd71cd26-d8e7-4cda-8e94-38fd26731d17" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_cd71cd26-d8e7-4cda-8e94-38fd26731d17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_a61db196-19c4-472f-bb34-c34f329d2848" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_11afba08-a2d5-41d6-9f29-00eb25b93217" xlink:to="loc_us-gaap_RetainedEarningsMember_a61db196-19c4-472f-bb34-c34f329d2848" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:to="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusAxis_8aec48d9-6c32-4822-bbbe-7e679d5ca93f" xlink:to="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementEmployeeMember_4e7b9309-cee2-4330-8e09-03712e583a04" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementEmployeeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementEmployeeMember_4e7b9309-cee2-4330-8e09-03712e583a04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_7cf28fa4-bc17-401a-a6cd-d0c2dc1a15db" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusDomain_0d644e87-1d98-4fc0-8e7e-f29bd39bc422" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_7cf28fa4-bc17-401a-a6cd-d0c2dc1a15db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_9a3651a1-d09a-4ccc-a5ce-394df3d3138b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_b5b6fe56-a249-4af1-a06b-57f4f1e1bec1" xlink:to="loc_us-gaap_StatementLineItems_9a3651a1-d09a-4ccc-a5ce-394df3d3138b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_9a3651a1-d09a-4ccc-a5ce-394df3d3138b" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_9f7c6e6a-932b-444a-9087-e450b6c5e5ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_SharesOutstanding_9f7c6e6a-932b-444a-9087-e450b6c5e5ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_ead12e9a-0250-4c2c-8162-9f3aae3f7adf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockholdersEquity_ead12e9a-0250-4c2c-8162-9f3aae3f7adf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_5b2a5bc5-ccd6-4ef0-9b0c-5b46b1e2a241" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_5b2a5bc5-ccd6-4ef0-9b0c-5b46b1e2a241" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_c1c06180-8104-49de-9613-e850d6b04f92" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_c1c06180-8104-49de-9613-e850d6b04f92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesOther_7d97afb7-0af7-459a-98d5-ef6b66e8ac0a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesOther"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesOther_7d97afb7-0af7-459a-98d5-ef6b66e8ac0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_73df0175-350c-4ffd-a983-cd914dd9e1b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_73df0175-350c-4ffd-a983-cd914dd9e1b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_49f2ca9e-3664-4dd0-9daa-b94b1b0be1d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_49f2ca9e-3664-4dd0-9daa-b94b1b0be1d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_dd6cbb40-b167-445e-aaad-6bd4cd8f2d0d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_dd6cbb40-b167-445e-aaad-6bd4cd8f2d0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_ea89ac38-d7f2-4df9-b273-d359961a8960" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_ea89ac38-d7f2-4df9-b273-d359961a8960" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_1dbda10b-b7ac-4cc4-93df-bdb95288e030" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_1dbda10b-b7ac-4cc4-93df-bdb95288e030" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_52ba64ae-ea82-4d75-9c99-74251680b947" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_NetIncomeLoss_52ba64ae-ea82-4d75-9c99-74251680b947" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_56d8f258-8b02-467d-b873-c46abddc93c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_SharesOutstanding_56d8f258-8b02-467d-b873-c46abddc93c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_cddf0040-86e8-47a5-98cf-1ed128a56ac3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a6828a53-73e6-47dd-8680-567461ce63c1" xlink:to="loc_us-gaap_StockholdersEquity_cddf0040-86e8-47a5-98cf-1ed128a56ac3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofStockholdersEquityParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_0bee398e-4acf-47c4-84df-a1b6076f479d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts_77b2de70-5a8d-40d3-acc5-e445187c30d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_0bee398e-4acf-47c4-84df-a1b6076f479d" xlink:to="loc_us-gaap_PaymentsOfStockIssuanceCosts_77b2de70-5a8d-40d3-acc5-e445187c30d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_83f21e15-406e-4ec5-8278-40c8c9b1dc76" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_83f21e15-406e-4ec5-8278-40c8c9b1dc76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_47b6be58-8b9d-45c6-b8a1-535843c2bbdc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_83f21e15-406e-4ec5-8278-40c8c9b1dc76" xlink:to="loc_us-gaap_NetIncomeLoss_47b6be58-8b9d-45c6-b8a1-535843c2bbdc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_83f21e15-406e-4ec5-8278-40c8c9b1dc76" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_97008063-edf3-4bc8-a833-06fdd2918ef5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_Depreciation_97008063-edf3-4bc8-a833-06fdd2918ef5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_23050bd1-475d-4d27-9d9d-91c061887128" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_23050bd1-475d-4d27-9d9d-91c061887128" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_d368a974-4e6c-4477-ac2b-66c9fca59462" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_ShareBasedCompensation_d368a974-4e6c-4477-ac2b-66c9fca59462" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_effa1027-063b-414b-b4ce-b0304250f665" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_effa1027-063b-414b-b4ce-b0304250f665" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_d498f4ab-d2ec-4060-9874-181f7869f296" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncome"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_OtherNoncashIncome_d498f4ab-d2ec-4060-9874-181f7869f296" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_705c73f8-b86b-4d8d-99fa-39e1e98d1ba7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_705c73f8-b86b-4d8d-99fa-39e1e98d1ba7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetImpairmentAndOtherCharges_86fc988b-4fc3-4a55-829b-9822931bc1d0" xlink:href="cdxs-20231231.xsd#cdxs_AssetImpairmentAndOtherCharges"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_cdxs_AssetImpairmentAndOtherCharges_86fc988b-4fc3-4a55-829b-9822931bc1d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_0ed9b104-70b7-4ffa-9428-9a2bb9f45f60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_0ed9b104-70b7-4ffa-9428-9a2bb9f45f60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_3f1ac4cd-ebc4-4c20-9567-c24d49aeff10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_3f1ac4cd-ebc4-4c20-9567-c24d49aeff10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_cff18ffd-e566-4619-b058-d7b526ad32a4" xlink:to="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_b5a56619-06f3-49a2-9a25-5be97cbadab3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInFinanceReceivables"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_b5a56619-06f3-49a2-9a25-5be97cbadab3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_8228b265-4768-43fb-a8a6-aa820f8cd452" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_8228b265-4768-43fb-a8a6-aa820f8cd452" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_cae45b0a-abd4-4f89-a395-1ad671ca7964" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_cae45b0a-abd4-4f89-a395-1ad671ca7964" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_a4f83ec8-1697-4146-8cbe-5cd0497f461a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_a4f83ec8-1697-4146-8cbe-5cd0497f461a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_753a73d9-d13f-4661-8772-0f5fd65a4711" xlink:href="cdxs-20231231.xsd#cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_753a73d9-d13f-4661-8772-0f5fd65a4711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_f3524843-c47d-452e-9431-01623c1c8b36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_f3524843-c47d-452e-9431-01623c1c8b36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7a5ce06a-098a-4bff-878d-7693e4102e48" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_d9b9e175-6698-4b84-af93-98a1f99c3c8e" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7a5ce06a-098a-4bff-878d-7693e4102e48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_98210a1b-a984-410e-a4cd-b51848328766" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_83f21e15-406e-4ec5-8278-40c8c9b1dc76" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_98210a1b-a984-410e-a4cd-b51848328766" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_ec125c33-5bb8-419d-b8c9-ff89827195bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_ec125c33-5bb8-419d-b8c9-ff89827195bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_e2701094-fb07-4321-a136-7cc9422e3b28" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_ec125c33-5bb8-419d-b8c9-ff89827195bc" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_e2701094-fb07-4321-a136-7cc9422e3b28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_a3b1ccfa-ede5-45c5-a267-a4ee73cc9876" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_ec125c33-5bb8-419d-b8c9-ff89827195bc" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_a3b1ccfa-ede5-45c5-a267-a4ee73cc9876" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_5452b805-fef9-4dfc-9a13-cd85736f64bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_ec125c33-5bb8-419d-b8c9-ff89827195bc" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_5452b805-fef9-4dfc-9a13-cd85736f64bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_a6650369-6db0-4eb7-b817-86c40cc83026" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_ec125c33-5bb8-419d-b8c9-ff89827195bc" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_a6650369-6db0-4eb7-b817-86c40cc83026" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_954e10af-a2c0-4d43-ae22-f5743dac0069" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_954e10af-a2c0-4d43-ae22-f5743dac0069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_a60988d4-b406-4b48-9554-ee194dd4f7a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_a60988d4-b406-4b48-9554-ee194dd4f7a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfFinancingCosts_03a31f6c-4151-4490-8693-e0af6d9efff0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfFinancingCosts"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:to="loc_us-gaap_PaymentsOfFinancingCosts_03a31f6c-4151-4490-8693-e0af6d9efff0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_53f420ea-8886-4eff-9ef6-194746443aed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_53f420ea-8886-4eff-9ef6-194746443aed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_15358686-52e0-4f38-89fc-ca69540c4b09" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_9aa62b1c-9389-4eae-b3fb-6422e147a1df" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_15358686-52e0-4f38-89fc-ca69540c4b09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_bad6878c-8a6f-4c50-9b40-dead68765287" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_bad6878c-8a6f-4c50-9b40-dead68765287" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_d339accb-a138-43e4-a79c-91c9cd0b2e06" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_d339accb-a138-43e4-a79c-91c9cd0b2e06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c729202c-7c01-410d-8ab9-307a80a58032" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c729202c-7c01-410d-8ab9-307a80a58032" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalCashFlowInformationAbstract_7011cd50-4261-419c-81db-53fc0e500555" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowInformationAbstract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_SupplementalCashFlowInformationAbstract_7011cd50-4261-419c-81db-53fc0e500555" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPaidNet_ae42e334-9356-42d9-b452-b454c67e13b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestPaidNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_7011cd50-4261-419c-81db-53fc0e500555" xlink:to="loc_us-gaap_InterestPaidNet_ae42e334-9356-42d9-b452-b454c67e13b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_227f1370-7afb-42bf-9c01-43e72c02552b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_7011cd50-4261-419c-81db-53fc0e500555" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_227f1370-7afb-42bf-9c01-43e72c02552b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract_3cbb2f84-03ea-42c6-937b-e763c6310fbc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract_3cbb2f84-03ea-42c6-937b-e763c6310fbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid_0802c464-5f26-4f2b-ad75-d9f5faa88357" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract_3cbb2f84-03ea-42c6-937b-e763c6310fbc" xlink:to="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid_0802c464-5f26-4f2b-ad75-d9f5faa88357" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_946d3d50-a19b-400c-a0f6-3d5e19508aa2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_946d3d50-a19b-400c-a0f6-3d5e19508aa2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalents_b845514a-ddee-49ea-8886-552690471c5d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalents"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalents_b845514a-ddee-49ea-8886-552690471c5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_763d64af-d495-4c63-9ab3-8506344df382" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_bc7479af-d11f-4942-a8bb-98d12d4b3fe1" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_763d64af-d495-4c63-9ab3-8506344df382" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="simple" xlink:href="cdxs-20231231.xsd#ConsolidatedStatementsofCashFlowsParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_7dfc0936-9d81-4289-ae55-8b14b2a6d641" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_7dfc0936-9d81-4289-ae55-8b14b2a6d641" xlink:to="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_80b48d48-ebbb-47a1-a840-eaf89e091634" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_4eabe8da-9d31-4cb2-a54d-c137d9e785e1" xlink:to="loc_us-gaap_RelatedPartyDomain_80b48d48-ebbb-47a1-a840-eaf89e091634" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_f746154a-1180-49df-947f-fb8323af9a36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_80b48d48-ebbb-47a1-a840-eaf89e091634" xlink:to="loc_us-gaap_RelatedPartyMember_f746154a-1180-49df-947f-fb8323af9a36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_3097f772-6d93-423f-9964-f45d7adad1a6" xlink:to="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_3965f671-c137-4b09-a5ab-8d2a2ef65ead" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncome"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_OtherNoncashIncome_3965f671-c137-4b09-a5ab-8d2a2ef65ead" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_f9b1b119-d258-485d-9c5a-0791fac6d8bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_f9b1b119-d258-485d-9c5a-0791fac6d8bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_94cc73d0-d70a-4fe7-a350-e36aa50b2b2d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_94cc73d0-d70a-4fe7-a350-e36aa50b2b2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_611bd455-43e3-4b02-ab69-739db18e6a2e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_3f156652-4df4-4f9b-81f7-b2639eb019d3" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_611bd455-43e3-4b02-ab69-739db18e6a2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DescriptionofBusiness" xlink:type="simple" xlink:href="cdxs-20231231.xsd#DescriptionofBusiness"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DescriptionofBusiness" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_d0f0b046-47da-449f-a827-60530d8a65d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NatureOfOperations_b886f38a-9d29-4066-8200-a4f00e50926e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NatureOfOperations"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_d0f0b046-47da-449f-a827-60530d8a65d6" xlink:to="loc_us-gaap_NatureOfOperations_b886f38a-9d29-4066-8200-a4f00e50926e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPolicies"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_35f39ea8-040a-4970-9b6c-e6fe26c2d9df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_48d8be0d-a405-48f8-b0e8-be6b75f4a185" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_35f39ea8-040a-4970-9b6c-e6fe26c2d9df" xlink:to="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_48d8be0d-a405-48f8-b0e8-be6b75f4a185" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognition"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognition" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_a3ba6873-23dc-43c8-b634-fd581757aef2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_277ea144-1fc3-4fd3-ab16-e5c1f72111db" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_a3ba6873-23dc-43c8-b634-fd581757aef2" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_277ea144-1fc3-4fd3-ab16-e5c1f72111db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShare" xlink:type="simple" xlink:href="cdxs-20231231.xsd#NetLossperShare"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/NetLossperShare" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_69d20498-b5e4-4aa2-8d61-e1efdd7dfb70" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_ae0204b2-4a56-419f-8ff4-264d0aab7b8d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_69d20498-b5e4-4aa2-8d61-e1efdd7dfb70" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_ae0204b2-4a56-419f-8ff4-264d0aab7b8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangements" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangements"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentAbstract_73fa9306-2f46-487e-837f-3ebdb86c1d14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock_cf0a9190-dcc0-4dc7-86c6-00168bc99ea1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentAbstract_73fa9306-2f46-487e-837f-3ebdb86c1d14" xlink:to="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock_cf0a9190-dcc0-4dc7-86c6-00168bc99ea1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecurities" xlink:type="simple" xlink:href="cdxs-20231231.xsd#InvestmentsinNonMarketableSecurities"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecurities" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_b642f3d8-ca9b-47d3-9412-9d31d8b9c6f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_68f96b5e-60ff-45e8-a35b-864e8d26646a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_b642f3d8-ca9b-47d3-9412-9d31d8b9c6f3" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_68f96b5e-60ff-45e8-a35b-864e8d26646a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cdxs-20231231.xsd#FairValueMeasurements"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_fd44e1a2-bfe2-49f1-b8c8-a9bc5905c7f9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_da2896ab-0757-4521-a9f4-21357cd1ea37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementInputsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_fd44e1a2-bfe2-49f1-b8c8-a9bc5905c7f9" xlink:to="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_da2896ab-0757-4521-a9f4-21357cd1ea37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_f96b78a2-dd23-4159-bc5f-ceb64474aa6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_46245190-abd6-43cc-9d05-3523a5b8f1ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_f96b78a2-dd23-4159-bc5f-ceb64474aa6e" xlink:to="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_46245190-abd6-43cc-9d05-3523a5b8f1ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensation" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensation"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_06fdb705-bda3-4751-a028-b5fd884b6f1a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_039d59e3-76e7-41e3-9c1b-e987707657b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_06fdb705-bda3-4751-a028-b5fd884b6f1a" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_039d59e3-76e7-41e3-9c1b-e987707657b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CapitalStock" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CapitalStock"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CapitalStock" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_b3e16c99-fe94-493d-8b29-dd06c65a5f04" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_7bdb321d-986a-49ad-82ab-ac617019d051" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_b3e16c99-fe94-493d-8b29-dd06c65a5f04" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_7bdb321d-986a-49ad-82ab-ac617019d051" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/A401kPlan" xlink:type="simple" xlink:href="cdxs-20231231.xsd#A401kPlan"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/A401kPlan" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_51253be7-19c2-4e37-8b06-d6ecac17b28f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_210240cd-e380-4293-b7c0-fe9ade2c0de6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_51253be7-19c2-4e37-8b06-d6ecac17b28f" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_210240cd-e380-4293-b7c0-fe9ade2c0de6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxes" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxes"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_c90f5178-693b-4f9b-8796-0c4a6f9a433a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_df83488f-5965-4913-bfeb-e58a2e4e9b23" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_c90f5178-693b-4f9b-8796-0c4a6f9a433a" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_df83488f-5965-4913-bfeb-e58a2e4e9b23" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingencies" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingencies"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingencies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_b8b096fe-6a7f-418d-9e3f-a69c6ed595e5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_422929f4-49e0-40ec-ba1a-c0513676de7b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_b8b096fe-6a7f-418d-9e3f-a69c6ed595e5" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_422929f4-49e0-40ec-ba1a-c0513676de7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RelatedPartyTransactions" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RelatedPartyTransactions"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RelatedPartyTransactions" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_6fb90df2-b97b-4dfd-a256-87b1f51e0945" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsDisclosureTextBlock_a1547b90-857f-466c-9a69-9a95ee002909" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_6fb90df2-b97b-4dfd-a256-87b1f51e0945" xlink:to="loc_us-gaap_RelatedPartyTransactionsDisclosureTextBlock_a1547b90-857f-466c-9a69-9a95ee002909" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformation"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_8898124e-3528-4283-ad7c-65d5c12f9e67" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_e30b2129-5e7b-4de4-b45c-a2e82d6d82da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_8898124e-3528-4283-ad7c-65d5c12f9e67" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_e30b2129-5e7b-4de4-b45c-a2e82d6d82da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AllowanceforCreditLosses" xlink:type="simple" xlink:href="cdxs-20231231.xsd#AllowanceforCreditLosses"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/AllowanceforCreditLosses" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesAbstract_8ef32c87-4804-4a9f-a847-e79786b46bd4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditLossFinancialInstrumentTextBlock_e8e6457a-432f-4f74-bfc5-697b7582f556" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditLossFinancialInstrumentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivablesAbstract_8ef32c87-4804-4a9f-a847-e79786b46bd4" xlink:to="loc_us-gaap_CreditLossFinancialInstrumentTextBlock_e8e6457a-432f-4f74-bfc5-697b7582f556" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RestructuringCharges"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RestructuringCharges" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_bbad0968-7251-4867-aae2-7c27d849dc7b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_760de369-680c-498d-a961-706d9403fb25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_bbad0968-7251-4867-aae2-7c27d849dc7b" xlink:to="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_760de369-680c-498d-a961-706d9403fb25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SubsequentEvents" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SubsequentEvents"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SubsequentEvents" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_36355def-2cd3-4210-a33f-eed3cec0364b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_c83992ec-d9a1-4152-9114-d7f69dfea8e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_36355def-2cd3-4210-a33f-eed3cec0364b" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_c83992ec-d9a1-4152-9114-d7f69dfea8e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_fce73509-85e1-44c4-9bf2-42fc10f6ce37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_fce73509-85e1-44c4-9bf2-42fc10f6ce37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates_b5d369ce-a18c-4e69-afb7-ae0b9d9b243b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UseOfEstimates"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_UseOfEstimates_b5d369ce-a18c-4e69-afb7-ae0b9d9b243b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_16bed5ca-abdd-4b05-a51f-7b852bed5bd6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_16bed5ca-abdd-4b05-a51f-7b852bed5bd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_eee630bb-6c03-4f21-8921-cd96c96a49a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_eee630bb-6c03-4f21-8921-cd96c96a49a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpensePolicy_051a6e65-4aeb-4121-8631-d9e68aabf401" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpensePolicy_051a6e65-4aeb-4121-8631-d9e68aabf401" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_a11f7620-3c72-4395-b168-459267fbd6be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_a11f7620-3c72-4395-b168-459267fbd6be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_dd80c94d-b7c1-4694-9c60-fbfc291d67f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_dd80c94d-b7c1-4694-9c60-fbfc291d67f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_5e755b1f-7706-40eb-89e4-108e2544985c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_5e755b1f-7706-40eb-89e4-108e2544985c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_468f222c-a667-4807-8642-c25a7a018341" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_468f222c-a667-4807-8642-c25a7a018341" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_927377f9-9943-4c2d-88c1-eb927ca9cc71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_927377f9-9943-4c2d-88c1-eb927ca9cc71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskCreditRisk_276cec78-c18d-44b4-a53b-f589744fdbc3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskCreditRisk"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_ConcentrationRiskCreditRisk_276cec78-c18d-44b4-a53b-f589744fdbc3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_15af6b74-b3c9-4439-b685-b1ea3cdd45ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_15af6b74-b3c9-4439-b685-b1ea3cdd45ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_ebf454fb-bb0d-4ce5-9d21-920fe22d0001" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_ebf454fb-bb0d-4ce5-9d21-920fe22d0001" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_3fd8e031-2a09-4d70-a562-a5ed0a512314" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_3fd8e031-2a09-4d70-a562-a5ed0a512314" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_b3b7d180-0804-4482-b445-b4d4dda4fbe2" xlink:href="cdxs-20231231.xsd#cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_b3b7d180-0804-4482-b445-b4d4dda4fbe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_e1578dd9-7eb8-4172-8c1c-f4c8eaaad568" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_e1578dd9-7eb8-4172-8c1c-f4c8eaaad568" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_af5ced21-02df-478e-9b76-ef2bf4fccb85" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_af5ced21-02df-478e-9b76-ef2bf4fccb85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock_42f5192d-82e1-419e-8724-1008b222cca2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_InvestmentPolicyTextBlock_42f5192d-82e1-419e-8724-1008b222cca2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1202ba4e-84ce-4c55-b38d-f7ff39cd77e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_1202ba4e-84ce-4c55-b38d-f7ff39cd77e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock_2c13acf2-30d9-4c13-8d71-071230338d02" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_LesseeLeasesPolicyTextBlock_2c13acf2-30d9-4c13-8d71-071230338d02" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_b629155e-f32a-46ae-b529-5a7e792dfd4e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_b629155e-f32a-46ae-b529-5a7e792dfd4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_5603b910-f2a0-46e6-abad-080e5a3764f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_5603b910-f2a0-46e6-abad-080e5a3764f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock_ce1befc4-93d7-4035-87a9-30c06e3d053e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4401d95-33c3-47b3-9375-7c7531870159" xlink:to="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock_ce1befc4-93d7-4035-87a9-30c06e3d053e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_12db68a6-685b-4247-a5e9-a5d1f0403841" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_89c5c03d-48d8-4b29-8099-7afcfe197fc0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_12db68a6-685b-4247-a5e9-a5d1f0403841" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_89c5c03d-48d8-4b29-8099-7afcfe197fc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9f21ad90-5b6c-422e-a193-0652769f4105" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_ff60b83b-1452-4e8f-841e-5e0fc6f22e4e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9f21ad90-5b6c-422e-a193-0652769f4105" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_ff60b83b-1452-4e8f-841e-5e0fc6f22e4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_fb7732ae-5e5e-400a-9c49-584d068ce48f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9f21ad90-5b6c-422e-a193-0652769f4105" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_fb7732ae-5e5e-400a-9c49-584d068ce48f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_69187e80-9543-478b-95a7-55846dca3589" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9f21ad90-5b6c-422e-a193-0652769f4105" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_69187e80-9543-478b-95a7-55846dca3589" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShareTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#NetLossperShareTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/NetLossperShareTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_932f6c3e-2ac0-4b94-b359-6a736e8fe7d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_37aa6f3d-ce36-40bc-a130-d09a41726b94" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_932f6c3e-2ac0-4b94-b359-6a736e8fe7d7" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_37aa6f3d-ce36-40bc-a130-d09a41726b94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#InvestmentsinNonMarketableSecuritiesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_3c8b33db-4cba-4c0f-b8db-f2257910df7a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_9c362b3d-e4e7-43de-ad9c-1112d1827240" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_3c8b33db-4cba-4c0f-b8db-f2257910df7a" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_9c362b3d-e4e7-43de-ad9c-1112d1827240" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#FairValueMeasurementsTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_9fee3793-3407-40ef-9484-35738a09a56c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_e5b2c1cc-8395-40c3-88d7-0d193e92df3d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_9fee3793-3407-40ef-9484-35738a09a56c" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_e5b2c1cc-8395-40c3-88d7-0d193e92df3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_98a5222b-017c-4dc4-baff-a73148689b1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock_e5de2776-5537-4e9c-81df-ba5fbfea6b5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_98a5222b-017c-4dc4-baff-a73148689b1c" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock_e5de2776-5537-4e9c-81df-ba5fbfea6b5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_6c42bcf7-ec97-4cba-b379-7f8f1d9ab4b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_98a5222b-017c-4dc4-baff-a73148689b1c" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_6c42bcf7-ec97-4cba-b379-7f8f1d9ab4b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_7e8cad40-cb9e-4718-88a8-90f1dbae0884" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_98a5222b-017c-4dc4-baff-a73148689b1c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_7e8cad40-cb9e-4718-88a8-90f1dbae0884" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_59ba86ec-56f5-4cf0-8671-4baf16ef3633" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_98a5222b-017c-4dc4-baff-a73148689b1c" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_59ba86ec-56f5-4cf0-8671-4baf16ef3633" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_a64b3c0b-ceeb-4177-b38a-f4c7d4a72844" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_98a5222b-017c-4dc4-baff-a73148689b1c" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_a64b3c0b-ceeb-4177-b38a-f4c7d4a72844" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_c3917aaa-876b-4aa7-b746-36f55652c2af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_c3917aaa-876b-4aa7-b746-36f55652c2af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_a97a3661-b54d-463d-a6c1-e3092b6c823a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_a97a3661-b54d-463d-a6c1-e3092b6c823a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_24ba5cf0-2931-4bac-b13c-5cc31a5243d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_24ba5cf0-2931-4bac-b13c-5cc31a5243d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_b182bd38-28b1-4258-be83-e67061a2ed4f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_b182bd38-28b1-4258-be83-e67061a2ed4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_b4cce49d-4e29-4bb5-9ea2-fd071a95deb7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_b4cce49d-4e29-4bb5-9ea2-fd071a95deb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_d10724d6-e377-4049-837c-68daa08100d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_d10724d6-e377-4049-837c-68daa08100d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_64d8ec0d-1311-4f64-8dd6-1d1e6bf0db96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_5f4fdec9-8ac3-4582-9397-15a6922a0287" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_64d8ec0d-1311-4f64-8dd6-1d1e6bf0db96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_4af8d63e-60bc-421d-b50b-e734356c0505" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:to="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_4af8d63e-60bc-421d-b50b-e734356c0505" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_50d64eed-44cf-4425-bbad-7f3807018db0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_50d64eed-44cf-4425-bbad-7f3807018db0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_436dc8b4-904a-4dee-8d04-02a8e88d5e33" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_436dc8b4-904a-4dee-8d04-02a8e88d5e33" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_4b1215e6-3dea-425e-a4e1-5cd94502034f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_4b1215e6-3dea-425e-a4e1-5cd94502034f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_451d5e84-fa37-43ab-aa35-78139f778f28" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:to="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_451d5e84-fa37-43ab-aa35-78139f778f28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_0c67357a-961f-4f69-8b54-b7cf92495e9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1a398818-8f91-4e3e-8d6a-e8bfcbfcdf6c" xlink:to="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_0c67357a-961f-4f69-8b54-b7cf92495e9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_a62f057c-2035-4490-b5ed-f054c5dddc63" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_90cd32d0-1eb4-47eb-a282-37c2710bb22a" xlink:href="cdxs-20231231.xsd#cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_a62f057c-2035-4490-b5ed-f054c5dddc63" xlink:to="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_90cd32d0-1eb4-47eb-a282-37c2710bb22a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCostTableTextBlock_08e06ae5-a14a-404d-b881-404e4a3b33e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCostTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_a62f057c-2035-4490-b5ed-f054c5dddc63" xlink:to="loc_us-gaap_LeaseCostTableTextBlock_08e06ae5-a14a-404d-b881-404e4a3b33e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_925fe4f8-42c4-4268-ad80-00123c5928f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_a62f057c-2035-4490-b5ed-f054c5dddc63" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_925fe4f8-42c4-4268-ad80-00123c5928f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplyCommitmentTableTextBlock_cb3255f7-4748-4716-a56d-95a718b23b51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplyCommitmentTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_a62f057c-2035-4490-b5ed-f054c5dddc63" xlink:to="loc_us-gaap_SupplyCommitmentTableTextBlock_cb3255f7-4748-4716-a56d-95a718b23b51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_3bf679ad-4cdc-41e6-b2db-592711648a0f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_91fedb07-1566-4809-91a0-aae183e65406" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bf679ad-4cdc-41e6-b2db-592711648a0f" xlink:to="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_91fedb07-1566-4809-91a0-aae183e65406" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_aa355b93-fa39-42ac-82a7-8a0ee44e78d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bf679ad-4cdc-41e6-b2db-592711648a0f" xlink:to="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_aa355b93-fa39-42ac-82a7-8a0ee44e78d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_0b537b6a-c882-414e-b69c-9332aa141b21" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bf679ad-4cdc-41e6-b2db-592711648a0f" xlink:to="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_0b537b6a-c882-414e-b69c-9332aa141b21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_563d071d-92b0-425c-9244-5d591f1aa828" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bf679ad-4cdc-41e6-b2db-592711648a0f" xlink:to="loc_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_563d071d-92b0-425c-9244-5d591f1aa828" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AllowanceforCreditLossesTables" xlink:type="simple" xlink:href="cdxs-20231231.xsd#AllowanceforCreditLossesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/AllowanceforCreditLossesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesAbstract_6465b3e1-adf2-45e1-a24e-3f2cab736e0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_913068c6-63cb-48d5-8d34-8fea2cd4d842" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivablesAbstract_6465b3e1-adf2-45e1-a24e-3f2cab736e0b" xlink:to="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_913068c6-63cb-48d5-8d34-8fea2cd4d842" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PastDueFinancingReceivablesTableTextBlock_916d0508-f32c-4792-8a89-76c293f21a64" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PastDueFinancingReceivablesTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivablesAbstract_6465b3e1-adf2-45e1-a24e-3f2cab736e0b" xlink:to="loc_us-gaap_PastDueFinancingReceivablesTableTextBlock_916d0508-f32c-4792-8a89-76c293f21a64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DescriptionofBusinessDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#DescriptionofBusinessDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DescriptionofBusinessDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_5e2a32c2-6c4a-407d-88fc-dba3b613c761" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_eb8fd5a6-b01b-4558-ad82-6981b999725a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_5e2a32c2-6c4a-407d-88fc-dba3b613c761" xlink:to="loc_us-gaap_NumberOfReportableSegments_eb8fd5a6-b01b-4558-ad82-6981b999725a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_06084bb0-18ee-4272-b540-22bfff21dc0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:href="cdxs-20231231.xsd#cdxs_AccountingPoliciesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_06084bb0-18ee-4272-b540-22bfff21dc0c" xlink:to="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_4358b1fe-6990-430d-b453-3b86ae2275ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityAxis_cf0f0a5c-33dc-4c9f-8573-92dc4986f8f4" xlink:to="loc_us-gaap_CreditFacilityDomain_4358b1fe-6990-430d-b453-3b86ae2275ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LetterOfCreditMember_d84a407d-4bce-45cd-9c7e-ca7404ab2d84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LetterOfCreditMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityDomain_4358b1fe-6990-430d-b453-3b86ae2275ec" xlink:to="loc_us-gaap_LetterOfCreditMember_d84a407d-4bce-45cd-9c7e-ca7404ab2d84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_fa600db4-62d3-414c-a0dc-5367f002576f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_2a9347d5-af09-4dc7-833d-e9f65e0ebbaa" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_fa600db4-62d3-414c-a0dc-5367f002576f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashDepositMember_89a160b8-35a8-4aac-b7ad-774554b036ce" xlink:href="cdxs-20231231.xsd#cdxs_CashDepositMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_fa600db4-62d3-414c-a0dc-5367f002576f" xlink:to="loc_cdxs_CashDepositMember_89a160b8-35a8-4aac-b7ad-774554b036ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_cb4183f4-e1b9-4c93-b107-12cb8b96f6b1" xlink:to="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FourCustomersMember_cc2d4cfb-1622-4c0d-b382-371be2ed080e" xlink:href="cdxs-20231231.xsd#cdxs_FourCustomersMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:to="loc_cdxs_FourCustomersMember_cc2d4cfb-1622-4c0d-b382-371be2ed080e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TwoCustomersMember_75da6c66-f88f-4e1a-97fc-6e2da72259d3" xlink:href="cdxs-20231231.xsd#cdxs_TwoCustomersMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_32702bf5-6833-4ef7-b0b1-ef6650d3adcc" xlink:to="loc_cdxs_TwoCustomersMember_75da6c66-f88f-4e1a-97fc-6e2da72259d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f286ca5a-192f-487d-b5cc-e3898666cd64" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_b2e67791-af5f-4236-b01a-af03f230e794" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f286ca5a-192f-487d-b5cc-e3898666cd64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_4b118a40-9bc4-4f57-bce4-2ec59d0310e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f286ca5a-192f-487d-b5cc-e3898666cd64" xlink:to="loc_us-gaap_AccountsReceivableMember_4b118a40-9bc4-4f57-bce4-2ec59d0310e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_cd50fead-1a6c-4be2-aefe-ef16ee9b0406" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_89ea3262-3b69-4b52-a99c-d05e17ec93ca" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_cd50fead-1a6c-4be2-aefe-ef16ee9b0406" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_83a45484-d4b6-4ba4-80e7-0abaaf9100cd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_cd50fead-1a6c-4be2-aefe-ef16ee9b0406" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_83a45484-d4b6-4ba4-80e7-0abaaf9100cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_f232742c-514a-4d23-b116-2ec524f3b33e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_5822d4e2-5ced-45fc-8300-41180af1ef63" xlink:to="loc_us-gaap_SegmentDomain_f232742c-514a-4d23-b116-2ec524f3b33e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember_7078f04e-623c-4c5f-8ebc-d31e3633c293" xlink:href="cdxs-20231231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_f232742c-514a-4d23-b116-2ec524f3b33e" xlink:to="loc_cdxs_NovelBiotherapeuticsMember_7078f04e-623c-4c5f-8ebc-d31e3633c293" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:href="cdxs-20231231.xsd#cdxs_AccountingPoliciesLineItems"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_676e7e8d-4012-43a5-9a33-c12330b0d4b4" xlink:to="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShippingAndDistributionCost_f2fe995e-67fe-4e32-b886-1025d2838324" xlink:href="cdxs-20231231.xsd#cdxs_ShippingAndDistributionCost"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_cdxs_ShippingAndDistributionCost_f2fe995e-67fe-4e32-b886-1025d2838324" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_191c8e37-5ebf-4f43-9a5a-4d7e80c01d80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_AdvertisingExpense_191c8e37-5ebf-4f43-9a5a-4d7e80c01d80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashCurrent_b7e7367c-6fef-403c-96f7-19c2cfe0219c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_RestrictedCashCurrent_b7e7367c-6fef-403c-96f7-19c2cfe0219c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent_96356fce-b30c-4f57-83fe-09745355b368" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_RestrictedCashNoncurrent_96356fce-b30c-4f57-83fe-09745355b368" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_20f64ce9-1d90-4df8-8805-fae626b4fe49" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_20f64ce9-1d90-4df8-8805-fae626b4fe49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_877f8956-d899-4b28-ac6f-b74fbda746ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_877f8956-d899-4b28-ac6f-b74fbda746ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_f399d95e-d412-4381-9b20-6dbcbf11148e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_Goodwill_f399d95e-d412-4381-9b20-6dbcbf11148e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_d5398cb4-3e01-4255-8b0b-0fb8d0e8ba36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_d999eb8d-b1e5-4462-ab00-66ee25d4d7da" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_d5398cb4-3e01-4255-8b0b-0fb8d0e8ba36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_ae4d5a56-7379-4154-841a-7b22a8f1bb58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_ae4d5a56-7379-4154-841a-7b22a8f1bb58" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3d7a1584-34ae-4da5-8b1b-8cd8bac35202" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_ca2905c7-78a5-497d-b083-43f8509d43bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:to="loc_us-gaap_EquipmentMember_ca2905c7-78a5-497d-b083-43f8509d43bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_1f1e725d-ecb7-42fe-b00d-acf0e1d0cea0" xlink:href="cdxs-20231231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_1f1e725d-ecb7-42fe-b00d-acf0e1d0cea0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_9de1efbe-0beb-45ef-8861-b3e4332d78fb" xlink:href="cdxs-20231231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_97286535-9d84-44b1-938b-e4f617bcfbb7" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_9de1efbe-0beb-45ef-8861-b3e4332d78fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_7917d423-8597-41d3-a31f-487d5560a359" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_49e63ee7-fd71-4a03-8a38-e08cf62ab6db" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_7917d423-8597-41d3-a31f-487d5560a359" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_838cfad1-71a4-4f3b-a17b-866dae68a88e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_7917d423-8597-41d3-a31f-487d5560a359" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_838cfad1-71a4-4f3b-a17b-866dae68a88e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionDisaggregationofRevenueDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9a15b7c8-27de-4760-9962-9d75b58519cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9a15b7c8-27de-4760-9962-9d75b58519cf" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:to="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_a13c67d7-da83-4256-8e1c-6c5c8357c906" xlink:to="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_f52a94ea-f20e-4b4b-a53b-ed2bb8e8a4a8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:to="loc_us-gaap_ProductMember_f52a94ea-f20e-4b4b-a53b-ed2bb8e8a4a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_3c3a2f6d-3c25-400e-9ee9-20715a739351" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_f0bef342-7755-4657-83fe-472098866a0d" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_3c3a2f6d-3c25-400e-9ee9-20715a739351" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:to="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_3a444e9c-6ac8-4fc7-9460-99b5e8200ccf" xlink:to="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_037c6630-1cf2-400a-9c25-597fb4b89cc2" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:to="loc_srt_AmericasMember_037c6630-1cf2-400a-9c25-597fb4b89cc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_bea1f2e8-4b57-4180-9ec9-449d641feae3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:to="loc_us-gaap_EMEAMember_bea1f2e8-4b57-4180-9ec9-449d641feae3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_6ae6c899-109c-46e8-9122-a3d34b7fb592" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2bc652a0-099b-4413-bc12-662b62b5e639" xlink:to="loc_srt_AsiaPacificMember_6ae6c899-109c-46e8-9122-a3d34b7fb592" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_1292263d-418a-4699-a15f-81462c7dfc0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_f7d7bf95-5e10-46a3-b1fd-398eab19c1ee" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_1292263d-418a-4699-a15f-81462c7dfc0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0a9a3630-c592-40a2-93da-859bf73a160e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_1292263d-418a-4699-a15f-81462c7dfc0b" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0a9a3630-c592-40a2-93da-859bf73a160e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionContractswithCustomerDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_aa725b56-7322-45a1-801d-fc51be111dce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_6a2e6418-3505-4074-acfa-846a3d228fa8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_aa725b56-7322-45a1-801d-fc51be111dce" xlink:to="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_6a2e6418-3505-4074-acfa-846a3d228fa8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledContractsReceivable_9331b1cf-5de3-4b30-88cf-e5959d9d439f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledContractsReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_aa725b56-7322-45a1-801d-fc51be111dce" xlink:to="loc_us-gaap_UnbilledContractsReceivable_9331b1cf-5de3-4b30-88cf-e5959d9d439f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostNetCurrent_1deb8cdb-1c79-4290-872e-8a336c9df029" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostNetCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_aa725b56-7322-45a1-801d-fc51be111dce" xlink:to="loc_us-gaap_CapitalizedContractCostNetCurrent_1deb8cdb-1c79-4290-872e-8a336c9df029" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_cd2ca2ef-809b-4b84-b610-94fdb1b6c0af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_aa725b56-7322-45a1-801d-fc51be111dce" xlink:to="loc_us-gaap_ContractWithCustomerLiability_cd2ca2ef-809b-4b84-b610-94fdb1b6c0af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_665a9706-dfbb-4b4c-8350-dc5590fdf43f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_665a9706-dfbb-4b4c-8350-dc5590fdf43f" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_c4174285-f56b-4c0a-86f2-19df81559adb" xlink:to="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_8664d2ca-b119-44fc-b5cc-f4385b1cf78d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:to="loc_srt_MinimumMember_8664d2ca-b119-44fc-b5cc-f4385b1cf78d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_03704943-23e1-418c-b5e1-3f951ada5e57" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_cb460869-bcdc-4846-a0b2-1c4a8575d3d6" xlink:to="loc_srt_MaximumMember_03704943-23e1-418c-b5e1-3f951ada5e57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6df483bb-7ade-4385-926f-c68fd5326180" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_e772f90c-c57f-4438-84bd-1c4eb439f8ed" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6df483bb-7ade-4385-926f-c68fd5326180" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_683f8d6e-3a9f-4dbc-8ae3-11ffa1c8e0dd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_6df483bb-7ade-4385-926f-c68fd5326180" xlink:to="loc_us-gaap_AccountsReceivableMember_683f8d6e-3a9f-4dbc-8ae3-11ffa1c8e0dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_487f3c89-80da-4842-ac96-19ec50cde15c" xlink:to="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShortTermUnbilledReceivablesMember_b907c706-6518-4428-aa50-348153697e69" xlink:href="cdxs-20231231.xsd#cdxs_ShortTermUnbilledReceivablesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:to="loc_cdxs_ShortTermUnbilledReceivablesMember_b907c706-6518-4428-aa50-348153697e69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LongTermUnbilledReceivablesMember_c782e489-2b12-4b74-982c-46c721becffc" xlink:href="cdxs-20231231.xsd#cdxs_LongTermUnbilledReceivablesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivableTypeDomain_77ad7711-d24e-4d2b-b160-c12712318f68" xlink:to="loc_cdxs_LongTermUnbilledReceivablesMember_c782e489-2b12-4b74-982c-46c721becffc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4e8c5c36-ef44-4030-9daa-0a5dda7c1350" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_b0d1a532-bae8-430a-98ed-da13ed187157" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromContractWithCustomerPaymentTerms"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_b0d1a532-bae8-430a-98ed-da13ed187157" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_c17e9872-6b89-4dc3-9011-9e41421d4979" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_c17e9872-6b89-4dc3-9011-9e41421d4979" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_e9b14460-a278-495b-ad71-e271e81c0dbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_0c6bd635-9d21-42e1-afaa-ca8d5074b323" xlink:to="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_e9b14460-a278-495b-ad71-e271e81c0dbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionRevenueRecognizedDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_23a6a2c8-e4a1-4a19-b10c-11a9b8b1540d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_f1c52e7c-8825-44da-b58a-48d3996490eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_23a6a2c8-e4a1-4a19-b10c-11a9b8b1540d" xlink:to="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_f1c52e7c-8825-44da-b58a-48d3996490eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_ef69f842-d70a-4096-a119-48cb93c538b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_f1c52e7c-8825-44da-b58a-48d3996490eb" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_ef69f842-d70a-4096-a119-48cb93c538b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_70c9d30e-884f-426b-9a95-32d34f2dbb9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_23a6a2c8-e4a1-4a19-b10c-11a9b8b1540d" xlink:to="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_70c9d30e-884f-426b-9a95-32d34f2dbb9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_a2ef3123-5aca-459a-805b-8b13f7214523" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_70c9d30e-884f-426b-9a95-32d34f2dbb9f" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_a2ef3123-5aca-459a-805b-8b13f7214523" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_19eafb06-9c39-42fa-9d4e-af8f2d73fafa" xlink:href="cdxs-20231231.xsd#cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_70c9d30e-884f-426b-9a95-32d34f2dbb9f" xlink:to="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_19eafb06-9c39-42fa-9d4e-af8f2d73fafa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_0b4ee878-ab35-46c4-a848-492157d11df5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_23a6a2c8-e4a1-4a19-b10c-11a9b8b1540d" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_0b4ee878-ab35-46c4-a848-492157d11df5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionPerformanceObligationDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_ddb61575-55e8-41c0-8de0-6830ffd7e4e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_ddb61575-55e8-41c0-8de0-6830ffd7e4e6" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:to="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_86d803ab-7154-4147-85bb-34f8363fcb04" xlink:to="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_69b7a004-5d82-4acc-98a0-2c2ddf1b5d98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_657988c5-77b4-4bfa-9e4d-d9974ad3fd81" xlink:to="loc_us-gaap_ProductMember_69b7a004-5d82-4acc-98a0-2c2ddf1b5d98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_92cf79dd-168d-411c-a7d6-7190f25a4c14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_92cf79dd-168d-411c-a7d6-7190f25a4c14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_20ed2f55-1f14-4067-b164-b9aba290562b" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_4395a8c9-a0fe-49bc-9523-01e1c20acbe6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_4395a8c9-a0fe-49bc-9523-01e1c20acbe6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_ef9c4f0a-0b9b-4682-93c1-054fbcc3e58c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_921e6db7-20c9-4722-a887-fae507cc5d96" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_ef9c4f0a-0b9b-4682-93c1-054fbcc3e58c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RevenueRecognitionPerformanceObligationDetails_1"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#NetLossperShareDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_77b7b8ab-c570-4f79-87e9-246778fcfe3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_77b7b8ab-c570-4f79-87e9-246778fcfe3b" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e4045f13-e01b-4415-973f-3506ceea6ddc" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockCompensationPlanMember_5472ff22-da9a-48be-85ce-c4816a5ae383" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockCompensationPlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:to="loc_us-gaap_StockCompensationPlanMember_5472ff22-da9a-48be-85ce-c4816a5ae383" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_6ce48a15-088f-4d39-8d4e-83b5486f21bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_64220323-1fbf-43db-9815-1e228d9fbc83" xlink:to="loc_us-gaap_EmployeeStockMember_6ce48a15-088f-4d39-8d4e-83b5486f21bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_d8e4b5f4-2657-40f4-add9-3ef7a767df06" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_a39afc55-fcb2-41a4-b69d-4ef9f94b7a2b" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_d8e4b5f4-2657-40f4-add9-3ef7a767df06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_0fc639c2-9237-4f68-8d02-d8423bc3a2ff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_d8e4b5f4-2657-40f4-add9-3ef7a767df06" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_0fc639c2-9237-4f68-8d02-d8423bc3a2ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_653b6616-5d36-441b-8fce-45513303101e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_653b6616-5d36-441b-8fce-45513303101e" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_80331232-b217-461d-afdc-e362c51dba2e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_0a496578-ec06-4169-8fa8-d267b5ae1afd" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_80331232-b217-461d-afdc-e362c51dba2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_GSKMember_988ff51a-1803-4aca-97f0-104046f406b7" xlink:href="cdxs-20231231.xsd#cdxs_GSKMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_80331232-b217-461d-afdc-e362c51dba2e" xlink:to="loc_cdxs_GSKMember_988ff51a-1803-4aca-97f0-104046f406b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_b932cf08-76fe-4a73-93d2-03def5b9dc70" xlink:to="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_7b203e27-3588-4f9a-baa0-fbe557eb7fb5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:to="loc_srt_MinimumMember_7b203e27-3588-4f9a-baa0-fbe557eb7fb5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_f4c04082-f1ac-4b0f-8b08-0b72a8e17064" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_40fb81e8-d4ac-4b22-834e-238a0abbf3e7" xlink:to="loc_srt_MaximumMember_f4c04082-f1ac-4b0f-8b08-0b72a8e17064" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_b104554b-17b7-40fc-94cc-3262fa4d73b7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_e3755ed4-8d11-451c-bd87-51293023a3aa" xlink:to="loc_srt_ProductsAndServicesDomain_b104554b-17b7-40fc-94cc-3262fa4d73b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_d8a9a0a6-2192-4787-bc67-facdea473514" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_b104554b-17b7-40fc-94cc-3262fa4d73b7" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_d8a9a0a6-2192-4787-bc67-facdea473514" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_7a64a57a-7065-4f56-9867-122ae8b0db6b" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_9b9e2243-2b33-421f-bb9a-cf8d33ad9aff" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromCollaborativeArrangementContingentAmounts"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_cdxs_RevenueFromCollaborativeArrangementContingentAmounts_9b9e2243-2b33-421f-bb9a-cf8d33ad9aff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_b0ff48d9-8085-4a1a-992b-2ed320349e30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_b0ff48d9-8085-4a1a-992b-2ed320349e30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementNumberOfMilestonePayments_0c476385-6dc4-4c37-bc0b-0c77385e6bc3" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementNumberOfMilestonePayments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8cb5ad7e-5ab8-45a6-8d84-aff862222a05" xlink:to="loc_cdxs_CollaborativeArrangementNumberOfMilestonePayments_0c476385-6dc4-4c37-bc0b-0c77385e6bc3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_52bd99c0-664c-441d-a6dd-906e66868435" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_52bd99c0-664c-441d-a6dd-906e66868435" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_f126f6f7-ac7e-4d4b-aa88-fa4a1bdfbf2e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_cdfee816-e933-40d4-86e1-f8125d184d18" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_f126f6f7-ac7e-4d4b-aa88-fa4a1bdfbf2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember_c7571b0c-b737-4884-895d-b845521794fb" xlink:href="cdxs-20231231.xsd#cdxs_MerckMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_f126f6f7-ac7e-4d4b-aa88-fa4a1bdfbf2e" xlink:to="loc_cdxs_MerckMember_c7571b0c-b737-4884-895d-b845521794fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_f5bbebf0-a0bd-427f-a8e5-956cf854d964" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_6172fdfc-5d4a-47ad-b7c8-75167b3392b3" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_f5bbebf0-a0bd-427f-a8e5-956cf854d964" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_af37eba0-178d-434e-838b-49a46c74aa21" xlink:href="cdxs-20231231.xsd#cdxs_TechnologyTransferCollaborationandLicenseAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_f5bbebf0-a0bd-427f-a8e5-956cf854d964" xlink:to="loc_cdxs_TechnologyTransferCollaborationandLicenseAgreementMember_af37eba0-178d-434e-838b-49a46c74aa21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_c6542330-7eba-40d6-9451-1eba99b37255" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_206b7abf-d3ac-453b-8233-044238edb7d0" xlink:to="loc_srt_ProductsAndServicesDomain_c6542330-7eba-40d6-9451-1eba99b37255" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_0b7e2fa9-01c6-4c1d-be4b-d6e44d966068" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_c6542330-7eba-40d6-9451-1eba99b37255" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_0b7e2fa9-01c6-4c1d-be4b-d6e44d966068" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_9414c82b-9e69-4bb0-b5a1-ec59e830abdf" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_4fb7db1f-6f1e-4c87-8edf-6f1cd0016290" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_4fb7db1f-6f1e-4c87-8edf-6f1cd0016290" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_9bda155b-32d9-4c8a-93b8-5d24828cf653" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_81fd92ac-14c2-431e-886b-8c656ece3768" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_9bda155b-32d9-4c8a-93b8-5d24828cf653" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_2eb030e5-762a-4c73-a715-0dae96fab151" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_2eb030e5-762a-4c73-a715-0dae96fab151" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74090cb1-eb8b-42c8-ad49-7e8bc76ac5b5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_2e64a2a2-dd27-4a0a-ade7-06c5f3cfc7c9" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74090cb1-eb8b-42c8-ad49-7e8bc76ac5b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember_abbc2b95-edd0-4787-a305-e32d77213471" xlink:href="cdxs-20231231.xsd#cdxs_MerckMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_74090cb1-eb8b-42c8-ad49-7e8bc76ac5b5" xlink:to="loc_cdxs_MerckMember_abbc2b95-edd0-4787-a305-e32d77213471" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_d361bdc3-09fc-4bdc-ad67-12a2ef27c440" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_a190f3db-b3d2-421e-b360-352455397f9d" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_d361bdc3-09fc-4bdc-ad67-12a2ef27c440" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember_e69e3980-4da7-4c14-b4c1-c198552f4ba4" xlink:href="cdxs-20231231.xsd#cdxs_SupplyAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_d361bdc3-09fc-4bdc-ad67-12a2ef27c440" xlink:to="loc_cdxs_SupplyAgreementMember_e69e3980-4da7-4c14-b4c1-c198552f4ba4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_79ecdf29-13c5-4d49-8e6d-a68c8a87a00a" xlink:to="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_2f3aebfa-4fd9-40b2-b021-252a9c6b2039" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:to="loc_us-gaap_ProductMember_2f3aebfa-4fd9-40b2-b021-252a9c6b2039" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SitagliptinEnzymeMember_e40f9e0b-d932-4c40-b211-98fc8f5f1956" xlink:href="cdxs-20231231.xsd#cdxs_SitagliptinEnzymeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_6f660d29-792a-45d4-a754-e11c67594be6" xlink:to="loc_cdxs_SitagliptinEnzymeMember_e40f9e0b-d932-4c40-b211-98fc8f5f1956" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_41be4801-faee-4956-b3e6-5e6e79f0dfb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_ab18abd5-ed25-4ee2-bf68-89526761fd5a" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_41be4801-faee-4956-b3e6-5e6e79f0dfb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_36ea0bc7-07bd-4847-bad1-6ff3af7e0bf2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_41be4801-faee-4956-b3e6-5e6e79f0dfb6" xlink:to="loc_us-gaap_SalesRevenueNetMember_36ea0bc7-07bd-4847-bad1-6ff3af7e0bf2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_87e580a6-35ac-4efd-b63f-334fe95093f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_c61dc869-4db7-47b3-b9b1-08e350f37a77" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_87e580a6-35ac-4efd-b63f-334fe95093f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_86ccbcfe-39c3-449a-a14e-e11214303907" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_87e580a6-35ac-4efd-b63f-334fe95093f3" xlink:to="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_86ccbcfe-39c3-449a-a14e-e11214303907" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_3d42e55c-d5de-4ae9-9eac-f9ad94ba7a6e" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_d5ee0882-47d5-44cb-8111-e9d365eab8c6" xlink:href="cdxs-20231231.xsd#cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_d5ee0882-47d5-44cb-8111-e9d365eab8c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_e3e84c7e-3616-4a83-8eae-d1cf57e373f2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_e3e84c7e-3616-4a83-8eae-d1cf57e373f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_1922b6b7-7aa0-476b-b0f1-ded71dc3189f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_1922b6b7-7aa0-476b-b0f1-ded71dc3189f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a2bb48c7-8192-4855-8c13-2af776ed61c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_e8c0e3bd-648c-4367-9550-f45f49401595" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a2bb48c7-8192-4855-8c13-2af776ed61c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsEnzymeSupplyAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_8535d5fe-e7e0-4cdd-8ed4-9f6d6543064d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_8535d5fe-e7e0-4cdd-8ed4-9f6d6543064d" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:to="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_df7a6243-d998-4d89-b6ab-0adee63e779e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_bfb30864-fd23-4a1f-9249-b791925a12ec" xlink:to="loc_srt_ProductsAndServicesDomain_df7a6243-d998-4d89-b6ab-0adee63e779e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_8d91edbc-13d7-4cfa-a183-c155b7097652" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_df7a6243-d998-4d89-b6ab-0adee63e779e" xlink:to="loc_us-gaap_ProductMember_8d91edbc-13d7-4cfa-a183-c155b7097652" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:to="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_8830253c-1c1b-4af6-8343-3d521c581714" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeSupplyAgreementMember_7ca063be-3a38-482b-8a98-48001111e0a6" xlink:href="cdxs-20231231.xsd#cdxs_EnzymeSupplyAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:to="loc_cdxs_EnzymeSupplyAgreementMember_7ca063be-3a38-482b-8a98-48001111e0a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember_d6e22c03-e1c3-4612-9fd1-11c2b3c4ddd8" xlink:href="cdxs-20231231.xsd#cdxs_SupplyAgreementMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_35426c9a-2a75-40ad-b7f9-465c527a1d20" xlink:to="loc_cdxs_SupplyAgreementMember_d6e22c03-e1c3-4612-9fd1-11c2b3c4ddd8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_ddb74f17-7f29-4f74-8f63-4f4c924faec3" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_704d18d0-25bc-4a1c-a5c1-a11460bf09ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_704d18d0-25bc-4a1c-a5c1-a11460bf09ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerSettlementFee_e93cc65d-7fdb-419d-9e69-23d9904e57b6" xlink:href="cdxs-20231231.xsd#cdxs_RevenueFromContractWithCustomerSettlementFee"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_cdxs_RevenueFromContractWithCustomerSettlementFee_e93cc65d-7fdb-419d-9e69-23d9904e57b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_ecf40123-b175-4210-a5d8-0d1c48b8f32a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d10e590-4f8a-4e50-b500-22c401800aed" xlink:to="loc_us-gaap_ContractWithCustomerLiability_ecf40123-b175-4210-a5d8-0d1c48b8f32a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsCommercialAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_a245bdbd-79af-40a0-a701-1d2a11f2cbd3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_a245bdbd-79af-40a0-a701-1d2a11f2cbd3" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:to="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_079b33fa-055f-4364-9a5a-7e4f87cd49d5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_1d0d34b4-851e-4721-ae6f-3320b802903a" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_079b33fa-055f-4364-9a5a-7e4f87cd49d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TateLyleMember_ea013bfc-9ad4-4092-b805-ee342f8a2217" xlink:href="cdxs-20231231.xsd#cdxs_TateLyleMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_079b33fa-055f-4364-9a5a-7e4f87cd49d5" xlink:to="loc_cdxs_TateLyleMember_ea013bfc-9ad4-4092-b805-ee342f8a2217" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:to="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_564428c8-3fec-426d-a4c9-abe2cdb49232" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_dbb23e87-ce7a-422e-99ef-4ed25d02cf32" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_564428c8-3fec-426d-a4c9-abe2cdb49232" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercialAgreementMember_1880573a-a89f-4656-817b-5c9733fe0152" xlink:href="cdxs-20231231.xsd#cdxs_CommercialAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_564428c8-3fec-426d-a4c9-abe2cdb49232" xlink:to="loc_cdxs_CommercialAgreementMember_1880573a-a89f-4656-817b-5c9733fe0152" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a36e5a44-2e6a-4b49-956c-d5c92250b92e" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_d60662ec-9d12-4edf-a1cb-3aef1e0fef99" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_d60662ec-9d12-4edf-a1cb-3aef1e0fef99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ReceivableFromCollaborativeArrangement_83f6e6ec-b8dc-4756-84d1-ea664389d8e6" xlink:href="cdxs-20231231.xsd#cdxs_ReceivableFromCollaborativeArrangement"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_0d5e07cd-31b2-4ec3-8ed6-194d246606b9" xlink:to="loc_cdxs_ReceivableFromCollaborativeArrangement_83f6e6ec-b8dc-4756-84d1-ea664389d8e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_906a4d4c-1148-435a-89c6-f6bad1ce2f53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_906a4d4c-1148-435a-89c6-f6bad1ce2f53" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:to="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_65d65b02-cd44-4758-88a0-f6227065fa54" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_ea8b3833-58e4-4711-9fc0-b15a58a473c4" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_65d65b02-cd44-4758-88a0-f6227065fa54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestecLtd.NestleHealthSciencesMember_5cbec396-3fe0-42ee-a3e6-49b3587d2575" xlink:href="cdxs-20231231.xsd#cdxs_NestecLtd.NestleHealthSciencesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_65d65b02-cd44-4758-88a0-f6227065fa54" xlink:to="loc_cdxs_NestecLtd.NestleHealthSciencesMember_5cbec396-3fe0-42ee-a3e6-49b3587d2575" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:to="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_c9b117b2-6645-4427-ab8f-2bea401a067c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_1ddc78f0-2fce-4cc8-ad82-4cc1589c032a" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_c9b117b2-6645-4427-ab8f-2bea401a067c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_StrategicCollaborationAgreementMember_bf9390d3-2ce8-4b39-b0e8-123434c07857" xlink:href="cdxs-20231231.xsd#cdxs_StrategicCollaborationAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_c9b117b2-6645-4427-ab8f-2bea401a067c" xlink:to="loc_cdxs_StrategicCollaborationAgreementMember_bf9390d3-2ce8-4b39-b0e8-123434c07857" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_5cebb18c-9d03-4655-88a3-b8e3706ff99c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_a954a0b1-615e-4f04-9f11-c358adadb1c3" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_5cebb18c-9d03-4655-88a3-b8e3706ff99c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_aa1a3d5e-b9ef-4d43-94a1-5af8a252bc5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_5cebb18c-9d03-4655-88a3-b8e3706ff99c" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_aa1a3d5e-b9ef-4d43-94a1-5af8a252bc5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsAcquisitionAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_c80642e6-b3f4-476c-ae59-36473b015fe9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_c80642e6-b3f4-476c-ae59-36473b015fe9" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e76b854d-03a7-492d-86a6-384ded7e9e91" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_969fa8fa-3242-449d-bb93-4926ea040924" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e76b854d-03a7-492d-86a6-384ded7e9e91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestleHealthScienceMember_dd5b6c48-5202-4c29-ba54-eac27ab5839b" xlink:href="cdxs-20231231.xsd#cdxs_NestleHealthScienceMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e76b854d-03a7-492d-86a6-384ded7e9e91" xlink:to="loc_cdxs_NestleHealthScienceMember_dd5b6c48-5202-4c29-ba54-eac27ab5839b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_bb6906ba-1fb3-4b3e-a74c-c7b15e3b356b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_6df80cde-eae6-4750-bba9-b48a177ee2f0" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_bb6906ba-1fb3-4b3e-a74c-c7b15e3b356b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AcquisitionAgreementMember_c50c9c5b-ae94-4096-ac27-5a305f084117" xlink:href="cdxs-20231231.xsd#cdxs_AcquisitionAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_bb6906ba-1fb3-4b3e-a74c-c7b15e3b356b" xlink:to="loc_cdxs_AcquisitionAgreementMember_c50c9c5b-ae94-4096-ac27-5a305f084117" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_58754407-3a4b-4475-bc91-c0377c773960" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_6e1be2b5-e8d8-45b9-ac46-2778df6eb13b" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_58754407-3a4b-4475-bc91-c0377c773960" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_791e4cf5-2ea4-43a7-af2d-5959bb672182" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_58754407-3a4b-4475-bc91-c0377c773960" xlink:to="loc_us-gaap_SubsequentEventMember_791e4cf5-2ea4-43a7-af2d-5959bb672182" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_43796676-e05b-4760-b499-6a0dde3608a0" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_725c300a-f72c-434c-8717-1d854ed78258" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_725c300a-f72c-434c-8717-1d854ed78258" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_bdcee3fa-ea0e-4e8a-a8d9-643b1fd2b174" xlink:href="cdxs-20231231.xsd#cdxs_CollaborativeArrangementUpfrontFeeAmount"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_8622bb6f-84ac-4115-9088-b84d56baaca8" xlink:to="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_bdcee3fa-ea0e-4e8a-a8d9-643b1fd2b174" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsStrategicCollaborationAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_94b96464-9f67-48f7-954c-f211c3bab89b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_94b96464-9f67-48f7-954c-f211c3bab89b" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:to="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ade630e2-c5cb-4747-bb4d-294214ef36ca" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_3d7f5429-3bde-4590-b92d-32cbcde5ceab" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ade630e2-c5cb-4747-bb4d-294214ef36ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PortonMember_da057bcf-9228-42c2-b152-9b1b16f2448d" xlink:href="cdxs-20231231.xsd#cdxs_PortonMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_ade630e2-c5cb-4747-bb4d-294214ef36ca" xlink:to="loc_cdxs_PortonMember_da057bcf-9228-42c2-b152-9b1b16f2448d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_45579b66-1bad-4686-8f43-7d8ee6c1ac93" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_d7caf4ff-a52c-4013-a51d-cc1604be1c92" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:to="loc_cdxs_MilestoneOneMember_d7caf4ff-a52c-4013-a51d-cc1604be1c92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_c5f370af-fe43-46b9-b8a7-3cf2107be8b3" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_f2d6f9e2-4054-4c8e-aa9f-de313b22babd" xlink:to="loc_cdxs_MilestoneTwoMember_c5f370af-fe43-46b9-b8a7-3cf2107be8b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_c9c478ef-a091-413b-9f86-346d6c5ea2f6" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_9ef07e30-8d48-429b-8170-1369c6e3900c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_ContractWithCustomerLiability_9ef07e30-8d48-429b-8170-1369c6e3900c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_ccb97a6a-c81e-4550-9f24-a1e16d3bf479" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_ccb97a6a-c81e-4550-9f24-a1e16d3bf479" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_87a386bf-7220-4398-963f-41a9f6f059a0" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_87a386bf-7220-4398-963f-41a9f6f059a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromCollaborators_54f12eb9-d113-4a87-8d63-65881210340a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromCollaborators"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_ProceedsFromCollaborators_54f12eb9-d113-4a87-8d63-65881210340a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_b2e54c37-f705-4360-a880-edc358c1221b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_233f03c8-3c0b-4957-bc10-ccb706c6133f" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_b2e54c37-f705-4360-a880-edc358c1221b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_0bbb3b1f-b3d0-4ac8-9324-24d2ae8f0a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_0bbb3b1f-b3d0-4ac8-9324-24d2ae8f0a6c" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_162e291e-1084-40c2-9e5a-d6e2a79968db" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_74b611fd-24d7-4985-a6a8-a3b6b1e33496" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_162e291e-1084-40c2-9e5a-d6e2a79968db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovartisMember_a9aa5600-87af-4d8d-a166-13d716ec222a" xlink:href="cdxs-20231231.xsd#cdxs_NovartisMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_162e291e-1084-40c2-9e5a-d6e2a79968db" xlink:to="loc_cdxs_NovartisMember_a9aa5600-87af-4d8d-a166-13d716ec222a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_d50c2189-4956-4250-90ff-19f31812df75" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_ce84f54d-9264-4c32-b8bb-83ca8415e33a" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:to="loc_cdxs_MilestoneOneMember_ce84f54d-9264-4c32-b8bb-83ca8415e33a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_2008134f-88e8-4418-873e-d5834e62b26e" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_2b52a4a0-08a9-4376-83da-ca2503860069" xlink:to="loc_cdxs_MilestoneTwoMember_2008134f-88e8-4418-873e-d5834e62b26e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_4ae645f9-8b20-4f45-8049-288a94823784" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48f6544a-2de4-4a79-8728-f658a1d5eb1c" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_4ae645f9-8b20-4f45-8049-288a94823784" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_4313dae1-179c-4124-9929-4a0b398343a6" xlink:href="cdxs-20231231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_4ae645f9-8b20-4f45-8049-288a94823784" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_4313dae1-179c-4124-9929-4a0b398343a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_39a96b6b-4a72-486b-a60a-6fe93c0ba520" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_c2e64dfc-ee13-4c89-9757-597691fa1018" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_us-gaap_ContractWithCustomerLiability_c2e64dfc-ee13-4c89-9757-597691fa1018" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_2411c41c-d87f-4e4f-b8bf-bd049c21d0b0" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_2411c41c-d87f-4e4f-b8bf-bd049c21d0b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_dbbcd376-671a-4da1-b101-ca3ec138eb09" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentAnnualPaymentsTerm"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_dbbcd376-671a-4da1-b101-ca3ec138eb09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_4aeac44f-0bc7-45dc-89cf-60a890764895" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentAnnualReceivableIncrease"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_4aeac44f-0bc7-45dc-89cf-60a890764895" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionAnnualPayment_f15242c3-3f86-4090-9055-e18599d02c93" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionAnnualPayment"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionAnnualPayment_f15242c3-3f86-4090-9055-e18599d02c93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_4043c422-fe62-429a-84bf-985896eab5b2" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionNumberOfAnnualPayment"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_4043c422-fe62-429a-84bf-985896eab5b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_a56da70c-d297-465a-b6b5-6e931a28aeda" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_f83f1882-ebfe-4554-bbc9-2bc622b34311" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_a56da70c-d297-465a-b6b5-6e931a28aeda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsLicenseAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_322fa25f-38c6-416a-9477-44cf3098fe63" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_322fa25f-38c6-416a-9477-44cf3098fe63" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e1033964-c6d8-4186-bcf8-b8d280e3d2ef" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_4fa847d6-acb0-4353-80e5-46204e06da9c" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e1033964-c6d8-4186-bcf8-b8d280e3d2ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RocheMember_a0fe292e-e9c0-4db0-bf0b-9caafb5a7e93" xlink:href="cdxs-20231231.xsd#cdxs_RocheMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_e1033964-c6d8-4186-bcf8-b8d280e3d2ef" xlink:to="loc_cdxs_RocheMember_a0fe292e-e9c0-4db0-bf0b-9caafb5a7e93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_5041da26-6240-494c-8994-1182a90b1641" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_85669a75-6632-4401-949a-7fd5fda119e7" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneOneMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:to="loc_cdxs_MilestoneOneMember_85669a75-6632-4401-949a-7fd5fda119e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_53aff73f-a799-410f-9783-3bceb9a6f8b4" xlink:href="cdxs-20231231.xsd#cdxs_MilestoneTwoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_482b016f-b4f9-4a9f-99a7-2858aa57e08f" xlink:to="loc_cdxs_MilestoneTwoMember_53aff73f-a799-410f-9783-3bceb9a6f8b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_12faacee-a4f6-4d2a-9ddf-fe3ef9675ecf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_59c53dbd-da69-499c-b8c7-7cfce972a4be" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_12faacee-a4f6-4d2a-9ddf-fe3ef9675ecf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_a4a0fc6c-35dc-43bd-88c0-382b6f7c8fe3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_12faacee-a4f6-4d2a-9ddf-fe3ef9675ecf" xlink:to="loc_us-gaap_SubsequentEventMember_a4a0fc6c-35dc-43bd-88c0-382b6f7c8fe3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_01a5fac5-3f0e-48e3-a58f-f555dafcf0d9" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_70ebde3d-6d91-4d5c-9bb0-bc2e24915fc5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_us-gaap_ContractWithCustomerLiability_70ebde3d-6d91-4d5c-9bb0-bc2e24915fc5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_63238704-a1cb-4c1d-a6df-548b6bf257b8" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_63238704-a1cb-4c1d-a6df-548b6bf257b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_3327d405-01da-4aac-b9ea-eb5fb73118b9" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_3327d405-01da-4aac-b9ea-eb5fb73118b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_09a246ac-c994-4054-adb6-8776ac544f3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_05cffe9e-d4e9-4b4d-9de7-41f3b127a9ef" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_09a246ac-c994-4054-adb6-8776ac544f3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_0a233a18-9fc3-4a5f-9d93-51c178629c65" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_0a233a18-9fc3-4a5f-9d93-51c178629c65" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:to="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7b2a5eb5-1c41-4937-b554-5fc1a5b2a8d4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_c35f2782-e8a3-4203-9ace-7fd7cd578a0b" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7b2a5eb5-1c41-4937-b554-5fc1a5b2a8d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TakedaPharmaceuticalCoLtdMember_cbd48bee-e80b-43f4-acf1-b92168ef0538" xlink:href="cdxs-20231231.xsd#cdxs_TakedaPharmaceuticalCoLtdMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7b2a5eb5-1c41-4937-b554-5fc1a5b2a8d4" xlink:to="loc_cdxs_TakedaPharmaceuticalCoLtdMember_cbd48bee-e80b-43f4-acf1-b92168ef0538" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_8ee14392-4aca-4ad3-aa06-a7330bdc1768" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_UpFrontPaymentMember_f04b29f3-16a7-45b2-901e-cceb1e00a71e" xlink:href="cdxs-20231231.xsd#cdxs_UpFrontPaymentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:to="loc_cdxs_UpFrontPaymentMember_f04b29f3-16a7-45b2-901e-cceb1e00a71e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestonePaymentPerTargetGeneMember_21ab048d-0ab1-4a93-a907-a2d42854a5b9" xlink:href="cdxs-20231231.xsd#cdxs_MilestonePaymentPerTargetGeneMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_279cc0ff-6bb5-4655-b48d-f06ae6c6769b" xlink:to="loc_cdxs_MilestonePaymentPerTargetGeneMember_21ab048d-0ab1-4a93-a907-a2d42854a5b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_0410bb58-9bea-4603-aafb-5ddf924b612a" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_8c810a70-750a-44d5-aeff-a3834dbdc1d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_us-gaap_ContractWithCustomerLiability_8c810a70-750a-44d5-aeff-a3834dbdc1d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_e7ed1693-8511-49c3-bdbd-fcac575c6c74" xlink:href="cdxs-20231231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_e7ed1693-8511-49c3-bdbd-fcac575c6c74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_b49ea6c8-c232-4ed0-9863-df38d14b6eda" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_9745bb9b-953a-4a61-8b9b-de211a98e7a0" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_b49ea6c8-c232-4ed0-9863-df38d14b6eda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_98e13a3c-6246-4754-aefc-fcaab5ea6f62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_98e13a3c-6246-4754-aefc-fcaab5ea6f62" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_7031b13f-b6f1-4de3-aca0-18e21b4ddbe4" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_0c631ea0-6984-4b94-885b-70f0a3eb3fb5" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:to="loc_cdxs_MolecularAssembliesIncMember_0c631ea0-6984-4b94-885b-70f0a3eb3fb5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MAIAgreementMember_03437d44-c982-4bed-978f-677d7720b9e8" xlink:href="cdxs-20231231.xsd#cdxs_MAIAgreementMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_37ac4931-1e45-42c6-ab45-f14607d64471" xlink:to="loc_cdxs_MAIAgreementMember_03437d44-c982-4bed-978f-677d7720b9e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_7e24418b-6b2c-4af7-a571-b111257587c3" xlink:to="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember_7c3867df-b27e-4c83-aebb-8d4bcda9ed18" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:to="loc_us-gaap_SeriesAPreferredStockMember_7c3867df-b27e-4c83-aebb-8d4bcda9ed18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_56147251-c94d-4be5-80d7-ce559c62bb3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_56147251-c94d-4be5-80d7-ce559c62bb3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_ef38689e-12ee-4291-b342-079c6979752e" xlink:href="cdxs-20231231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e2299ae2-a646-42c3-b8ef-b17e1ddac9a2" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_ef38689e-12ee-4291-b342-079c6979752e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_39939df6-2c0b-4637-996e-ca71c59392fc" xlink:to="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RoyaltyMember_2fc8dcca-8178-43d5-8812-a28a95169253" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RoyaltyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:to="loc_us-gaap_RoyaltyMember_2fc8dcca-8178-43d5-8812-a28a95169253" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_a306a5a4-9b78-4d2f-8534-9b9f6b6dd94d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_1196c7a9-bbab-4555-aabc-bebd62449faf" xlink:to="loc_us-gaap_ProductMember_a306a5a4-9b78-4d2f-8534-9b9f6b6dd94d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_df189b4d-d2fe-4c6a-915d-b0e4515f346e" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_02fb85a3-5b0c-469b-ab55-548084ee116b" xlink:href="cdxs-20231231.xsd#cdxs_CommercializationAndEnzymeSupplyAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:to="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_02fb85a3-5b0c-469b-ab55-548084ee116b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember_2c4f2cca-09e6-4d27-965a-9f54868723d6" xlink:href="cdxs-20231231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_7258c4fe-0e00-4fd0-8173-11738e7f6e30" xlink:to="loc_cdxs_MasterCollaborationResearchAgreementMember_2c4f2cca-09e6-4d27-965a-9f54868723d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_020f8e33-64d4-49c9-95aa-bab4ffed3eeb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cc4b623d-314c-479c-8cac-1faa2e5337f4" xlink:to="loc_us-gaap_RelatedPartyDomain_020f8e33-64d4-49c9-95aa-bab4ffed3eeb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_dec91eb4-5008-419a-a93f-e869f43a734a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_020f8e33-64d4-49c9-95aa-bab4ffed3eeb" xlink:to="loc_us-gaap_RelatedPartyMember_dec91eb4-5008-419a-a93f-e869f43a734a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_b1c39ea1-ea71-42ee-9434-3625bf8a291b" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_85609ea0-4456-4425-985d-be59f89a1e1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_85609ea0-4456-4425-985d-be59f89a1e1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_9f168552-5d81-4918-8ba7-8a8037fb4808" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_9f168552-5d81-4918-8ba7-8a8037fb4808" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_ef5d0e63-9ee4-44f3-9725-a29ecfa8c4f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_ContractWithCustomerLiability_ef5d0e63-9ee4-44f3-9725-a29ecfa8c4f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerSalesMilestone_eb0d1bfd-07db-4030-a9ba-57a0de8afec2" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerSalesMilestone"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_cdxs_ContractWithCustomerSalesMilestone_eb0d1bfd-07db-4030-a9ba-57a0de8afec2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_a5fa7eed-ca61-46a4-beed-a061e1546c8c" xlink:href="cdxs-20231231.xsd#cdxs_RelatedPartyTransactionMilestonePaymentReceived"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_a5fa7eed-ca61-46a4-beed-a061e1546c8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_ee0ec62a-b6db-46b2-9c79-4fd02f61f0c0" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_ee0ec62a-b6db-46b2-9c79-4fd02f61f0c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_a10bee6b-dd7f-45af-b20b-76a4734aeb56" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3d58876e-0297-42a5-8811-cccffd8b29e0" xlink:to="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_a10bee6b-dd7f-45af-b20b-76a4734aeb56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_43d3d1e8-0ed5-4c3a-a572-0e81bfff7ef6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_43d3d1e8-0ed5-4c3a-a572-0e81bfff7ef6" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c0ccda59-62be-4d19-8365-a42ab9a9042a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_944f6cb7-3ce0-49c3-a08d-4daaf1cd28a9" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c0ccda59-62be-4d19-8365-a42ab9a9042a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PfizerMember_ea7255d8-3e9f-44ce-8f03-11cb20890746" xlink:href="cdxs-20231231.xsd#cdxs_PfizerMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c0ccda59-62be-4d19-8365-a42ab9a9042a" xlink:to="loc_cdxs_PfizerMember_ea7255d8-3e9f-44ce-8f03-11cb20890746" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_215a8d60-a755-4aec-a3a2-40e9547c2cc9" xlink:to="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeProductMember_06faaf28-9458-404e-9375-11064457fe22" xlink:href="cdxs-20231231.xsd#cdxs_EnzymeProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:to="loc_cdxs_EnzymeProductMember_06faaf28-9458-404e-9375-11064457fe22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_e4668ffd-e985-4579-a7f0-a1868c2d5484" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_5494558a-085e-4d1d-9400-751502cae487" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_e4668ffd-e985-4579-a7f0-a1868c2d5484" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_73a1232a-1bee-437e-a861-fba3b7ad9fc6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_cf4f64f5-3ce2-4b16-b81a-b14d1a8081b8" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_73a1232a-1bee-437e-a861-fba3b7ad9fc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerMember_b9b22189-7a86-4e04-a9b2-de364cab496f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_73a1232a-1bee-437e-a861-fba3b7ad9fc6" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerMember_b9b22189-7a86-4e04-a9b2-de364cab496f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_0263596f-af7f-4164-98c6-7bfc49acabb7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_0e1a7113-e953-4753-8a72-3c6a1bf7cbbf" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_0263596f-af7f-4164-98c6-7bfc49acabb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_d1ec18b4-d4c3-41ef-96d2-014baf34c22e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_0263596f-af7f-4164-98c6-7bfc49acabb7" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_d1ec18b4-d4c3-41ef-96d2-014baf34c22e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_1d598e71-37ab-4a56-8dfc-f70fd01e9e72" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_f6ba99da-7d08-4ef9-a8e8-70dc9520ad11" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFee"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_f6ba99da-7d08-4ef9-a8e8-70dc9520ad11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_96795690-b2cf-4c43-853f-17e0afb100bf" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_96795690-b2cf-4c43-853f-17e0afb100bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_8dbde8f6-5496-4263-afb0-5fcebe0e07de" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_8dbde8f6-5496-4263-afb0-5fcebe0e07de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_39bde970-54bd-49cd-83c2-2e2b34cda876" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_39bde970-54bd-49cd-83c2-2e2b34cda876" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_2d21d297-cfb6-40c3-a67b-dd0aeda7cc6b" xlink:href="cdxs-20231231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_2d21d297-cfb6-40c3-a67b-dd0aeda7cc6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_6097e290-4a94-480a-800d-6e90d6cd11ea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_6097e290-4a94-480a-800d-6e90d6cd11ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_8f3c6b05-93c7-4ed1-a3d1-9b31e223620b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_8f3c6b05-93c7-4ed1-a3d1-9b31e223620b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_aff4d0f9-bd92-4f72-9282-f660f3b21eed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_3ac772be-ab53-4ea0-90f0-f2f3be0de868" xlink:to="loc_us-gaap_ContractWithCustomerLiability_aff4d0f9-bd92-4f72-9282-f660f3b21eed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#InvestmentsinNonMarketableSecuritiesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_db7330f9-b311-4cb3-a994-9e7e8ae14643" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_db7330f9-b311-4cb3-a994-9e7e8ae14643" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_36686493-2eed-453c-85f7-a61d0aabc42a" xlink:to="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesB2PreferredStockMember_b2202615-a2d3-4241-a22d-65df8bdf2367" xlink:href="cdxs-20231231.xsd#cdxs_SeriesB2PreferredStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesB2PreferredStockMember_b2202615-a2d3-4241-a22d-65df8bdf2367" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_9a5db662-e7b8-4f97-8ddc-f9b0519ef495" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_9a5db662-e7b8-4f97-8ddc-f9b0519ef495" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_30b2e2d0-4f08-4bc6-b013-3923ea1c45fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_us-gaap_CommonStockMember_30b2e2d0-4f08-4bc6-b013-3923ea1c45fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_d0de0814-bdda-4673-a0d5-e5060ec055e7" xlink:href="cdxs-20231231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_d0de0814-bdda-4673-a0d5-e5060ec055e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesC1PreferredStockMember_843225fa-fe7f-42fd-ae9f-365e60a092a6" xlink:href="cdxs-20231231.xsd#cdxs_SeriesC1PreferredStockMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesC1PreferredStockMember_843225fa-fe7f-42fd-ae9f-365e60a092a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommonStockWarrantsMember_86bbf459-f7bd-46c7-b268-2f8dd139c261" xlink:href="cdxs-20231231.xsd#cdxs_CommonStockWarrantsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_CommonStockWarrantsMember_86bbf459-f7bd-46c7-b268-2f8dd139c261" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesCAndC1PreferredStockMember_d8533abb-b521-42b0-af8d-557909caef2a" xlink:href="cdxs-20231231.xsd#cdxs_SeriesCAndC1PreferredStockMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_20b6cb59-5a39-450a-b2f8-00bdb3f86010" xlink:to="loc_cdxs_SeriesCAndC1PreferredStockMember_d8533abb-b521-42b0-af8d-557909caef2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_494ad604-de9c-4d23-92ff-e4fd272b83ca" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_0ee74604-e518-4443-ac89-331bb5cc3254" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:to="loc_cdxs_ArzedaMember_0ee74604-e518-4443-ac89-331bb5cc3254" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_13feaabe-7f4c-4f11-9bf3-3fcd162df5b1" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_97450cdf-2746-4f47-a244-763365450590" xlink:to="loc_cdxs_MolecularAssembliesIncMember_13feaabe-7f4c-4f11-9bf3-3fcd162df5b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_693dd61d-91d2-4708-8ae8-579b1407e71f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_5f5d1e84-274c-463e-a9fa-f9b1ade38dc1" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_693dd61d-91d2-4708-8ae8-579b1407e71f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_3f25a298-2a2d-4393-a081-b996ab8a629d" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_693dd61d-91d2-4708-8ae8-579b1407e71f" xlink:to="loc_cdxs_MolecularAssembliesIncMember_3f25a298-2a2d-4393-a081-b996ab8a629d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_b6703308-0df7-458d-9a44-8752b6f50ec0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_90e0169f-5b92-427b-a3c6-1e07a3046b46" xlink:to="loc_us-gaap_RelatedPartyDomain_b6703308-0df7-458d-9a44-8752b6f50ec0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_cde03df9-0afb-4cd6-9c23-33b88fbbb3a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_b6703308-0df7-458d-9a44-8752b6f50ec0" xlink:to="loc_us-gaap_RelatedPartyMember_cde03df9-0afb-4cd6-9c23-33b88fbbb3a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7862adc3-a265-4ec2-b064-af5d01477bd2" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_016d670b-788f-4a2a-855f-7d8240f7a32c" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:to="loc_cdxs_SeqWellMember_016d670b-788f-4a2a-855f-7d8240f7a32c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_f34ced99-340e-44d3-bab8-5cbf7cfa821e" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_6c7fea91-6b81-4a56-b601-6dcb4bff4cf0" xlink:to="loc_cdxs_ArzedaMember_f34ced99-340e-44d3-bab8-5cbf7cfa821e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_2e910919-56fc-4543-813d-789fcd1ad1bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_370ef2ef-b5ba-49f1-8e0b-7c2522cd6db9" xlink:to="loc_us-gaap_EquityComponentDomain_2e910919-56fc-4543-813d-789fcd1ad1bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_4991ce87-67b5-43ac-8b2b-31a2d9f694a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_2e910919-56fc-4543-813d-789fcd1ad1bb" xlink:to="loc_us-gaap_CommonStockMember_4991ce87-67b5-43ac-8b2b-31a2d9f694a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LegalEntityAxis"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_f94f7fc7-2b00-442e-87f6-8811ea11b3f2" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_LegalEntityAxis_c6710fe3-4270-4175-b660-828c6dc88114" xlink:to="loc_dei_EntityDomain_f94f7fc7-2b00-442e-87f6-8811ea11b3f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_26570776-1c69-4066-a1c6-281a4e32c9a8" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_f94f7fc7-2b00-442e-87f6-8811ea11b3f2" xlink:to="loc_cdxs_SeqWellMember_26570776-1c69-4066-a1c6-281a4e32c9a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_7dd68637-b09b-48fc-a83e-f639fa53a0c0" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_595b3a3c-b69d-41b7-a7f2-7c0ba459c500" xlink:to="loc_srt_ProductsAndServicesDomain_7dd68637-b09b-48fc-a83e-f639fa53a0c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_145a00e4-21b1-4cf1-b987-ac783526065c" xlink:href="cdxs-20231231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_7dd68637-b09b-48fc-a83e-f639fa53a0c0" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_145a00e4-21b1-4cf1-b987-ac783526065c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_17a5c6cc-8180-4cdc-816d-38698f8d3485" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b3d0aa91-ea72-4fc2-9475-ba807b9ec100" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b3d0aa91-ea72-4fc2-9475-ba807b9ec100" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebt_ed0ab986-f3c8-40dc-b2f4-19192558c4e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertibleDebt"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_ConvertibleDebt_ed0ab986-f3c8-40dc-b2f4-19192558c4e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtConversionConvertedInstrumentSharesIssued1_436a4b8c-7656-407d-9a52-730fc145b5e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtConversionConvertedInstrumentSharesIssued1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_DebtConversionConvertedInstrumentSharesIssued1_436a4b8c-7656-407d-9a52-730fc145b5e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeAmortizationOfDiscount_2f515481-e6c9-4992-b4ab-267d825376bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeAmortizationOfDiscount"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_InvestmentIncomeAmortizationOfDiscount_2f515481-e6c9-4992-b4ab-267d825376bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_658c9409-58d3-44fb-b270-aa14f8d7e214" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_658c9409-58d3-44fb-b270-aa14f8d7e214" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_c05bebe9-146d-44e5-a5df-303983600b44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_c05bebe9-146d-44e5-a5df-303983600b44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_1639ee25-9382-4c24-8003-744de6cf0ea6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_1639ee25-9382-4c24-8003-744de6cf0ea6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_4d589785-d11a-4479-b2bc-1de3b353d2b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_4d589785-d11a-4479-b2bc-1de3b353d2b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_bb69a86c-7687-4fb4-a973-0d7b8f5eaa0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_bb69a86c-7687-4fb4-a973-0d7b8f5eaa0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_66a90bc4-1f7d-4357-90cb-5e118b0e7912" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_565237b3-5dd0-4f6e-9fe8-515b3f6c4d5c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_565237b3-5dd0-4f6e-9fe8-515b3f6c4d5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_65144274-7be6-46bd-b9c8-1d04586a2bbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_65144274-7be6-46bd-b9c8-1d04586a2bbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_177e2ed2-1bda-421b-96ad-2d615954c939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_177e2ed2-1bda-421b-96ad-2d615954c939" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_2878ac17-f4c4-4262-9d44-d7299c86b036" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_2878ac17-f4c4-4262-9d44-d7299c86b036" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_603498ef-990f-4306-aebc-fa8e87ee38eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_603498ef-990f-4306-aebc-fa8e87ee38eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_2d635ab1-a910-4829-8107-c8d1ddb622f6" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_2d635ab1-a910-4829-8107-c8d1ddb622f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_3ff8712b-d721-4ef4-91e7-43fb156911e5" xlink:href="cdxs-20231231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_8815a997-53e3-48e1-961c-0cfe08de8c1e" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_3ff8712b-d721-4ef4-91e7-43fb156911e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_d12a7ef4-f2a0-4a4b-a9d7-f6af15dd69de" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_d12a7ef4-f2a0-4a4b-a9d7-f6af15dd69de" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_b25c76a6-a037-42a3-8f18-8a28a6726ae3" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_164ba327-86a0-4882-a15e-267ccc873ac9" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_cdxs_MolecularAssembliesIncMember_164ba327-86a0-4882-a15e-267ccc873ac9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_f6456dc5-263e-422d-b7a2-89fefadb1f8e" xlink:href="cdxs-20231231.xsd#cdxs_SeqWellMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_cdxs_SeqWellMember_f6456dc5-263e-422d-b7a2-89fefadb1f8e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_98ace94b-0e71-4b76-b631-eb51917fbad9" xlink:href="cdxs-20231231.xsd#cdxs_ArzedaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_cdxs_ArzedaMember_98ace94b-0e71-4b76-b631-eb51917fbad9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAggregatedInvestmentsMember_63e97f4b-cb4e-4af7-87e0-e2edf874f11c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAggregatedInvestmentsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_cfaf1f3e-1cc9-4e1c-a708-9ebb5194a144" xlink:to="loc_us-gaap_OtherAggregatedInvestmentsMember_63e97f4b-cb4e-4af7-87e0-e2edf874f11c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_432d4a23-6543-4489-a647-49fa87577bb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_02ab3e37-4502-4d02-9e66-20c17b52b347" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_432d4a23-6543-4489-a647-49fa87577bb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_dc9bf004-97c7-4d14-84bd-d2e8a6699a53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_432d4a23-6543-4489-a647-49fa87577bb8" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_dc9bf004-97c7-4d14-84bd-d2e8a6699a53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#FairValueMeasurementsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_8e6b8624-2aa8-463f-95aa-db83167face0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_8e6b8624-2aa8-463f-95aa-db83167face0" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_cb82415d-b640-4e2c-97f3-57d5c031be29" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_b7e79572-5b57-4629-8c37-3e098734db19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_b7e79572-5b57-4629-8c37-3e098734db19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_2c35eaa2-4187-4620-bdfb-4fbe16086fe0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_2c35eaa2-4187-4620-bdfb-4fbe16086fe0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_1e192f7d-fd49-4f7c-beae-79d7826f8b80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_467fcc42-e806-4fea-9ee2-92b528d8ac6b" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_1e192f7d-fd49-4f7c-beae-79d7826f8b80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_e410c25c-5792-485b-9cba-823d2af55f0a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_4348730d-2672-4525-8901-f86bf679ca93" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_e410c25c-5792-485b-9cba-823d2af55f0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_822bd530-0435-4767-a5d5-eb836c2d9b10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_e410c25c-5792-485b-9cba-823d2af55f0a" xlink:to="loc_us-gaap_MoneyMarketFundsMember_822bd530-0435-4767-a5d5-eb836c2d9b10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_192452cc-0fee-42ae-bbc6-f45a60011265" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_3706454a-3b8c-4332-b04b-6e5be1d4a512" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_192452cc-0fee-42ae-bbc6-f45a60011265" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebtMember_75e82abb-6b95-4d28-b2b0-b7d326c79aff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConvertibleDebtMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_192452cc-0fee-42ae-bbc6-f45a60011265" xlink:to="loc_us-gaap_ConvertibleDebtMember_75e82abb-6b95-4d28-b2b0-b7d326c79aff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_8c0e2c29-f04b-4f3a-9806-14ffde844738" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_bc6583c0-01c6-483e-ace2-14172ec5787f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_bc6583c0-01c6-483e-ace2-14172ec5787f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_55276d3f-2e7d-4656-aec3-853c2415b94d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract_bc6583c0-01c6-483e-ace2-14172ec5787f" xlink:to="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_55276d3f-2e7d-4656-aec3-853c2415b94d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_cd17149d-ed10-490d-99f6-158f0405b39a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_cd17149d-ed10-490d-99f6-158f0405b39a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_39dd0ce6-0da6-4e65-bf53-38fe287e97d4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_7aaef614-fa3d-4490-b9d0-233088489338" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_39dd0ce6-0da6-4e65-bf53-38fe287e97d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsCashandCashEquivalentsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_16f08ba3-1147-4af4-b44d-007eab0617f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_16f08ba3-1147-4af4-b44d-007eab0617f5" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:to="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_1ed290dd-3e35-48d1-9dbe-c53c35e71ec1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_524ffd2b-0fbb-401d-aaff-d178c102a6ff" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_1ed290dd-3e35-48d1-9dbe-c53c35e71ec1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_d210518f-4b5c-4dfe-b88d-e929d9166a9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_1ed290dd-3e35-48d1-9dbe-c53c35e71ec1" xlink:to="loc_us-gaap_MoneyMarketFundsMember_d210518f-4b5c-4dfe-b88d-e929d9166a9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_13c59fb3-38e9-4d59-985c-0d3e1d83bea7" xlink:to="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_a4215b26-1689-4aa9-8915-f6b8b4776e59" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_a4215b26-1689-4aa9-8915-f6b8b4776e59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_f676cc92-f76e-4268-9f6e-a19adaf371c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_83816f8d-be19-43d6-9529-386632f32ca4" xlink:to="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_f676cc92-f76e-4268-9f6e-a19adaf371c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_6ed1c799-eb16-45e1-84bf-69e0786826b0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_6ed1c799-eb16-45e1-84bf-69e0786826b0" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:to="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAxis_c19e2669-0439-4984-adcc-1908aceda008" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_9fa9f19b-a00d-4b5f-acc2-e05f4e241b3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:to="loc_us-gaap_MoneyMarketFundsMember_9fa9f19b-a00d-4b5f-acc2-e05f4e241b3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashMember_3ef07f88-4636-4cc6-8c8f-bcdcf4a73366" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_b4ad2a02-02cf-4b8a-8134-f1dfcbd5446b" xlink:to="loc_us-gaap_CashMember_3ef07f88-4636-4cc6-8c8f-bcdcf4a73366" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_72446bf4-4b80-49d0-9251-5ac1f2cbcc86" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_95251e90-0e95-40df-8958-26311d7b96ce" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_72446bf4-4b80-49d0-9251-5ac1f2cbcc86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_7ecbbe20-2e99-4b95-8d26-2e64e1716a38" xlink:href="cdxs-20231231.xsd#cdxs_SanCarlosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_72446bf4-4b80-49d0-9251-5ac1f2cbcc86" xlink:to="loc_cdxs_SanCarlosMember_7ecbbe20-2e99-4b95-8d26-2e64e1716a38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_e3ceb4e1-9c8a-480f-91ca-7330c155ec39" xlink:to="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_8a095e8c-b7c2-4663-bf62-72366fb989bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_8a095e8c-b7c2-4663-bf62-72366fb989bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_102a4452-ff14-48af-9cc0-3df91644eb56" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_CashAndCashEquivalentsFairValueDisclosure_102a4452-ff14-48af-9cc0-3df91644eb56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseCurrent_a8771674-6cc7-4cf9-9d39-58c4831f4235" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_PrepaidExpenseCurrent_a8771674-6cc7-4cf9-9d39-58c4831f4235" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsCurrent_01a1ffa8-dce3-4a77-8a65-f4ab202ead60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_OtherAssetsCurrent_01a1ffa8-dce3-4a77-8a65-f4ab202ead60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_803995bd-c5b7-4ba6-860f-ffe83206aa1e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_AssetImpairmentCharges_803995bd-c5b7-4ba6-860f-ffe83206aa1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_62324801-9343-4cf9-a4c5-f9cbfb6f60a3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_62324801-9343-4cf9-a4c5-f9cbfb6f60a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_419d92cd-ba0a-4dca-a75f-3c53b262d00d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_419d92cd-ba0a-4dca-a75f-3c53b262d00d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_eff6b933-81f7-48c2-ae7c-99f715df9227" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_438ac0a2-1552-48af-8eeb-1149b20acf92" xlink:to="loc_us-gaap_Goodwill_eff6b933-81f7-48c2-ae7c-99f715df9227" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsScheduleofInventoryComponentsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_85821cb7-2712-42a4-8f1b-ffc587a9d8b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNetAbstract_b45604a7-67f1-427c-b119-b5c807fa3915" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNetAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_85821cb7-2712-42a4-8f1b-ffc587a9d8b3" xlink:to="loc_us-gaap_InventoryNetAbstract_b45604a7-67f1-427c-b119-b5c807fa3915" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterials_54c47cbf-a948-420b-99bb-858fa1f08109" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterials"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_b45604a7-67f1-427c-b119-b5c807fa3915" xlink:to="loc_us-gaap_InventoryRawMaterials_54c47cbf-a948-420b-99bb-858fa1f08109" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcess_f2289624-f8e8-4d1b-8316-b4e8e50e2cdd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcess"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_b45604a7-67f1-427c-b119-b5c807fa3915" xlink:to="loc_us-gaap_InventoryWorkInProcess_f2289624-f8e8-4d1b-8316-b4e8e50e2cdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoods_f56a8e3e-876c-43d5-a4ca-d670fbfa343c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_b45604a7-67f1-427c-b119-b5c807fa3915" xlink:to="loc_us-gaap_InventoryFinishedGoods_f56a8e3e-876c-43d5-a4ca-d670fbfa343c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_e4ed202e-1687-422b-a8be-1d565d8d0198" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_b45604a7-67f1-427c-b119-b5c807fa3915" xlink:to="loc_us-gaap_InventoryNet_e4ed202e-1687-422b-a8be-1d565d8d0198" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsPropertyandEquipmentnetDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_ac100a43-d59b-4640-9455-804245e10f57" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_ac100a43-d59b-4640-9455-804245e10f57" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_8ca2710f-96a2-4de0-9594-954cfd6ebed3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LaboratoryEquipmentMember_72dfd152-b3a5-4b3f-8f17-831ee60ac98e" xlink:href="cdxs-20231231.xsd#cdxs_LaboratoryEquipmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_cdxs_LaboratoryEquipmentMember_72dfd152-b3a5-4b3f-8f17-831ee60ac98e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_6a581825-53d7-4273-90e1-faf473c5857f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_6a581825-53d7-4273-90e1-faf473c5857f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerEquipmentMember_049482f8-65d3-4596-93ab-5b7372a09121" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_us-gaap_ComputerEquipmentMember_049482f8-65d3-4596-93ab-5b7372a09121" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_76aa5262-ea3c-484b-96f5-6e5ad67d733e" xlink:href="cdxs-20231231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_76aa5262-ea3c-484b-96f5-6e5ad67d733e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConstructionInProgressMember_c54481a7-702f-484a-a4db-583fff384b5a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConstructionInProgressMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ea97149a-5380-495d-8fbd-1e730df5aafb" xlink:to="loc_us-gaap_ConstructionInProgressMember_c54481a7-702f-484a-a4db-583fff384b5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_9b1ce47c-2afb-4933-936f-160fd67df366" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_8dae9d18-da2f-49b5-91e9-18c6ddf69b28" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_8dae9d18-da2f-49b5-91e9-18c6ddf69b28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_92f482b3-f318-450b-bcf0-e10b1338f350" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_92f482b3-f318-450b-bcf0-e10b1338f350" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_31244f88-9ab9-425c-85cb-0443bd5d81c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_3ba352f5-f660-458e-b374-31a090217034" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_31244f88-9ab9-425c-85cb-0443bd5d81c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_fc80e52e-874f-4298-ae15-b2769a6c403d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_fc80e52e-874f-4298-ae15-b2769a6c403d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_e4990955-44a0-4b5c-82bb-52d6deaad9a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_f23dd45f-98c4-430b-a11c-621e4f7ea441" xlink:to="loc_us-gaap_Depreciation_e4990955-44a0-4b5c-82bb-52d6deaad9a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsScheduleofGoodwillDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_d3fd67b9-63b7-419a-8853-bbd8ce7b8438" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_12ceb292-8169-406e-a3e5-9e9d5b41f875" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_d3fd67b9-63b7-419a-8853-bbd8ce7b8438" xlink:to="loc_us-gaap_GoodwillRollForward_12ceb292-8169-406e-a3e5-9e9d5b41f875" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_44caa36b-dcd5-4531-a362-05a2590fda88" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_12ceb292-8169-406e-a3e5-9e9d5b41f875" xlink:to="loc_us-gaap_Goodwill_44caa36b-dcd5-4531-a362-05a2590fda88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_b2823cc2-b485-4dbe-8275-7cca5885f502" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_12ceb292-8169-406e-a3e5-9e9d5b41f875" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_b2823cc2-b485-4dbe-8275-7cca5885f502" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_9f2e7fff-0be4-4701-9820-09e7526429de" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_12ceb292-8169-406e-a3e5-9e9d5b41f875" xlink:to="loc_us-gaap_Goodwill_9f2e7fff-0be4-4701-9820-09e7526429de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#BalanceSheetDetailsOtherAccruedLiabilitiesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7cb77704-06ad-4e54-9dea-ba50dbb04147" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_ede35fa9-4dd9-497c-ad70-b20c24ab3e38" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7cb77704-06ad-4e54-9dea-ba50dbb04147" xlink:to="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_ede35fa9-4dd9-497c-ad70-b20c24ab3e38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseObligation_46978a5a-5e8d-4700-aad6-958806b9d323" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PurchaseObligation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7cb77704-06ad-4e54-9dea-ba50dbb04147" xlink:to="loc_us-gaap_PurchaseObligation_46978a5a-5e8d-4700-aad6-958806b9d323" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_2c8feb05-7821-42e5-bdd0-8a6fef108b0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7cb77704-06ad-4e54-9dea-ba50dbb04147" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_2c8feb05-7821-42e5-bdd0-8a6fef108b0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_73ab24e1-b8f4-4c5d-aa11-709dfe20b08e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7cb77704-06ad-4e54-9dea-ba50dbb04147" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_73ab24e1-b8f4-4c5d-aa11-709dfe20b08e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a17c0891-3862-4ac9-aff7-10fc19ae9812" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a17c0891-3862-4ac9-aff7-10fc19ae9812" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameAxis_2004d631-76bc-4a0a-8ba7-858082749912" xlink:to="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022InducementPlanMember_acfd7376-14ce-4af9-bf4d-c1e2a0a6cc04" xlink:href="cdxs-20231231.xsd#cdxs_A2022InducementPlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022InducementPlanMember_acfd7376-14ce-4af9-bf4d-c1e2a0a6cc04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019PlanMember_9feea540-d3af-44cc-9e11-2b5476944dce" xlink:href="cdxs-20231231.xsd#cdxs_A2019PlanMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2019PlanMember_9feea540-d3af-44cc-9e11-2b5476944dce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019AmendedPlanMember_81cde68a-0b69-4b38-a54e-0044ae0207d5" xlink:href="cdxs-20231231.xsd#cdxs_A2019AmendedPlanMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2019AmendedPlanMember_81cde68a-0b69-4b38-a54e-0044ae0207d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUMember_923e732e-6cc5-4348-b0d4-bf992a0d8f74" xlink:href="cdxs-20231231.xsd#cdxs_A2022PSUMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022PSUMember_923e732e-6cc5-4348-b0d4-bf992a0d8f74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PBOMember_739076e6-44f8-4716-8fc9-f6f5adeebb17" xlink:href="cdxs-20231231.xsd#cdxs_A2022PBOMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022PBOMember_739076e6-44f8-4716-8fc9-f6f5adeebb17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUAnd2022PBOMember_a451d8da-0109-471c-8876-c6333dc33429" xlink:href="cdxs-20231231.xsd#cdxs_A2022PSUAnd2022PBOMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2022PSUAnd2022PBOMember_a451d8da-0109-471c-8876-c6333dc33429" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PSUMember_8428fb3b-5760-47b1-bc8b-4d3b02bf1b1e" xlink:href="cdxs-20231231.xsd#cdxs_A2021PSUMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2021PSUMember_8428fb3b-5760-47b1-bc8b-4d3b02bf1b1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PBOMember_73329b2b-0dec-48b8-9b26-4b9527dcaf3c" xlink:href="cdxs-20231231.xsd#cdxs_A2021PBOMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2021PBOMember_73329b2b-0dec-48b8-9b26-4b9527dcaf3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2021PSUAnd2021PBOMember_3c6c2888-6223-4839-8bc5-110c1c0a6316" xlink:href="cdxs-20231231.xsd#cdxs_A2021PSUAnd2021PBOMember"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_0a4fae5e-7315-45a9-ad40-590e801d3589" xlink:to="loc_cdxs_A2021PSUAnd2021PBOMember_3c6c2888-6223-4839-8bc5-110c1c0a6316" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_492f8627-992d-437f-a518-661539e603d2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_874a4a45-1120-4ad5-a8be-c03f4a6da9b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_EmployeeStockMember_874a4a45-1120-4ad5-a8be-c03f4a6da9b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncentiveStockOptionsMember_65d46299-f2d3-48af-ac16-9e3d552d748f" xlink:href="cdxs-20231231.xsd#cdxs_IncentiveStockOptionsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_IncentiveStockOptionsMember_65d46299-f2d3-48af-ac16-9e3d552d748f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NonStatutoryStockOptionsMember_249b2b1a-532d-4233-9ed2-34fabaf0e467" xlink:href="cdxs-20231231.xsd#cdxs_NonStatutoryStockOptionsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_NonStatutoryStockOptionsMember_249b2b1a-532d-4233-9ed2-34fabaf0e467" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_ae4163d2-3a54-4053-8075-80ff6ec57208" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_EmployeeStockOptionMember_ae4163d2-3a54-4053-8075-80ff6ec57208" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_804d5d46-68c0-42de-81d8-589320be0ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_804d5d46-68c0-42de-81d8-589320be0ecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_adc1b6a9-1c55-434c-af06-cb24234929c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_PerformanceSharesMember_adc1b6a9-1c55-434c-af06-cb24234929c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember_fb401cd4-365d-45df-8413-992c354367f5" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_PerformanceShareUnitsPSUsMember_fb401cd4-365d-45df-8413-992c354367f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_92592338-43bb-40b3-a05a-d39000f4fcad" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_92592338-43bb-40b3-a05a-d39000f4fcad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_cb5d82cf-afd0-4f88-a5fd-9b747098774f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_us-gaap_RestrictedStockMember_cb5d82cf-afd0-4f88-a5fd-9b747098774f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_1b22beb0-8a4d-4c1e-afb5-5d869dcbeff2" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ac854530-dc97-4ca0-bd2c-8fdf3616117d" xlink:to="loc_cdxs_PerformanceStockUnitsMember_1b22beb0-8a4d-4c1e-afb5-5d869dcbeff2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VestingDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VestingAxis_deb20dc4-724a-42ad-a254-902aa408dcc9" xlink:to="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_d30da94d-2c0d-49c7-bd9d-ed835f856aa5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAwardTrancheOneMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_d30da94d-2c0d-49c7-bd9d-ed835f856aa5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_e599e6ae-b88c-4ffa-b59b-3f087ca4508d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAwardTrancheTwoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VestingDomain_06685d79-79dc-4092-b4d2-cf33c6a2188f" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_e599e6ae-b88c-4ffa-b59b-3f087ca4508d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_e30fe4b6-38c5-4009-bd0c-26d62d122517" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusAxis_9377ef43-d6f6-420e-9c7f-1023f9f84d0c" xlink:to="loc_us-gaap_GranteeStatusDomain_e30fe4b6-38c5-4009-bd0c-26d62d122517" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_93ecd198-3b7d-46da-86d5-5ca820617406" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusDomain_e30fe4b6-38c5-4009-bd0c-26d62d122517" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_93ecd198-3b7d-46da-86d5-5ca820617406" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_1115c0d7-4bd6-4371-87cb-8a8ffb4a1158" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_fbef52b8-9917-44b1-9cea-b77c8df189ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_fbef52b8-9917-44b1-9cea-b77c8df189ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_a86a76bf-ba04-448a-b5ea-5303450087fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_a86a76bf-ba04-448a-b5ea-5303450087fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_ab972c9a-d54d-4fe9-9174-c8f7a190ccde" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_ab972c9a-d54d-4fe9-9174-c8f7a190ccde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_f0440a83-7dcc-4a1c-a459-84dac45090fd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_f0440a83-7dcc-4a1c-a459-84dac45090fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2e16c754-2467-4097-8afa-069a8c3728ac" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2e16c754-2467-4097-8afa-069a8c3728ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_862cbd3f-514a-459f-bf15-edff17349156" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_862cbd3f-514a-459f-bf15-edff17349156" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_f86c17da-d435-4551-afc6-20210055e2d9" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_f86c17da-d435-4551-afc6-20210055e2d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_ca85801d-ecdd-406f-b107-85f5ad583eeb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_ca85801d-ecdd-406f-b107-85f5ad583eeb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_30141126-4158-4869-a13b-c9747057ad4c" xlink:href="cdxs-20231231.xsd#cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice_30141126-4158-4869-a13b-c9747057ad4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_f80f3117-565a-4e9f-a6d0-b6517f3d2acf" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent_f80f3117-565a-4e9f-a6d0-b6517f3d2acf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_44d8f9fa-bb2a-4436-b5e5-2d51a9eb3489" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_44d8f9fa-bb2a-4436-b5e5-2d51a9eb3489" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_f7d1c43e-8559-4094-8baf-5fc3718bd577" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_f7d1c43e-8559-4094-8baf-5fc3718bd577" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_07af2ccc-9085-4b62-96d6-422389eda30d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_07af2ccc-9085-4b62-96d6-422389eda30d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_bc984aa6-b969-4264-892f-6d234f08c8d1" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_bc984aa6-b969-4264-892f-6d234f08c8d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d41860b5-6657-4365-8a3d-7f2b62d7430e" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d41860b5-6657-4365-8a3d-7f2b62d7430e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_1084d702-7374-4179-bd85-41e467fa8e12" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_1084d702-7374-4179-bd85-41e467fa8e12" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_309ddf46-4a85-42bc-87da-b120f7487b0f" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_309ddf46-4a85-42bc-87da-b120f7487b0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b01d98cd-29ba-4684-a6b5-9f845cbdb219" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b01d98cd-29ba-4684-a6b5-9f845cbdb219" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_cbb65de5-719c-412d-adc9-67da79808550" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_cbb65de5-719c-412d-adc9-67da79808550" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_9e4d5d6e-6878-4ff8-9c5b-18b9de5ea6c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_9e4d5d6e-6878-4ff8-9c5b-18b9de5ea6c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_c9a8e623-7eb8-4fef-8a9d-1e799540f0e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_c9a8e623-7eb8-4fef-8a9d-1e799540f0e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0810d602-ab84-4957-89f3-ff1a688374d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0810d602-ab84-4957-89f3-ff1a688374d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_9a451461-48ae-4d8b-a9f4-abc07381ac2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_9a451461-48ae-4d8b-a9f4-abc07381ac2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_7d95ceff-3976-4020-a997-014f846d7775" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_7d95ceff-3976-4020-a997-014f846d7775" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_5624c47f-4344-458d-8e88-39b34dda75c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_5624c47f-4344-458d-8e88-39b34dda75c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_adc54a07-6d00-4eab-8272-c698ea65d20c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6c95660f-a26b-45ed-b6ac-10672e226aa5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_adc54a07-6d00-4eab-8272-c698ea65d20c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationStockBasedCompensationExpenseDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1f9d682d-4ae3-401a-87d1-35c77650bf09" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1f9d682d-4ae3-401a-87d1-35c77650bf09" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_8e53ec10-16bc-4f34-a5f4-0448ec00f18d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfSalesMember_9075c334-ad9e-4158-afd1-a45042c03249" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfSalesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:to="loc_us-gaap_CostOfSalesMember_9075c334-ad9e-4158-afd1-a45042c03249" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_9ac57c57-0b82-482c-ad35-69e3f08556fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_9ac57c57-0b82-482c-ad35-69e3f08556fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_af00ebb5-f19e-4ff5-aec2-0030b02a70ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_7685cb1e-8703-4d2a-83f8-e6064e318b78" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_af00ebb5-f19e-4ff5-aec2-0030b02a70ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:to="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_c8fbe539-f856-44f2-b457-aa0d6549b9eb" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_33b44fde-3abe-4ca8-93ed-b484ad2ccf1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_us-gaap_EmployeeStockOptionMember_33b44fde-3abe-4ca8-93ed-b484ad2ccf1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember_ac4ca763-e3ee-488b-9116-5b71894ce48a" xlink:href="cdxs-20231231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_cdxs_RSUsAndRSAsMember_ac4ca763-e3ee-488b-9116-5b71894ce48a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_d22c77d9-5ec9-42ca-8817-d77928f5fad4" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_cdxs_PerformanceStockUnitsMember_d22c77d9-5ec9-42ca-8817-d77928f5fad4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_d11baf51-12eb-47f8-8a38-1e6e718a59ec" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_d11baf51-12eb-47f8-8a38-1e6e718a59ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_af3d2cb8-c916-4ce5-bf16-ba885b4bef80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dd0a3e00-c499-451a-8d6b-53908a83334e" xlink:to="loc_us-gaap_EmployeeStockMember_af3d2cb8-c916-4ce5-bf16-ba885b4bef80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_0d64d03d-8711-49a4-8175-254c6cc62fe2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_8781eb19-f8a0-4e5c-9602-30309291e0c3" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_0d64d03d-8711-49a4-8175-254c6cc62fe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_3a0fea6e-925f-42e2-917a-554d7e10f748" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_0d64d03d-8711-49a4-8175-254c6cc62fe2" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_3a0fea6e-925f-42e2-917a-554d7e10f748" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_71102dae-dba0-40ef-8938-ce4cf79d5e0d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract_3a0fea6e-925f-42e2-917a-554d7e10f748" xlink:to="loc_us-gaap_ShareBasedCompensation_71102dae-dba0-40ef-8938-ce4cf79d5e0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationAssumptionsUsedDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_53a00991-850a-4629-913f-bdd6e7b162a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_53a00991-850a-4629-913f-bdd6e7b162a6" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:to="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_a3e14cea-26cd-4a47-92ea-29f3b1db50d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_fb428f6b-795a-40b7-be51-584229534b70" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_us-gaap_EmployeeStockOptionMember_fb428f6b-795a-40b7-be51-584229534b70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ab160b72-5db3-45d8-b782-21263eb26df2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ab160b72-5db3-45d8-b782-21263eb26df2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_3b54ab84-7b4c-4c71-a1f1-b7d743de686a" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_3b54ab84-7b4c-4c71-a1f1-b7d743de686a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_6bb4b825-f6bc-4839-b1a6-5e8f10b6ec87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_362ae6c3-4ce5-49b1-a8bf-c85290a01b53" xlink:to="loc_us-gaap_EmployeeStockMember_6bb4b825-f6bc-4839-b1a6-5e8f10b6ec87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:to="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_d11049be-9800-47bd-bc84-45a40e8aae66" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GranteeStatusDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusAxis_0a179b97-0749-49e2-adba-4ee3acd21846" xlink:to="loc_us-gaap_GranteeStatusDomain_d11049be-9800-47bd-bc84-45a40e8aae66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_693b7bf7-f627-4a00-8381-401eda8ba486" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusDomain_d11049be-9800-47bd-bc84-45a40e8aae66" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_693b7bf7-f627-4a00-8381-401eda8ba486" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_617ad648-d3bb-462d-91db-b7f2f213e2ce" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_ab411b29-e153-44b6-ad61-f6b782c0f4c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_ab411b29-e153-44b6-ad61-f6b782c0f4c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_56e5eb20-bf6b-4a84-83bf-50bac251c0ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_56e5eb20-bf6b-4a84-83bf-50bac251c0ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_363eefba-319a-492b-b65d-a9c793b11a16" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_363eefba-319a-492b-b65d-a9c793b11a16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_f34b3419-a32f-414f-bd49-aa88d10288b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_28656564-14ec-4b8f-a90b-1643771ab85c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_f34b3419-a32f-414f-bd49-aa88d10288b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationOptionActivityDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_e57cc5a2-1926-466e-96e9-23cc9abf9c83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_e57cc5a2-1926-466e-96e9-23cc9abf9c83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_40cfdb05-2031-4bb0-bcdb-5ffd4e8ca474" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_40cfdb05-2031-4bb0-bcdb-5ffd4e8ca474" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_3cedfdab-1d92-421d-98b8-03a4efd9fae5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_3cedfdab-1d92-421d-98b8-03a4efd9fae5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_cffe9ddc-804e-4ba0-9b07-2fce32fbb457" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_cffe9ddc-804e-4ba0-9b07-2fce32fbb457" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_99beebcd-cfa6-43a5-bd72-d949f4db6768" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a5ea88b9-445e-4c1d-adde-9c48801e7e0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_99beebcd-cfa6-43a5-bd72-d949f4db6768" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_87c5b0cf-6048-49b4-b4f4-7cfec7ca4bfb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_87c5b0cf-6048-49b4-b4f4-7cfec7ca4bfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_1c9f9edd-9699-4b1c-b903-d75f8d4a011c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_1c9f9edd-9699-4b1c-b903-d75f8d4a011c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3409dc7b-f4e8-4d2b-94bf-af415d3bcfcf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3409dc7b-f4e8-4d2b-94bf-af415d3bcfcf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_bbfd9ec9-2459-4600-aaf9-e98b6e08a387" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_bbfd9ec9-2459-4600-aaf9-e98b6e08a387" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_aec2bec2-7392-4b10-921f-61aa52c47a53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_aec2bec2-7392-4b10-921f-61aa52c47a53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_90228c3e-024b-46c8-b68f-85ba7131d50f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_90228c3e-024b-46c8-b68f-85ba7131d50f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_c226c0a6-6b1c-4486-8824-46a36f596379" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_55f38ebb-19d3-4f8c-8eb2-5f3ae91a8887" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_c226c0a6-6b1c-4486-8824-46a36f596379" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_e121c1c4-b918-423d-9e32-e85b50573cb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_e121c1c4-b918-423d-9e32-e85b50573cb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_640ab623-3214-4540-b130-504fb1eb5544" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_640ab623-3214-4540-b130-504fb1eb5544" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d59e8127-9a39-49d6-a803-38795093124e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_22c939bb-89a7-4108-98a1-e01d485269b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_22c939bb-89a7-4108-98a1-e01d485269b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_8c26b86f-0fbe-4d40-bb0b-db24f269d068" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_8c26b86f-0fbe-4d40-bb0b-db24f269d068" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8f66ff42-a084-479b-9b14-65fa7494d4ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_8f66ff42-a084-479b-9b14-65fa7494d4ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_0ef6e3ad-3442-43dc-87bc-6c5497708492" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_0ef6e3ad-3442-43dc-87bc-6c5497708492" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_a39f7625-0eac-4fb2-8ca8-b9b2dabadd44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_a39f7625-0eac-4fb2-8ca8-b9b2dabadd44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_65b2e2ea-41e0-4b18-bd55-0e746d3dbbf5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_8e617099-ce08-416f-a503-94868ec1c341" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_65b2e2ea-41e0-4b18-bd55-0e746d3dbbf5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#StockbasedCompensationAwardActivityDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_79238528-e024-48f7-ac2c-530a6c5ea25a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_79238528-e024-48f7-ac2c-530a6c5ea25a" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:to="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_dd387b19-f65a-43a7-addd-bc171e4567f1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_cb305a8d-5ef8-407c-a496-57e3f51de706" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_us-gaap_RestrictedStockMember_cb305a8d-5ef8-407c-a496-57e3f51de706" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_3bd2e8e3-d46f-483e-a609-7be8e0f9ffed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_3bd2e8e3-d46f-483e-a609-7be8e0f9ffed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_5f174c87-8a39-4377-b4e1-0be58b9556db" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_cdxs_PerformanceStockUnitsMember_5f174c87-8a39-4377-b4e1-0be58b9556db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_7e0368a7-fa50-4b2b-b50a-4c90899953d4" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_7e0368a7-fa50-4b2b-b50a-4c90899953d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_cb71ebf3-bb29-4489-9e5a-16fe43983f31" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2dc5b4d8-9d66-44e4-b531-de7e9d38b342" xlink:to="loc_us-gaap_PerformanceSharesMember_cb71ebf3-bb29-4489-9e5a-16fe43983f31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d27da8fc-8e2d-4660-877f-d6854bbaa611" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_44a9d9c9-7f3a-49db-b845-aca54dc42a3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_44a9d9c9-7f3a-49db-b845-aca54dc42a3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_169395dd-a314-49a5-a94c-9cbd9b866826" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_169395dd-a314-49a5-a94c-9cbd9b866826" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_f408272d-a4b4-4df7-9b18-71fdaf504eab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_f408272d-a4b4-4df7-9b18-71fdaf504eab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_46acd06e-1dd0-410e-8e9d-a512f8cffd2c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_46acd06e-1dd0-410e-8e9d-a512f8cffd2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_155530c2-463f-4cc3-a134-359defb4c7b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_155530c2-463f-4cc3-a134-359defb4c7b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_9fa875f5-c1db-4a9a-a8bf-ad0b858f050e" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_9fa875f5-c1db-4a9a-a8bf-ad0b858f050e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_dbbca502-7cc3-4ffa-a53a-9d44e8d459ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_ad7a4e8f-58b5-4c03-bb95-0e3951561a84" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_dbbca502-7cc3-4ffa-a53a-9d44e8d459ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_8cbcd7ce-6a12-40fe-9bb1-7ead2c290f10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_8cbcd7ce-6a12-40fe-9bb1-7ead2c290f10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_4def8abe-0d5f-4c03-9837-63b1945e2896" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_4def8abe-0d5f-4c03-9837-63b1945e2896" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_42bc7268-0605-4db8-9a37-bcf33aa10be7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_42bc7268-0605-4db8-9a37-bcf33aa10be7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_9f6e4691-fe6b-4497-bc03-e27e875dbcd7" xlink:href="cdxs-20231231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue_9f6e4691-fe6b-4497-bc03-e27e875dbcd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9b9804fa-3abd-40da-9bfa-11dc9702afa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9b9804fa-3abd-40da-9bfa-11dc9702afa3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_943feea1-4d89-4701-b7ad-ad0c3f53147b" xlink:href="cdxs-20231231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue_943feea1-4d89-4701-b7ad-ad0c3f53147b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d8d06eeb-17d1-4f43-a00b-109707ee1492" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_7de1ae9c-a77f-4fc2-9474-650765391287" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d8d06eeb-17d1-4f43-a00b-109707ee1492" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_4a1deabf-97bd-46ec-800e-6f057ae316b7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_7ad7eb47-bc42-4ec6-81d7-d454601bb23b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_7ad7eb47-bc42-4ec6-81d7-d454601bb23b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_d0c12252-322b-4a50-8b6f-1460da298e75" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_d0c12252-322b-4a50-8b6f-1460da298e75" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9adb3596-a454-476b-b358-ccaa2acb5cb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9adb3596-a454-476b-b358-ccaa2acb5cb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_436dc5a0-6210-4923-9369-add6150468c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_436dc5a0-6210-4923-9369-add6150468c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_cfdafb74-e6ee-4e01-ac03-fd3e6acb64c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_cfdafb74-e6ee-4e01-ac03-fd3e6acb64c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_67c2e529-74d8-47bb-8397-02f3678a66f9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_67c2e529-74d8-47bb-8397-02f3678a66f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_c4e7570b-7f88-4e67-b096-20c41ada66b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_c4e7570b-7f88-4e67-b096-20c41ada66b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_cabd037e-1e54-4269-90f1-60606c3a555e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_ca31debd-c76f-493d-8c1c-14374dfeff6d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_cabd037e-1e54-4269-90f1-60606c3a555e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CapitalStockDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CapitalStockDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CapitalStockDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_4f69c19e-1443-4bd3-a507-bab553b306b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_4f69c19e-1443-4bd3-a507-bab553b306b1" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LegalEntityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:to="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_dd8b5f7e-b097-45f1-9679-e37405935c4f" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_LegalEntityAxis_925dce7e-1cc4-427f-b4f8-40cb893bac1c" xlink:to="loc_dei_EntityDomain_dd8b5f7e-b097-45f1-9679-e37405935c4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PiperSandlerCoMember_17183159-14a6-4def-998a-0f1583b0f49d" xlink:href="cdxs-20231231.xsd#cdxs_PiperSandlerCoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_dd8b5f7e-b097-45f1-9679-e37405935c4f" xlink:to="loc_cdxs_PiperSandlerCoMember_17183159-14a6-4def-998a-0f1583b0f49d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:to="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_8902ec55-7f66-4612-945f-4ec6cfa5af70" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_fa9e4b7a-7caa-4598-8a32-fe6e0a36f96f" xlink:to="loc_srt_RangeMember_8902ec55-7f66-4612-945f-4ec6cfa5af70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d4264249-7af0-40d6-910b-4bb79a516757" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_8902ec55-7f66-4612-945f-4ec6cfa5af70" xlink:to="loc_srt_MaximumMember_d4264249-7af0-40d6-910b-4bb79a516757" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_8a03dd99-1093-44b9-9ef8-0725c9d0e5d6" xlink:to="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_00bf2a22-25b6-438c-aca6-3a70f235602f" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_00bf2a22-25b6-438c-aca6-3a70f235602f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockPeriod_8c25d1cb-3dd0-445d-8f8f-bfcd7ca2d69d" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockPeriod_8c25d1cb-3dd0-445d-8f8f-bfcd7ca2d69d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockValueOfSharesForIssuance_90d7669b-8fb5-498a-9349-1c0cc1150a2b" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockValueOfSharesForIssuance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockValueOfSharesForIssuance_90d7669b-8fb5-498a-9349-1c0cc1150a2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_d0de9f65-cc29-4b6c-aa49-3271cadeacd2" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice_d0de9f65-cc29-4b6c-aa49-3271cadeacd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_133d626f-463d-42fb-837f-524fb012db30" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice_133d626f-463d-42fb-837f-524fb012db30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_c3a679ec-c88c-4495-8cf6-c5665da1a0c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_c3a679ec-c88c-4495-8cf6-c5665da1a0c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_fc326a94-88f1-497b-ade8-6491609b8aad" xlink:href="cdxs-20231231.xsd#cdxs_SaleOfStockConsiderationReceivedOnTransactionGross"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_fc326a94-88f1-497b-ade8-6491609b8aad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_1b554b09-155c-42b5-9e62-31010e37bb58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockConsiderationReceivedOnTransaction"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_1b554b09-155c-42b5-9e62-31010e37bb58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts_8b6195ae-61fd-407b-adad-e8ee084c87c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e5a45d81-629c-4e2e-b48e-48dec35c0605" xlink:to="loc_us-gaap_PaymentsOfStockIssuanceCosts_8b6195ae-61fd-407b-adad-e8ee084c87c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/A401kPlanDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#A401kPlanDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/A401kPlanDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_4f43dbc5-e786-4a17-b69b-a68c85645962" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_b1795a02-ea8d-4c74-b236-dfd593e25a24" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_4f43dbc5-e786-4a17-b69b-a68c85645962" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_b1795a02-ea8d-4c74-b236-dfd593e25a24" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_c0992b74-38b0-4a69-a43d-32afab8bd353" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_b7bd9cf9-a1a5-42fb-9531-b8a84079498c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_c0992b74-38b0-4a69-a43d-32afab8bd353" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_b7bd9cf9-a1a5-42fb-9531-b8a84079498c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_29bed5f3-4577-4893-be12-43f399755c8d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_c0992b74-38b0-4a69-a43d-32afab8bd353" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_29bed5f3-4577-4893-be12-43f399755c8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_c5d54e1e-7ab8-4724-985d-34feb3f8f9a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_c0992b74-38b0-4a69-a43d-32afab8bd353" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_c5d54e1e-7ab8-4724-985d-34feb3f8f9a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_183b05fc-e807-4c49-b8ee-aa3975b22b13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_90d16ca6-bc15-4989-84bf-2dc8756823da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_183b05fc-e807-4c49-b8ee-aa3975b22b13" xlink:to="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_90d16ca6-bc15-4989-84bf-2dc8756823da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_ef49c338-7853-4954-a078-55775f96b408" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_90d16ca6-bc15-4989-84bf-2dc8756823da" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_ef49c338-7853-4954-a078-55775f96b408" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_d5a4a9e8-9826-4b63-acca-aa41baf48b22" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_ef49c338-7853-4954-a078-55775f96b408" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_d5a4a9e8-9826-4b63-acca-aa41baf48b22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_b74c5045-5c74-4c59-9091-fc05cc81443d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_ef49c338-7853-4954-a078-55775f96b408" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_b74c5045-5c74-4c59-9091-fc05cc81443d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_b8fc4431-96b7-4ba9-a2c7-329aacb155a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_ef49c338-7853-4954-a078-55775f96b408" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_b8fc4431-96b7-4ba9-a2c7-329aacb155a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_170d1f98-61ca-41a8-8775-f503cc2b893c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_90d16ca6-bc15-4989-84bf-2dc8756823da" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_170d1f98-61ca-41a8-8775-f503cc2b893c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_80a69396-5893-4260-8369-402b88ea2897" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_170d1f98-61ca-41a8-8775-f503cc2b893c" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_80a69396-5893-4260-8369-402b88ea2897" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_4c99be25-b6a0-4eb5-b42b-1d9ae012b829" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_170d1f98-61ca-41a8-8775-f503cc2b893c" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_4c99be25-b6a0-4eb5-b42b-1d9ae012b829" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_2cfea6c4-3963-444c-ad99-50bc932c9988" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_90d16ca6-bc15-4989-84bf-2dc8756823da" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_2cfea6c4-3963-444c-ad99-50bc932c9988" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesTaxRateReconciliationDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_152f3f5f-8c95-4835-b213-f26914366f5d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_152f3f5f-8c95-4835-b213-f26914366f5d" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_5a1d6780-0ad7-48ac-a5a0-d871aeaf4fd8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_5a1d6780-0ad7-48ac-a5a0-d871aeaf4fd8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_4aa23d0e-e6b1-4670-af7a-3f6cfe944d02" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_4aa23d0e-e6b1-4670-af7a-3f6cfe944d02" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_096ff9bf-72cc-4bbb-8eac-156c4403c4fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_096ff9bf-72cc-4bbb-8eac-156c4403c4fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_997df68d-c2b1-4d20-8b5f-c31bf103b796" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_997df68d-c2b1-4d20-8b5f-c31bf103b796" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_03f1853e-d603-4ea9-9932-e87526283d66" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_03f1853e-d603-4ea9-9932-e87526283d66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_8b5ebd31-4724-4d1e-9d4e-f05db65cb1e4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_8b5ebd31-4724-4d1e-9d4e-f05db65cb1e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_0d4fd1aa-e431-4994-9a21-ccc184e29e99" xlink:href="cdxs-20231231.xsd#cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_0d4fd1aa-e431-4994-9a21-ccc184e29e99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_a23538d9-6a09-4cd9-b5c1-417b6232b497" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_a23538d9-6a09-4cd9-b5c1-417b6232b497" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_d2b42df1-523e-40f9-aa6e-a5f46f1b5e97" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_43afab12-d576-4aae-892a-087b8588796c" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_d2b42df1-523e-40f9-aa6e-a5f46f1b5e97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_20520c8d-a169-45a4-887a-4d0f91503488" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_98a5b003-f834-47ba-804c-01797f135c16" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_20520c8d-a169-45a4-887a-4d0f91503488" xlink:to="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_98a5b003-f834-47ba-804c-01797f135c16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_98a5b003-f834-47ba-804c-01797f135c16" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_8492bd61-0007-4ccb-902d-e617dba4591d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_8492bd61-0007-4ccb-902d-e617dba4591d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_f9c4c5e1-8ea0-45df-ac9b-0d4ac04e6483" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_f9c4c5e1-8ea0-45df-ac9b-0d4ac04e6483" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsDeferredIncome_288eccaf-e9e9-4143-a5b1-a65c0235f990" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsDeferredIncome"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsDeferredIncome_288eccaf-e9e9-4143-a5b1-a65c0235f990" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_61e6e3a6-aa8d-49e6-a82d-7a8da9b38736" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_61e6e3a6-aa8d-49e6-a82d-7a8da9b38736" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_f672590a-333b-48e4-b28a-b969e989062e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_f672590a-333b-48e4-b28a-b969e989062e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_0bc9df0e-996a-45f4-aea1-e70b453d83ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_0bc9df0e-996a-45f4-aea1-e70b453d83ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_c87bead8-0fa8-4c7f-905a-66204091b4c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_c87bead8-0fa8-4c7f-905a-66204091b4c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_bf6ab653-5377-461e-88e7-2ecd0cfccaac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsCapitalLossCarryforwards"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_bf6ab653-5377-461e-88e7-2ecd0cfccaac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_1be6696a-f867-411d-9cf8-d08dcb94c2be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_1be6696a-f867-411d-9cf8-d08dcb94c2be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxAssetsLeaseLiability_3034fcff-3934-447c-9daf-637dd943d380" xlink:href="cdxs-20231231.xsd#cdxs_DeferredTaxAssetsLeaseLiability"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_cdxs_DeferredTaxAssetsLeaseLiability_3034fcff-3934-447c-9daf-637dd943d380" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther_34a18a9d-36ec-4245-8fd3-f88b421658fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsOther_34a18a9d-36ec-4245-8fd3-f88b421658fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_e72b9222-fc9f-4891-a86c-1abb33ae87bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_6d98e77b-679e-452c-aff1-d8ac2835fad7" xlink:to="loc_us-gaap_DeferredTaxAssetsGross_e72b9222-fc9f-4891-a86c-1abb33ae87bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_c1f712a0-1e16-4eac-be75-44488f30df2e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_98a5b003-f834-47ba-804c-01797f135c16" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_c1f712a0-1e16-4eac-be75-44488f30df2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_b6a63440-5267-44c2-b3d1-c7ff7a0688d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_98a5b003-f834-47ba-804c-01797f135c16" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_b6a63440-5267-44c2-b3d1-c7ff7a0688d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_32f2b194-04d0-4252-95e0-116eac47f1f2" xlink:href="cdxs-20231231.xsd#cdxs_DeferredTaxLiabilitiesRightOfUseAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_b6a63440-5267-44c2-b3d1-c7ff7a0688d7" xlink:to="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_32f2b194-04d0-4252-95e0-116eac47f1f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_1f29d31f-e6d5-4549-ba9e-fe3d2b157676" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_b6a63440-5267-44c2-b3d1-c7ff7a0688d7" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_1f29d31f-e6d5-4549-ba9e-fe3d2b157676" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesOther_9877021e-34ec-46b3-a65f-22a0fd91a3e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesOther"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_b6a63440-5267-44c2-b3d1-c7ff7a0688d7" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesOther_9877021e-34ec-46b3-a65f-22a0fd91a3e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_9a7e5de6-cc3b-46e0-8ef8-cabac86207ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_b6a63440-5267-44c2-b3d1-c7ff7a0688d7" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilities_9a7e5de6-cc3b-46e0-8ef8-cabac86207ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_ac9550b8-9f86-4cc0-b036-47018da159fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_98a5b003-f834-47ba-804c-01797f135c16" xlink:to="loc_us-gaap_DeferredTaxLiabilities_ac9550b8-9f86-4cc0-b036-47018da159fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_2e9d9c24-b889-4e73-abca-46d6b6e67e46" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_2e9d9c24-b889-4e73-abca-46d6b6e67e46" xlink:to="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:to="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_a68046f6-95be-4a2e-bc29-020b24139e81" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_e128187f-1863-4c95-91df-49982b966e21" xlink:to="loc_srt_SegmentGeographicalDomain_a68046f6-95be-4a2e-bc29-020b24139e81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IN_0e803642-4fa3-4606-97d4-b2633e63e294" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_IN"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a68046f6-95be-4a2e-bc29-020b24139e81" xlink:to="loc_country_IN_0e803642-4fa3-4606-97d4-b2633e63e294" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceTable_e231018b-11b7-4755-9f30-48b93e0e676d" xlink:to="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_37c77624-e29d-4e77-a6f5-b35b8ded4bf0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_37c77624-e29d-4e77-a6f5-b35b8ded4bf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_1cec56c7-a048-4542-ac1e-16287d5f6809" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_1cec56c7-a048-4542-ac1e-16287d5f6809" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_4ffdece0-e4f5-4db6-9b1a-c93d4238ebf4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_4ffdece0-e4f5-4db6-9b1a-c93d4238ebf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5a4cab13-53ad-4b94-95a1-ed073d121bee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_5a4cab13-53ad-4b94-95a1-ed073d121bee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_4d3f5ed8-975c-4d68-9ae0-1be0083fe5c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceLineItems_3d660a0f-1fff-4a8f-88e1-061e4dcb652f" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_4d3f5ed8-975c-4d68-9ae0-1be0083fe5c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_2571837f-3566-4fa1-912c-4391c2fa5406" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_2571837f-3566-4fa1-912c-4391c2fa5406" xlink:to="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_764d8f07-d9a7-4299-9a9d-e32c878c950d" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_bae8bbc3-8680-4a2c-bb04-b3e8befb9ba6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:to="loc_us-gaap_DomesticCountryMember_bae8bbc3-8680-4a2c-bb04-b3e8befb9ba6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember_9e7e0bcf-54a7-4115-a4f4-4a9f11319f22" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0eda8d89-549d-4e28-9084-a6990858e384" xlink:to="loc_us-gaap_StateAndLocalJurisdictionMember_9e7e0bcf-54a7-4115-a4f4-4a9f11319f22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_4392a421-0378-4e78-b293-d302b0a1dcd2" xlink:to="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards_ecd10a76-d29f-46fc-9fe1-c5c15e6487a5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_us-gaap_OperatingLossCarryforwards_ecd10a76-d29f-46fc-9fe1-c5c15e6487a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_693d2cda-8470-4b6f-a31e-f4aeb553dcc3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_693d2cda-8470-4b6f-a31e-f4aeb553dcc3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAmount_dab24eb4-bcd8-45e4-95b6-4473bd1d05e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_89bd51b4-4965-4f55-a8c7-5e1c053e01ec" xlink:to="loc_us-gaap_TaxCreditCarryforwardAmount_dab24eb4-bcd8-45e4-95b6-4473bd1d05e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_669b6f88-2820-4b33-8675-b7f870073ab7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_669b6f88-2820-4b33-8675-b7f870073ab7" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_6ff36f7b-8421-43cf-8369-985a6663113a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_6ff36f7b-8421-43cf-8369-985a6663113a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_c79c1253-ee64-4996-8477-a40ceeab9692" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_c79c1253-ee64-4996-8477-a40ceeab9692" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_6efd0cbc-eff6-41da-97a9-cf6072f33fe2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_6efd0cbc-eff6-41da-97a9-cf6072f33fe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_df8c2781-0a99-46cc-b522-ad16c95446bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_df8c2781-0a99-46cc-b522-ad16c95446bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_399c10c2-5062-42c7-96ef-62828fcc39b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_a1857dd7-b7f4-4b6a-8db2-7f0ed924167a" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_399c10c2-5062-42c7-96ef-62828fcc39b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0a415e4c-dfb5-4fd4-aed9-80b1736e6a4f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermPurchaseCommitmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0a415e4c-dfb5-4fd4-aed9-80b1736e6a4f" xlink:to="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_53a72cc7-3bcf-4996-a101-2da42555830b" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A200220PenobscotMember_2b58d5b6-635e-4722-907b-3bb67510c3df" xlink:href="cdxs-20231231.xsd#cdxs_A200220PenobscotMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_A200220PenobscotMember_2b58d5b6-635e-4722-907b-3bb67510c3df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A400PenoscotMember_5439ddbe-740b-4004-afb2-605bcfd8544f" xlink:href="cdxs-20231231.xsd#cdxs_A400PenoscotMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_A400PenoscotMember_5439ddbe-740b-4004-afb2-605bcfd8544f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A501ChesapeakeMember_b9914cf3-dc77-40f3-9bb3-5161242310db" xlink:href="cdxs-20231231.xsd#cdxs_A501ChesapeakeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_A501ChesapeakeMember_b9914cf3-dc77-40f3-9bb3-5161242310db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_05226d2e-8236-4858-98bd-f4dcaf609131" xlink:href="cdxs-20231231.xsd#cdxs_SanCarlosMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_afdf5f29-2e7f-47e2-8d9e-8c0e8a3736e8" xlink:to="loc_cdxs_SanCarlosMember_05226d2e-8236-4858-98bd-f4dcaf609131" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3cbae42d-7491-4f68-901b-ba53cfa77979" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_3b452894-5dc8-4ae4-b689-3898f4d60139" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3cbae42d-7491-4f68-901b-ba53cfa77979" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DemandDepositsMember_42e7f9f2-e969-4822-a8e7-eeb1d99f3735" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DemandDepositsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3cbae42d-7491-4f68-901b-ba53cfa77979" xlink:to="loc_us-gaap_DemandDepositsMember_42e7f9f2-e969-4822-a8e7-eeb1d99f3735" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityAxis_d4a2eefc-5ce9-47ef-83e7-a50d43deff31" xlink:to="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_c0d1665d-59ce-49c9-b52e-768e217fa360" xlink:href="cdxs-20231231.xsd#cdxs_TermLoanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:to="loc_cdxs_TermLoanMember_c0d1665d-59ce-49c9-b52e-768e217fa360" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevolvingCreditFacilityMember_37823197-5ed3-42ba-9cc1-4bb6daa7cc9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityDomain_4671ac64-196e-4698-9601-b5411205be03" xlink:to="loc_us-gaap_RevolvingCreditFacilityMember_37823197-5ed3-42ba-9cc1-4bb6daa7cc9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain_aa7ea785-8c40-4ba4-b4a4-1cdcbb3f6fa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_03258756-7390-42d0-b963-535f7e10b9bc" xlink:to="loc_us-gaap_LossContingencyNatureDomain_aa7ea785-8c40-4ba4-b4a4-1cdcbb3f6fa3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndemnificationGuaranteeMember_b282a205-aa15-4609-9c34-00bdf3d97c09" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndemnificationGuaranteeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingencyNatureDomain_aa7ea785-8c40-4ba4-b4a4-1cdcbb3f6fa3" xlink:to="loc_us-gaap_IndemnificationGuaranteeMember_b282a205-aa15-4609-9c34-00bdf3d97c09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermPurchaseCommitmentLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e5fa10d6-2f03-439a-932e-51744cabeff4" xlink:to="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty_51508d37-0ae3-4311-a9fb-0f2945ba545b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_AreaOfRealEstateProperty_51508d37-0ae3-4311-a9fb-0f2945ba545b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LesseeOperatingLeaseOptionToExtendNumber_a29804b2-4222-4e5a-8b4d-23077c08681f" xlink:href="cdxs-20231231.xsd#cdxs_LesseeOperatingLeaseOptionToExtendNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_LesseeOperatingLeaseOptionToExtendNumber_a29804b2-4222-4e5a-8b4d-23077c08681f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_89b17b57-576e-4ad8-b0b9-dc40c8573def" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_89b17b57-576e-4ad8-b0b9-dc40c8573def" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_fad80c75-2d2b-4491-a1af-7956bf547a86" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashAndInvestmentsNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_fad80c75-2d2b-4491-a1af-7956bf547a86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1_01b7c449-05d2-4611-bbd7-0b5ab52a0d83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1_01b7c449-05d2-4611-bbd7-0b5ab52a0d83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1_3ac633db-11a4-40e5-aae2-1436f6f768c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1_3ac633db-11a4-40e5-aae2-1436f6f768c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_36975025-454b-41f0-9374-082c0d83a628" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_OperatingLeaseLiability_36975025-454b-41f0-9374-082c0d83a628" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityDeposit_de29fbf8-31a6-415e-8d58-817832121635" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecurityDeposit"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_SecurityDeposit_de29fbf8-31a6-415e-8d58-817832121635" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_bbdba97c-e633-425e-ad4b-9bd8f723bbfc" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_bbdba97c-e633-425e-ad4b-9bd8f723bbfc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_5436fc03-812b-4b25-8dd8-b742eeb2ba87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_AssetImpairmentCharges_5436fc03-812b-4b25-8dd8-b742eeb2ba87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_375f9641-0935-4e7a-aeb4-3613cf5db61a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_375f9641-0935-4e7a-aeb4-3613cf5db61a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_27e0c78c-25b7-4ef3-a20d-9d52a1637db7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_27e0c78c-25b7-4ef3-a20d-9d52a1637db7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AssetRetirementObligationWriteoff_b051e154-d917-4bd4-a648-9c27981e909d" xlink:href="cdxs-20231231.xsd#cdxs_AssetRetirementObligationWriteoff"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_AssetRetirementObligationWriteoff_b051e154-d917-4bd4-a648-9c27981e909d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetRetirementObligation_091dd62c-af14-45c7-ad89-84d18eac0cb4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetRetirementObligation"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_AssetRetirementObligation_091dd62c-af14-45c7-ad89-84d18eac0cb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_6aefd6ec-ba48-4508-917e-972792374b37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_6aefd6ec-ba48-4508-917e-972792374b37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_71bbda13-a6f6-40ae-9106-6ee58eee0620" xlink:href="cdxs-20231231.xsd#cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_71bbda13-a6f6-40ae-9106-6ee58eee0620" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_f0efec97-66b7-4877-9c8c-317fc1436297" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_c261fd9e-1292-4485-bb3f-f1867bb0e2b5" xlink:to="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_f0efec97-66b7-4877-9c8c-317fc1436297" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_1acd6869-c55f-407f-a2c3-9c31d9fe3e5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseRightOfUseAssetRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_1acd6869-c55f-407f-a2c3-9c31d9fe3e5e" xlink:to="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_d2f73443-ddbd-4aa8-9c44-2f9bef557197" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_d2f73443-ddbd-4aa8-9c44-2f9bef557197" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_e2d64d5a-38a9-4f8d-8516-778f17b7b461" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_e2d64d5a-38a9-4f8d-8516-778f17b7b461" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_750c5566-542f-47a8-adef-4d458805c384" xlink:href="cdxs-20231231.xsd#cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:to="loc_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_750c5566-542f-47a8-adef-4d458805c384" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_2cea18fc-2168-4584-84f9-e2646f13e3ef" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_2cea18fc-2168-4584-84f9-e2646f13e3ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_83914c51-200e-44bb-b61f-6073e0ceb94e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_83914c51-200e-44bb-b61f-6073e0ceb94e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_8c786e3c-5cc1-46d6-b42f-8f698cbeb684" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_0169c277-7496-4a42-82f9-a286dff91258" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_8c786e3c-5cc1-46d6-b42f-8f698cbeb684" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseLiabilityRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_1acd6869-c55f-407f-a2c3-9c31d9fe3e5e" xlink:to="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_3d4df7ae-29ef-46d7-b0ce-ce45fa9cfc3e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:to="loc_us-gaap_OperatingLeaseLiability_3d4df7ae-29ef-46d7-b0ce-ce45fa9cfc3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_2f3b79c2-df99-4cda-ae18-1a3c8e0de74e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:to="loc_us-gaap_OperatingLeasePayments_2f3b79c2-df99-4cda-ae18-1a3c8e0de74e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseInterestAccretion_1b7d4a16-c903-4e5a-b266-a1839b73fb9d" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseInterestAccretion"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:to="loc_cdxs_OperatingLeaseInterestAccretion_1b7d4a16-c903-4e5a-b266-a1839b73fb9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_4a413c98-e6a0-4abe-81e3-7de8b1e5d0f6" xlink:href="cdxs-20231231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_4a413c98-e6a0-4abe-81e3-7de8b1e5d0f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_7c960963-0044-4162-8ac9-99c6f18b7515" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_ee052cd3-8aba-41af-874e-47a2a2153f99" xlink:to="loc_us-gaap_OperatingLeaseLiability_7c960963-0044-4162-8ac9-99c6f18b7515" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesLeaseCostsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3133051f-0d0b-4fd4-800d-633b2a548424" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinanceLeaseCost_54c50670-df3b-425f-b1e3-6fb5dd341b11" xlink:href="cdxs-20231231.xsd#cdxs_FinanceLeaseCost"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3133051f-0d0b-4fd4-800d-633b2a548424" xlink:to="loc_cdxs_FinanceLeaseCost_54c50670-df3b-425f-b1e3-6fb5dd341b11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_faa18fec-8d91-4c35-8a42-8be13591e91f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseCost"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3133051f-0d0b-4fd4-800d-633b2a548424" xlink:to="loc_us-gaap_OperatingLeaseCost_faa18fec-8d91-4c35-8a42-8be13591e91f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermLeaseCost_6f05d783-7e55-4ef4-a0f3-c07a27f3c5b2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermLeaseCost"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3133051f-0d0b-4fd4-800d-633b2a548424" xlink:to="loc_us-gaap_ShortTermLeaseCost_6f05d783-7e55-4ef4-a0f3-c07a27f3c5b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_ead44a12-1669-4a91-a395-7333e9b417bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCost"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3133051f-0d0b-4fd4-800d-633b2a548424" xlink:to="loc_us-gaap_LeaseCost_ead44a12-1669-4a91-a395-7333e9b417bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeaseCost_4b5b95ee-1f0e-446e-9327-6c3e5c8b0536" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableLeaseCost"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3133051f-0d0b-4fd4-800d-633b2a548424" xlink:to="loc_us-gaap_VariableLeaseCost_4b5b95ee-1f0e-446e-9327-6c3e5c8b0536" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesOtherLeaseInformationDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0f404741-203f-4f5f-8131-44841c94503f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashPaidAbstract_b7a300b2-ebf8-4a5c-9c39-5e8309a8b5d4" xlink:href="cdxs-20231231.xsd#cdxs_CashPaidAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0f404741-203f-4f5f-8131-44841c94503f" xlink:to="loc_cdxs_CashPaidAbstract_b7a300b2-ebf8-4a5c-9c39-5e8309a8b5d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_21a402d6-ddf8-4a48-81e1-119686956258" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_CashPaidAbstract_b7a300b2-ebf8-4a5c-9c39-5e8309a8b5d4" xlink:to="loc_us-gaap_OperatingLeasePayments_21a402d6-ddf8-4a48-81e1-119686956258" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NoncashActivityAbstract_4f99f2e8-b6fa-442e-aee0-5bddcd69fdd6" xlink:href="cdxs-20231231.xsd#cdxs_NoncashActivityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0f404741-203f-4f5f-8131-44841c94503f" xlink:to="loc_cdxs_NoncashActivityAbstract_4f99f2e8-b6fa-442e-aee0-5bddcd69fdd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_d70b44ac-0f6d-4fe7-a932-ebdaac539888" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_NoncashActivityAbstract_4f99f2e8-b6fa-442e-aee0-5bddcd69fdd6" xlink:to="loc_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_d70b44ac-0f6d-4fe7-a932-ebdaac539888" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OtherInformationAbstract_2b3f5741-d2a4-447d-adaa-bc1509c5ed1b" xlink:href="cdxs-20231231.xsd#cdxs_OtherInformationAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0f404741-203f-4f5f-8131-44841c94503f" xlink:to="loc_cdxs_OtherInformationAbstract_2b3f5741-d2a4-447d-adaa-bc1509c5ed1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_3c5a1546-c799-4ca1-b93d-4b7ce9bd5a43" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OtherInformationAbstract_2b3f5741-d2a4-447d-adaa-bc1509c5ed1b" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_3c5a1546-c799-4ca1-b93d-4b7ce9bd5a43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_f13e4914-8f89-4545-9e36-55bb6b6f4003" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OtherInformationAbstract_2b3f5741-d2a4-447d-adaa-bc1509c5ed1b" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_f13e4914-8f89-4545-9e36-55bb6b6f4003" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_9992b5a7-355e-4b02-a2d1-57701884276d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_9992b5a7-355e-4b02-a2d1-57701884276d" xlink:to="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_24bbf3b6-4079-4e56-aca1-4e89bb06db6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_24bbf3b6-4079-4e56-aca1-4e89bb06db6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_48492e7d-e22a-4abd-bb92-1e86acbaf9e3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_48492e7d-e22a-4abd-bb92-1e86acbaf9e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_217702a8-9726-438d-9ea1-a1627ede2145" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_217702a8-9726-438d-9ea1-a1627ede2145" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_874ccd00-e1eb-40ae-9676-264a70e4be6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_874ccd00-e1eb-40ae-9676-264a70e4be6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_e4033b64-29af-48c6-a6cf-63237ab746f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_e4033b64-29af-48c6-a6cf-63237ab746f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_fc4b95c0-93cc-48d7-8cc9-2841ac959253" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_fc4b95c0-93cc-48d7-8cc9-2841ac959253" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_426d4ccb-b96d-45a9-9655-c8c4c43699d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_426d4ccb-b96d-45a9-9655-c8c4c43699d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_239ee030-db0b-4e12-9f59-9affe7f072b0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_239ee030-db0b-4e12-9f59-9affe7f072b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_7e014e5e-174e-4715-abda-b75935ec1f93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_OperatingLeaseLiability_7e014e5e-174e-4715-abda-b75935ec1f93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_5b50c425-cbcf-466e-afaf-73079140381e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_5b50c425-cbcf-466e-afaf-73079140381e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_5cd7a083-811a-46ff-a015-14d3d08a7417" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_3ec963ef-01b0-464c-80f8-c626e3b6669d" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_5cd7a083-811a-46ff-a015-14d3d08a7417" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#CommitmentsandContingenciesOtherCommitmentsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_2c501c5e-c35f-448f-aa88-02fd7681638f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_2c501c5e-c35f-448f-aa88-02fd7681638f" xlink:to="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:to="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsDomain_16276bcd-3114-45a6-a2bf-8b4f336700c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherCommitmentsAxis_fb685f9b-c83a-45f4-a542-5e6da0637029" xlink:to="loc_us-gaap_OtherCommitmentsDomain_16276bcd-3114-45a6-a2bf-8b4f336700c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FacilityMaintenanceAgreementMember_958bf611-27ed-4d1f-8a72-2b3f7b707222" xlink:href="cdxs-20231231.xsd#cdxs_FacilityMaintenanceAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherCommitmentsDomain_16276bcd-3114-45a6-a2bf-8b4f336700c5" xlink:to="loc_cdxs_FacilityMaintenanceAgreementMember_958bf611-27ed-4d1f-8a72-2b3f7b707222" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesTable_5b21460b-44cd-43e3-9398-928c718c30da" xlink:to="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitment_acd74c8a-bf5b-4333-981b-6b6c8dd6421d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_OtherCommitment_acd74c8a-bf5b-4333-981b-6b6c8dd6421d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths_07d223f5-c0c4-4e89-9118-bf32e11a6230" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInNextTwelveMonths"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_OtherCommitmentDueInNextTwelveMonths_07d223f5-c0c4-4e89-9118-bf32e11a6230" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCommitmentDueInSecondYear_c0d6b3cf-9f5a-4be8-9057-2b6082d59006" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentDueInSecondYear"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherCommitmentsLineItems_4056c2a3-c6d5-41c4-b32e-b4c67cb4e182" xlink:to="loc_us-gaap_OtherCommitmentDueInSecondYear_c0d6b3cf-9f5a-4be8-9057-2b6082d59006" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RelatedPartyTransactionsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RelatedPartyTransactionsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RelatedPartyTransactionsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_557c16b4-158b-43bf-87bd-1723b3290a41" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_557c16b4-158b-43bf-87bd-1723b3290a41" xlink:to="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_59b53239-4f34-42ff-a766-96c90f9aef1e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_cb11de8e-67bb-48ef-aa95-c6c0fed3446a" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_59b53239-4f34-42ff-a766-96c90f9aef1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_1318cbb3-815d-43fa-9363-ad99ff97a6bb" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_59b53239-4f34-42ff-a766-96c90f9aef1e" xlink:to="loc_cdxs_MolecularAssembliesIncMember_1318cbb3-815d-43fa-9363-ad99ff97a6bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_dcaedbae-3ca2-46fd-8154-60886ab249c1" xlink:to="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember_70f10911-344f-4134-8c30-d22bd90896d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:to="loc_us-gaap_SeriesAPreferredStockMember_70f10911-344f-4134-8c30-d22bd90896d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_7a626008-113c-410e-b290-ec0bcfa688f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_ea26bbd7-5aa5-4385-846e-7e144df4f8e4" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_7a626008-113c-410e-b290-ec0bcfa688f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_db383b7e-2dd1-47c3-b73d-8d941ac39081" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_a5ee22e2-f9ed-4c2a-baf1-6939101fdc2a" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_db383b7e-2dd1-47c3-b73d-8d941ac39081" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_dfb3f740-1a33-4312-824e-1bc7871b1049" xlink:href="cdxs-20231231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_db383b7e-2dd1-47c3-b73d-8d941ac39081" xlink:to="loc_cdxs_MolecularAssembliesIncMember_dfb3f740-1a33-4312-824e-1bc7871b1049" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_b9f6c030-c7db-48db-86ef-659a79add5a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_c2c19564-06c4-4ddb-9476-1652da1dbee0" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_b9f6c030-c7db-48db-86ef-659a79add5a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember_fa504493-9ce6-466d-b2e9-cbb24bc67d04" xlink:href="cdxs-20231231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_b9f6c030-c7db-48db-86ef-659a79add5a9" xlink:to="loc_cdxs_MasterCollaborationResearchAgreementMember_fa504493-9ce6-466d-b2e9-cbb24bc67d04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_ae8ec08c-0a05-40d0-a759-1458192e795a" xlink:to="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_823f571b-5ff1-40ac-9e66-d2f61e9896dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_823f571b-5ff1-40ac-9e66-d2f61e9896dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_415006fa-4b15-4f6f-ac65-e90ee16885e0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_415006fa-4b15-4f6f-ac65-e90ee16885e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_34229235-b5a9-44c6-bdf4-206d486218b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionLineItems_cf49ab96-f622-4f66-a0bd-90bbb0a7f962" xlink:to="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_34229235-b5a9-44c6-bdf4-206d486218b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_501ad171-60e5-4ce2-a592-cd5da566737f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfBusinessSegments_695c9ebf-b705-4a37-8e79-396b0b65b0fd" xlink:href="cdxs-20231231.xsd#cdxs_NumberOfBusinessSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_501ad171-60e5-4ce2-a592-cd5da566737f" xlink:to="loc_cdxs_NumberOfBusinessSegments_695c9ebf-b705-4a37-8e79-396b0b65b0fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_3b570de3-907d-4a0a-93ab-8ccaefc09f3c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_501ad171-60e5-4ce2-a592-cd5da566737f" xlink:to="loc_us-gaap_NumberOfReportableSegments_3b570de3-907d-4a0a-93ab-8ccaefc09f3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_33eeb15d-4261-475a-bd34-962524fb7697" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_33eeb15d-4261-475a-bd34-962524fb7697" xlink:to="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_9644b643-915b-416f-ab39-b97b41c601c1" xlink:to="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerAMember_5bcef2be-6936-4a03-8875-6af629538f3f" xlink:href="cdxs-20231231.xsd#cdxs_CustomerAMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerAMember_5bcef2be-6936-4a03-8875-6af629538f3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerBMember_4f5b19c5-2752-4e34-ad8e-ad168755d438" xlink:href="cdxs-20231231.xsd#cdxs_CustomerBMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerBMember_4f5b19c5-2752-4e34-ad8e-ad168755d438" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerCMember_1ef40575-d533-41b7-b9ab-5cf07b0b782b" xlink:href="cdxs-20231231.xsd#cdxs_CustomerCMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerCMember_1ef40575-d533-41b7-b9ab-5cf07b0b782b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerDMember_2413bfab-ae73-4787-b6fe-f4c2bf2778d9" xlink:href="cdxs-20231231.xsd#cdxs_CustomerDMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerDMember_2413bfab-ae73-4787-b6fe-f4c2bf2778d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerEMember_0a23f481-3d31-40d8-bd6b-73fdfe29d7ee" xlink:href="cdxs-20231231.xsd#cdxs_CustomerEMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerEMember_0a23f481-3d31-40d8-bd6b-73fdfe29d7ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerFMember_db1ff85b-eddc-4b46-82c8-7e63abc20553" xlink:href="cdxs-20231231.xsd#cdxs_CustomerFMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_cdb3a080-8efa-45c2-81e3-4eae20bf7ec5" xlink:to="loc_cdxs_CustomerFMember_db1ff85b-eddc-4b46-82c8-7e63abc20553" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_6bea4aae-4924-43ca-aafd-897ecbda1864" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueProductLineMember_eb5519be-544d-4d36-a8e4-212b0283f432" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueProductLineMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:to="loc_us-gaap_SalesRevenueProductLineMember_eb5519be-544d-4d36-a8e4-212b0283f432" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_147738a3-510b-4912-80c1-4703fcaa2f6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c639cfb1-36bf-49ca-ba13-0518bc45af3a" xlink:to="loc_us-gaap_AccountsReceivableMember_147738a3-510b-4912-80c1-4703fcaa2f6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_23edff4f-5f9b-4c79-9d64-c4d68807c3a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_87054786-6a5d-4336-ad46-58fe22890d74" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_23edff4f-5f9b-4c79-9d64-c4d68807c3a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_58dc3f66-b54c-419e-96dd-b7672db53f7b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_23edff4f-5f9b-4c79-9d64-c4d68807c3a2" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_58dc3f66-b54c-419e-96dd-b7672db53f7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_216dca7e-a348-43f2-98d8-b5faebea85fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_b27572e3-26d1-4a02-98a7-7bb0ae33ca58" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_216dca7e-a348-43f2-98d8-b5faebea85fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_a8fc979d-80de-4988-95cf-bf99112e31d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_216dca7e-a348-43f2-98d8-b5faebea85fc" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_a8fc979d-80de-4988-95cf-bf99112e31d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationRevenuesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_0034da4a-94c9-40aa-aacc-d72a899a1b6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_0034da4a-94c9-40aa-aacc-d72a899a1b6e" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:to="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_1257e1fd-fe4e-4546-8bc9-d61151220a4d" xlink:to="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_dd2bdc10-663f-489b-8709-e56908c2c768" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_srt_AmericasMember_dd2bdc10-663f-489b-8709-e56908c2c768" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_4e3e2020-2934-41c6-99ae-9513e291c463" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_us-gaap_EMEAMember_4e3e2020-2934-41c6-99ae-9513e291c463" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_92255e48-8021-4fd6-a6c0-229d6ffe1c2c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_srt_AsiaPacificMember_92255e48-8021-4fd6-a6c0-229d6ffe1c2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_a26022b7-6973-46a6-ba4f-c5a90acbbdfb" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_US_a26022b7-6973-46a6-ba4f-c5a90acbbdfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IE_3c64d475-0c60-4277-a3e3-8d13f5d2f92b" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_IE"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_IE_3c64d475-0c60-4277-a3e3-8d13f5d2f92b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CH_6b8bfae8-c13d-46ff-9ee1-4f082ca5c625" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CH"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_CH_6b8bfae8-c13d-46ff-9ee1-4f082ca5c625" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN_c501fc75-aca4-4352-ac90-a90e9297a5ca" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CN"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_0ed44e9c-0b64-44c5-bd23-5b423d4895ce" xlink:to="loc_country_CN_c501fc75-aca4-4352-ac90-a90e9297a5ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_9828fa5b-4dfa-4668-8eb0-54c860ab9713" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_22517090-30fc-482e-bff7-f7981ec54eb9" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_9828fa5b-4dfa-4668-8eb0-54c860ab9713" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_9828fa5b-4dfa-4668-8eb0-54c860ab9713" xlink:to="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_110c1689-c927-4f17-a1d9-5d9f606c76cd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_110c1689-c927-4f17-a1d9-5d9f606c76cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_1d2c5685-37e8-4008-bf08-44475493e0b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesAbstract_860ff627-eb51-4c76-a8f9-e4fff05c2639" xlink:to="loc_us-gaap_NoncurrentAssets_1d2c5685-37e8-4008-bf08-44475493e0b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SegmentGeographicalandOtherRevenueInformationGoodwillDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_e3782b24-5fb9-477b-b2fe-ebf59fa673fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_7fe67b8b-a55e-463c-b6c1-ff0ef9cda368" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_e3782b24-5fb9-477b-b2fe-ebf59fa673fb" xlink:to="loc_us-gaap_GoodwillRollForward_7fe67b8b-a55e-463c-b6c1-ff0ef9cda368" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_72df1a5c-18e6-4c4b-ba1e-77f5be83fe07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_7fe67b8b-a55e-463c-b6c1-ff0ef9cda368" xlink:to="loc_us-gaap_Goodwill_72df1a5c-18e6-4c4b-ba1e-77f5be83fe07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_05ace19d-4f25-4d55-82f5-997f30e778bf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_7fe67b8b-a55e-463c-b6c1-ff0ef9cda368" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_05ace19d-4f25-4d55-82f5-997f30e778bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_16d27e63-66b7-4eff-b118-243756e9ac71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_7fe67b8b-a55e-463c-b6c1-ff0ef9cda368" xlink:to="loc_us-gaap_Goodwill_16d27e63-66b7-4eff-b118-243756e9ac71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesAbstract_4a60fc78-82fc-4721-bb3a-f3904428cf62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivablesAbstract_4a60fc78-82fc-4721-bb3a-f3904428cf62" xlink:to="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_4f8b446a-1cfe-438a-9a8c-f95c33002eb4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:to="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_4f8b446a-1cfe-438a-9a8c-f95c33002eb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForLoanLossesExpensed_c9f9f736-eec1-4722-9239-af359864dc3f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForLoanLossesExpensed"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:to="loc_us-gaap_ProvisionForLoanLossesExpensed_c9f9f736-eec1-4722-9239-af359864dc3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForCreditLossWriteOff_6f6bd040-c817-4b97-a16c-a8970c135e54" xlink:href="cdxs-20231231.xsd#cdxs_AllowanceForCreditLossWriteOff"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:to="loc_cdxs_AllowanceForCreditLossWriteOff_6f6bd040-c817-4b97-a16c-a8970c135e54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForCreditLossAdjustment_1cc01eda-1e56-43d5-aeb5-2724a2f971b9" xlink:href="cdxs-20231231.xsd#cdxs_AllowanceForCreditLossAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:to="loc_cdxs_AllowanceForCreditLossAdjustment_1cc01eda-1e56-43d5-aeb5-2724a2f971b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_159b8e2b-ef1c-4f28-a7cb-f897ae6b2c1f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward_898fc212-b4c1-4bba-98c0-73bb1e7b0901" xlink:to="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_159b8e2b-ef1c-4f28-a7cb-f897ae6b2c1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesAbstract_d73c6571-c076-41a3-affa-b5806bfbc185" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivablesAbstract_d73c6571-c076-41a3-affa-b5806bfbc185" xlink:to="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:to="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesPeriodPastDueDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueAxis_05cbcff7-0312-4d49-9482-5525b1cb2030" xlink:to="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialAssetNotPastDueMember_572faddb-d064-4506-b560-628d257fbf29" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialAssetNotPastDueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancialAssetNotPastDueMember_572faddb-d064-4506-b560-628d257fbf29" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivables30To59DaysPastDueMember_c095b6eb-96d0-46b6-8b53-cea4505ec9c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivables30To59DaysPastDueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancingReceivables30To59DaysPastDueMember_c095b6eb-96d0-46b6-8b53-cea4505ec9c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivables60To89DaysPastDueMember_108e1920-06a4-4f00-ac51-1570c05c6fec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivables60To89DaysPastDueMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancingReceivables60To89DaysPastDueMember_108e1920-06a4-4f00-ac51-1570c05c6fec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember_c2b081ed-ce04-4c57-ae61-97ef69aa1c5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember_c2b081ed-ce04-4c57-ae61-97ef69aa1c5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinancialReceivablesPastDueMember_e992d247-78e6-4de8-9e09-668d7c70668f" xlink:href="cdxs-20231231.xsd#cdxs_FinancialReceivablesPastDueMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivablesPeriodPastDueDomain_0b34f688-3481-4850-abbd-41ca7c464811" xlink:to="loc_cdxs_FinancialReceivablesPastDueMember_e992d247-78e6-4de8-9e09-668d7c70668f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_bee2584f-b092-4331-972e-842c1a588f59" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable_26300373-d9d1-4f1d-a777-3b49653d8179" xlink:to="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_bee2584f-b092-4331-972e-842c1a588f59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableGross_3092f67d-f197-4983-9950-88891b15d7b6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems_bee2584f-b092-4331-972e-842c1a588f59" xlink:to="loc_us-gaap_AccountsReceivableGross_3092f67d-f197-4983-9950-88891b15d7b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#RestructuringChargesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_7c44d8d5-ef70-457e-a444-5e2667f4fdcf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_7c44d8d5-ef70-457e-a444-5e2667f4fdcf" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_39594791-3e17-48e2-b07a-af6368406ee6" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_5c05cb1f-4a92-464e-ad05-2d4943efb0e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_5c05cb1f-4a92-464e-ad05-2d4943efb0e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeSeveranceMember_ea78e09e-83cb-4312-ac1b-496271349386" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeSeveranceMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_38941bdc-3c3a-4144-9fe3-7854c7e66bb6" xlink:to="loc_us-gaap_EmployeeSeveranceMember_ea78e09e-83cb-4312-ac1b-496271349386" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_16ebf407-6929-4390-85f4-d8e9664b62e6" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_59f61e14-43eb-4f88-befd-99ba78fd81a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_59f61e14-43eb-4f88-befd-99ba78fd81a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_29b8b670-1a42-4119-96f4-06d5b88c39f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4af0884e-eb7c-4299-a50b-34bf8107d814" xlink:to="loc_us-gaap_RestructuringCharges_29b8b670-1a42-4119-96f4-06d5b88c39f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cdxs-20231231.xsd#SubsequentEventsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_aac3c6b2-6ac4-477b-9bf4-7bf6725b6fda" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_aac3c6b2-6ac4-477b-9bf4-7bf6725b6fda" xlink:to="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentAxis_95cb3d6d-8f62-4bf3-b052-bf56097b26c8" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansMember_0b3b12e5-c73c-4b41-8b06-5ff4773fb338" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoansMember_0b3b12e5-c73c-4b41-8b06-5ff4773fb338" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansFirstTrancheMember_0ced14ee-1d02-47c1-91f7-fa40cdae65e1" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansFirstTrancheMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoansFirstTrancheMember_0ced14ee-1d02-47c1-91f7-fa40cdae65e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoansSecondTrancheMember_92362483-d82e-4ffc-bb6f-885aefea5b96" xlink:href="cdxs-20231231.xsd#cdxs_TermLoansSecondTrancheMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoansSecondTrancheMember_92362483-d82e-4ffc-bb6f-885aefea5b96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_152c4896-88f3-4141-a689-012b52665d34" xlink:href="cdxs-20231231.xsd#cdxs_TermLoanMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_76c04a0b-485a-41a9-95ba-047b3ce8709f" xlink:to="loc_cdxs_TermLoanMember_152c4896-88f3-4141-a689-012b52665d34" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_e406178b-e285-4773-b820-843e85edc8c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_18f7483e-8bbd-4f6d-8bc8-d2d4c8c5003d" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_e406178b-e285-4773-b820-843e85edc8c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_6db9debe-3ed0-4b01-8d8a-8d64b4018f14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_e406178b-e285-4773-b820-843e85edc8c6" xlink:to="loc_us-gaap_SubsequentEventMember_6db9debe-3ed0-4b01-8d8a-8d64b4018f14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableRateDomain_f1541799-c01e-43f3-80e6-12b57f2f1089" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VariableRateAxis_d21f0e29-5db4-40ce-8f01-14f3be43f449" xlink:to="loc_us-gaap_VariableRateDomain_f1541799-c01e-43f3-80e6-12b57f2f1089" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrimeRateMember_cfa94199-59b7-4d58-9d60-70c3af825ff5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrimeRateMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VariableRateDomain_f1541799-c01e-43f3-80e6-12b57f2f1089" xlink:to="loc_us-gaap_PrimeRateMember_cfa94199-59b7-4d58-9d60-70c3af825ff5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_481697aa-c756-4094-9ad2-989c690536d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_cea51f28-4c1f-424f-a828-c7e723cb868c" xlink:to="loc_us-gaap_ClassOfStockDomain_481697aa-c756-4094-9ad2-989c690536d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_f84e6d06-32cd-4b2b-b2af-d4bf85d9c1ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_481697aa-c756-4094-9ad2-989c690536d2" xlink:to="loc_us-gaap_CommonStockMember_f84e6d06-32cd-4b2b-b2af-d4bf85d9c1ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_189039fd-28f9-4e6b-9627-d133e2a6a5b5" xlink:to="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTerm_267d52df-8324-4d4a-8890-6c538cdfdbeb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTerm"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentTerm_267d52df-8324-4d4a-8890-6c538cdfdbeb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount_8f67ca14-52b0-40ab-a354-b8260f94815b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentFaceAmount_8f67ca14-52b0-40ab-a354-b8260f94815b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentNumberOfTranches_f45cbcf2-ed71-4ed3-ad6b-56318bca9dfd" xlink:href="cdxs-20231231.xsd#cdxs_DebtInstrumentNumberOfTranches"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_cdxs_DebtInstrumentNumberOfTranches_f45cbcf2-ed71-4ed3-ad6b-56318bca9dfd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPeriod_2b3c18bb-e812-4401-9cd3-ec94fef5a8eb" xlink:href="cdxs-20231231.xsd#cdxs_DebtInstrumentInterestPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_cdxs_DebtInstrumentInterestPeriod_2b3c18bb-e812-4401-9cd3-ec94fef5a8eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_21ee4e94-76b3-48e5-b1d1-0e0374dd6a06" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_21ee4e94-76b3-48e5-b1d1-0e0374dd6a06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_a71d9db6-f458-4a67-97a2-c3482f7f3711" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_a71d9db6-f458-4a67-97a2-c3482f7f3711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_096e47c4-fb2a-45ab-bdaa-8775df306b39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_096e47c4-fb2a-45ab-bdaa-8775df306b39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_b82cedda-e11c-45dd-b5c7-810670b6a84e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_106bb8e3-87dd-42a4-87e5-b28dbb609c20" xlink:to="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_b82cedda-e11c-45dd-b5c7-810670b6a84e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#AwardTimingDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncentiveStockOptionsMember" xlink:href="cdxs-20231231.xsd#cdxs_IncentiveStockOptionsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_IncentiveStockOptionsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NonStatutoryStockOptionsMember" xlink:href="cdxs-20231231.xsd#cdxs_NonStatutoryStockOptionsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_NonStatutoryStockOptionsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_PerformanceSharesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_PerformanceShareUnitsPSUsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember" xlink:href="cdxs-20231231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_RSUsAndRSAsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember" xlink:href="cdxs-20231231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_cdxs_PerformanceStockUnitsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_us-gaap_AwardTypeAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockOptionMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardExrcPrice"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardExrcPrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardGrantDateFairValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ErrCompDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompRecoveryTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompRecoveryTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDateAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_RestatementDateAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonNeosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_ecd_NonNeosMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDeterminationDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDeterminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompAmt"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#PvpDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_ExecutiveCategoryAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="loc_ecd_AllExecutiveCategoriesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_PeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_NonPeoNeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_AdjToCompAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllAdjToCompMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="loc_ecd_AllAdjToCompMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_MeasureAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoTotalCompAmt"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TabularListTableTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TabularListTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_us-gaap_NetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_OtherPerfMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAmt"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoName"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureName"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_MeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#InsiderTradingArrangements"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrByIndTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TradingArrByIndTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_TradingArrAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllTradingArrangementsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrAxis" xlink:to="loc_ecd_AllTradingArrangementsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndTitle"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndTitle" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrAdoptionDate"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrAdoptionDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrTerminationDate"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrTerminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrDuration"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrDuration" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#InsiderTradingPoliciesProc"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>cdxs-20231231_g1.jpg
<TEXT>
begin 644 cdxs-20231231_g1.jpg
M_]C_X  02D9)1@ ! @$ 8 !@  #_[@ .061O8F4 90     !_]L 0P " 0$!
M 0$" 0$! @(" @($ P(" @(%! 0#! 8%!@8&!08&!@<)" 8'"0<&!@@+" D*
M"@H*"@8("PP+"@P)"@H*_]L 0P$" @(" @(% P,%"@<&!PH*"@H*"@H*"@H*
M"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*_\  $0@#
MO@44 P$B  (1 0,1 ?_$ !\   $% 0$! 0$!           ! @,$!08'" D*
M"__$ +40  (! P,"! ,%!00$   !?0$" P $$042(3%!!A-180<B<10R@9&A
M""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#4V-S@Y.D-$149'2$E*4U15
M5E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JBHZ2EIJ>H
MJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ\?+S]/7V
M]_CY^O_$ !\!  ,! 0$! 0$! 0$        ! @,$!08'" D*"__$ +41  (!
M @0$ P0'!00$  $"=P ! @,1! 4A,08205$'87$3(C*!"!1"D:&QP0DC,U+P
M%6)RT0H6)#3A)?$7&!D:)B<H*2HU-C<X.3I#1$5&1TA)2E-455976%E:8V1E
M9F=H:6IS='5V=WAY>H*#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6V
MM[BYNL+#Q,7&Q\C)RM+3U-76U]C9VN+CY.7FY^CIZO+S]/7V]_CY^O_:  P#
M 0 "$0,1 #\ _?RBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***\T_:
M;_;*_95_8R\(1^._VJ/C_P"%O FFSEELY/$.JI#+>,HRR00Y,EPP!R5C5B!S
MB@#TNBOC;P%_P<#?\$?OB1<Q)H'[9^FVEI-<_9XM:\1>%]8TC3&DSC;]NOK.
M&VZ]_,Q7TAX'_:8_9_\ B=X]_P"%9?#7XO:#XAUH>'(M?-KH5^MV@TV69H8[
MGS8MT>UY%8+\V6VL0" 30!W-%%% !1110 4444 %%%% !1110 4444 %%%>
M_M:?\%2OV /V%?B-X9^$O[67[3>A^"_$7B]!)H>FZA!<RLT)D,0GF:")TM("
MZLHFG,<9*/\ -\C8 /?J*;%+'-&LT,BNCJ&1U.0P/0@]Z=0 4444 %%%% !1
M110 4444 %%%>"_M(?\ !3O]A?\ 9-\=2_"WXV?'FWMO%5MH\NK7OA7P]H6H
M:[JEEI\49EDN[BTTRWN)K>!8P9#+(BH$!;. 30![U17EW[)/[:G[+'[=GPP/
MQC_9*^-.D^-O#T=XUI<WFFB2.2UN H8PSP3(DT#[65MLB*2K @8(->HT %%>
M'?M;?\%*_P!@W]A,0Q?M9?M2^$_!EY<1>;;Z/>WQFU&:/_GHEG;K)<,G&-XC
M*YXSFN ^$7_!<K_@E'\;-8L-"\(_MD:%IUQJN!I7_"::3J'AR.^)Z""35K:V
M28GH A)).!F@#ZPHKE/AK\<_A%\8]7\2Z'\+?'^GZ]<>#]7CTKQ)_9LIDCLK
MQ[6"[6$R ;';R+F%SL+ ;\'# @=70 4444 %%%% !1110 445F>-/&/AWX>^
M%-0\;^+;U[;3-+MFN+ZXCMI)C'&O);9$K.V/1030!IT5\[_L^_\ !67_ ()Q
M?M5_%2T^"/[._P"UWX2\6>++^&>6TT'2KB1IY4AC:24@,@'RHK,>>@KZ(H *
M*** "BBOG_XD_P#!4_\ X)^?"#]K71_V%OB3^T_H.D_%77I+:+3O"D\-RS>=
M< &WAEN$B-O;S2AD,<4LB._F)M4[UR ?0%%%% !1110 4453\1>(=%\)>'[_
M ,5^)-1CL].TRSEN[^[F.$@@C0N[M[*JDGZ4 7**^0/^'^__  1M_P"DA/P_
M_P# R;_XW1_P_P!_^"-O_20GX?\ _@9-_P#&Z /K^BOG?]GG_@K+_P $X?VL
M?BA:?!;]G+]KSPEXO\57]O-/9Z'I%S(T\L<2&21@&0#"H"3ST%?1% !1110
M4444 %%%?.OQ]_X*U?\ !.3]ECXC7/PC_:+_ &L?#?@WQ):(KS:1KR7$$I1L
M[9%S%AT." ZDJ2",\&@#Z*HK.\(>+?#?C[PGI?CKP=K$.H:1K6G07^E7]N28
M[FVFC62*5<_PLC*P]C61\7OC-\./@/X/?Q_\5-=ETW2(I1'->QZ;<7(B.UGR
MZP1NRJ%1B7("C')&10!U%%?(=O\ \%[O^".UY.MM:?\ !0'P%+(YPD<=U,S,
M?8"/FND\'?\ !9C_ ()1^.]<C\->'O\ @H1\)Q?RN$BM=0\96UFS.> @^T,G
MS9XV]<\8S0!],45'9WEIJ%I%?V%U'/!/&LD,T+ADD1AD,I'!!!!!'6I* "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@#PG_@I9^W'X._X)R?L3>._VN_&%BE\?#&E@:+I#R;?[2U.=U@M+;(Y"M-(
MF]@"5C#MCY:_!/\ X( _LV>)_P#@N_\ \%*/B#^W1_P4BU:7XB:7\/+6TO)M
M$U@%M/N=1NY9OL-D(#\@L8$@N'^S*-A98@X96</^@?\ P>2Z%XMU?_@DAINH
M>&XY6L]+^,&C76OF,'"VAM-0A4MC^'[1-;#GN5]J\!_X,=_$>B3_  H_:%\)
M12(-2M?$/A^\G3^(P2P7R(?<!H9/IGWH _<J\\%>#=0\(OX O_"6F3Z#)9?8
MY-$FL(VM&MMNWR3"5V&/;\NS&,<8KX:_8$_X)*>#/^"=/_!4GXR?%O\ 9W\%
M#1OA7\3_ (>Z;=:?IML +;1M8COIOM5E"N<I"5\N=%Z)YKHH"HHK[XJ*_O(=
M.L9M0N<^7!$TDFT9.U02<#OTH \'_:N_X*=_L5?L8>/-"^$/QM^+4I\<^)]O
M_".^ /"V@7NN:[J 8D*R6.GPS3!6VOM9E56*,%)((JW^R5_P4@_8U_;<UK7/
M!O[/GQACO?%'A>1H_$_@K7-*N](US2&5@CB?3[Z**X0*Y"%]A0,0-V2*_ S_
M (-K/C;XS_;O_P"#A?QI^UQ\:+IM0\1:IX-\1^((7N&W_83)-:VD4$1/W4BM
MKCR$ Z1J%Z5#_P %O/CUXG_85_X.@-)_:9^#US)I^I6LGA34-9CLSL&HP26L
M-K=V\@7[RS6R&)NY#9Z@&@#]Z/VN?^"J'[!O[!OBK3_!G[7?QW'@:^U:V:?2
M6U7PSJCV]\BXW^3<16SPRE-R[U1RR;UW ;AGS;X[?\'!/_!(O]G;PIX8\7?$
M#]K_ $R:+QCI,>J:!9:'HU_?W<ME(2$N)8((&DMD;!*^<(RP&5#5^?G_  ?!
M1QGX"? *8H-Z^+];"MCD VMMD?H/RJ2__9D^ 7A#_@S@U#Q)X>^$^B6^J:[\
M.[#Q)K&K&Q1[N[U3^UH-MT\S N750(UYPD8"+A>* /TT\5_\%BO^"9_@K]E#
M1_VV_$7[7?AF'X;^()9(-#UE!/)<7]Q'_K+:*R6,W33I_'%Y6]!RP4<UH_L&
M_P#!5/\ 83_X*6:?K-U^Q[\<K?Q)=>'BAUO1[K3;FPOK1')"2F"YCC=HV(($
MB!DS\I(/%?D__P &6?P$^#GCOX%?&'XJ^.OAUI>MZ[8>*H='TZ]UBU%T+*RG
MLU>XBA23<D0F(3S2H!D$4:N6"*!\O?\ !J9<2^"?^"Z?BKP?X:8VNG3^#_%&
MGR6L1PAMXKR"1$QZ!H8R/]V@#]V_C]_P6Y_X)??LK_%'4?@M^T9^U#'X-\4Z
M5(5O-&U[PAK,$NW<0LJ9L]LL3;24E0M&X^968$&N8^,__!PU_P $@/@%\=IO
MV=?B3^V'IL'B*SO/LFJOI^AW][8Z=<9VF*>[MX'A1U;Y7&X^601)LP<?BG_P
M>J1QI_P5/\!LB %_@#I1<@?>/]MZX,G\ !^%?H]_P<H_L:_ #PA_P;_WFG>
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
M (,VO^42&I_]EAUG_P!)-/H _-'_ ((&V\%I_P '/&L6MK"L<47BGQ^D<:#
M51'?@ #L *_H[_:7_;5_9>_8_M=(?]H7XNV.A7GB&Y-OX<T*&VGOM5UB48RE
MG86D<MU=,,C(BC;&Y<XR*_G&_P"""O\ RL_ZW_V-GQ _] OZ_0?_ (*U?\$^
M/'WPP_X*Y_#_ /X+6?$;_@HOX)^%_P +_!%QHZZA!XJN[I=4M8+0,+G2]+MH
MX9%O1>1M<;HPROFZF^1P.0#[2^!O_!;K_@F_\?/VBC^R3X?^-FH^'?B2UR+>
MU\'?$#P;JGAZ]N92H98HUU&WA!E8$%8B1(V1M4TG_!6S_@K]^S5_P26^!K^.
M_BIJ<>K^--8M9AX$^']G.!=ZS<+@;V(!\BU1B/,G88 ^50[E4/\ /;_P<>_M
M+WOQP_X*O^!?VCO!?PH\8^ 89_ 7AZ]\,/XOT]-/U+4(8M0O&@U,6Z2-+;*Y
M7]VLVR;;$K,B!E%?M%_P=C?\H3_B#_V,GA[_ -.EO0!X/_P;E_\ !;G]GWXE
M?#7Q'X/_ &S_ -IZPA^.WQC_ &@+Z^T[P[+IMXS7;7MOIUK9PP,D3Q11 Q>1
M&C.-B1*#@ &N?_:2^ ?_  ;^?M,_\%JM!_:7^(7[=7BC0?BG<>.-#CU;X/7W
MA/4[ ZEX@MVMK>QBD^U6*2V@<QVRR1G&[DAX]Q->J?\ !F;_ ,HF=>_[+3K'
M_IOTROS:_P""L$<<?_!WEI?EH%W?&OX7DX&,G[%H/- '[Z_M2?\ !8;_ ()Q
M?L3_ !0D^#/[5/[24'@GQ(EI'=)I^K^&=5VSP2#*RPRI:M%.G52T;, ZNA(9
M64>A_"?]M+]G?XZ?L]R_M4?"'Q/K/B#P(BR/!K6G^"M69[V--H:6UMC:BXNX
MP6QYD,;IE)!G,;[?@;_@[._X)^Q_M9?\$Y9OVBO!V@B?QC\$;E]<BDBBS+/H
M<@5-2AS_ '458KHD]%M'Q]ZO!_\ @@-_P5TU5?\ @B+XP^#FER1:C\6O@[>0
M>%/ASHTC@R:Q/KER8/#ZX/+*M].\#[0=D-NK'K0!^MG[)'[<G[+O[=?A#4/B
M!^RE\2Y/%NA:9>"UNM9AT"_M+4SD$F*.6Z@B69UQ\ZQEBFY=VW>N?*_BI_P6
MO_X)R_"/Q1XJ\,ZQ\9]5UF+P#<1P?$/7O!G@36-=TGPI)(YC5=1O["UFMK5M
MX9"K2;E96# $&O!_^"H0OO\ @C;_ ,&[OB#X7_LW:U-8ZMX9\'Z9X4L/$%H3
M%.]YJ%Y#;W^I;ARD\IN+N<..5ED!&,"OB?\ X-^/%WQ#O?\ @B!\2_V=_A1_
MP3J^(_Q(_P"%BZIXHTW6?%GAW4_#46GS75UIT5HD,HU#5;>X_=Q&+=^Y(PQ*
M[LF@#]X/AC\3_AW\:?A_I'Q6^$OC;3/$?AK7K)+O1M<T:\2XMKR!NCI(A(8=
M0>X((.""*H_'CP7K'Q(^!WC/X=^'FA74-?\ "FHZ=8M<N5C$T]M)$FX@$A=S
M#)P<#M7YR_\ !K9^R7_P43_8<_9E^(/[.'[=7P?OO"6EVGBJWU7X?P7VO6-\
M&6YA=;V*/[)<2^4BR00R;6V@O<.P!)8U^HM 'RY^S]^PG\%_^">7_!-2^_9U
M^$7@S2["72/AC=Q^(M7L[15GUK418/\ :+R>7 :5WEWL-WW5*HH5551_/%_P
M:(_\IE=!_P"Q!U[_ -$+7]1W[1G_ ";WX[_[$S5/_226OY<?^#1'_E,KH/\
MV(.O?^B%H _HC^)W_!-SX8ZS_P %(OA5_P %&/AOX2T;1O%/AFSUK2?'=W:P
M""77+"[T^6.WDDV+B::&<(H9L,8YF!8B-%'5_M@?\%(_V,OV$[W0O#_[27QD
MATOQ!XIF6+POX1TG2[K5=9U=V?RU%O8V44L[AG^0/L"%OEW9XKW*OYE?^"7G
MQY\6?MZ_\'8W_"^OBU=R7[6OB7Q:^@V5V2R:?8V>FW]M80(IX7RH_+/&,R O
M]YB: /WM_9=_X*<_L6_M??$76?@K\(OBO-;^/O#JEM=^'GB_P_?:#KUDH"L6
M:PU&&&9E"LA+(K*H=<D9%?,__!>#_@O1\(?^"6'PMO\ X4_#36++Q!\=M>TL
M_P#"-^'$Q+'H22J0FI7_ &5%^]' ?GF8+P(]SC\NO^#JWXL>,/V.?^"Z_P +
M?VG_ (%:@=(\6:1\+= \0)>VQ*&>ZAU758-LN/OH\%ND+J<AH\H<@XKZ8_X/
M1/$5MXO_ &#/@+XMLX'BAU3QX]W%')]Y%DTMW /N U 'T1_P;L?\%3_V1OC'
M^QO\(/V0-4_:9@USXZ7.DZO>^(?#MW:7CWLUT;V\O;B62=XO*=S&YE8^8<[C
MU/%?7/QZ_P""H/[%O[._C_4?A#XL^)FHZ[XRT>Q%YK'@[X?>$=3\2ZGIL!&X
M27<&EV\[6:E<,#/Y8((/0C/E'_!N9_RA1^ 7_8L7G_ISO*^'OV'?V9_%'_!!
M/_@H[\3_ (F?M1_MOV'Q,U+XY1W$/@WX-_#NRN]6\9^-K^6_-S;W]W9-&B6K
MQH;L><TIAS/-F90I! /TV_88_P""IW["'_!2"SU23]D'X^6/B6^T-%?6M"N+
M&XL-1LD+;1(]M=1QR&/=A?-4,FXA=V>*_$__ (/?[>!?VBO@-=+"HE?P5JZ/
M(!RRK=PD GT!9OS->1?\$'O%'B.W_P"#H75%.@77AIM;\8_$&'5_#LEQ&S6B
M^3J,YLY&@9HI/+EBC!*,R%H@5) !KV#_ (/@?^3@_@)_V)NL_P#I7;T ?NM^
MP)_R8E\%?^R2>&__ $UV]>M5Y+^P)_R8E\%?^R2>&_\ TUV]>M4 ?R,?\$GK
M*TTW_@Y8\(:=86Z0P6_QT\0QPQ1KA41?[0 4 =   *_8_P#X.[?V9?@3X\_X
M)9ZW^T9XE\':5'XY\#>(M'/AOQ$MJB7KQW-[%:S69E WO$8IFD,9)&Z!6QE<
MU^*G[ .C?$OQ!_P<1Z5HWP=\=Z7X9\37'QQ\1+I&O:SX?;5;6SD\R_)>2T6X
MMS.-H8;1,G)!SQ@]S_P6<_;G_P""BOQ-_;1M?V#_ /@L+X^NK#P!X&\;V\^L
MZ1\,-$AL8;ZP<[5UBT$H<W3-:R,\0F9E0LR$(_F8 /TK_P"#+K]I3XV_%?\
M9 ^)OP,^(VMWVI^&OAQXFT]?!5S?2-)]DBO(9WGL8V/2*-X$D"?PFZ;& 0!^
MH?[5O[=?[*W[%&GZ)<?M&?%:#1[[Q1J L?"GAZQT^YU'5]=NBRJ(;*PLXY;F
MY;<Z+^[C(!D0$C<,\U_P3&_9/_8Q_9 _8\\+> OV#X(;CX?ZS:1Z[8^(Q>?:
M9_$+W,2-_:$\^U?-DD01CA555545450H_";X;_ME?$7X\_\ !VKKOQ8\4_!_
MQ/\ %*Z\ ^+O%7AKP#X%\/7=@EQ%;Z7:7UG"UN-1NK:W0*$GO&!D4^8[N 6Q
M0!^]G[*O_!1/]DK]LKQ5XD^&_P $_B/<_P#"8^#9=GBWP)XGT"]T77=(.0-T
M]A?Q13JF64;PI0%E!;)Q7Y'_ /!S;_P<)^!-,\">)?\ @FI^Q+XT35-<U7S=
M*^*_C33)LV^F6P)2XTBVD'$L\F#'.ZY2-"\0+2,_D]'\2_V4O^"J7Q'_ .#A
MKX<?\%0/@C^P'XV\!>"9;O0](^(3^)?%7AQ;A].*_8=1FEBL]3G$R+9LK*H+
M.3 F%W*M?%__  >>_P#*5_PG_P!D.TC_ -.NKT ?O9\*O^"S/_!-7XY?#'QO
M\9/@]^TO%XE\-?#:WM;CQUJ>C>%=7G&C07'GF*:9%M"XBQ;3EI I1!&2Y48)
MV/V5_P#@JY_P3_\ VW+KQ)I_[*'[0UMXYNO".D?VIK]EHF@:BT\%MD@,L36R
MO,Q*D+'$'=C@!22!7<?MMQQS?L8?%V&5 R/\,-?#*PR"#IT^17X(_P#!D+_R
M='\<?^Q TW_TN:@#]F_@?_P6C_X)C_M'_'K3_P!E_P"#/[5.GZQX_P!4O+FT
MLO"S:!J=K<M/;Q2RSQ-]HMD6-T2&4LKD$;".O%=!^US_ ,%3OV#_ -@[Q3I_
M@_\ :[^.O_"#7FK6[3:2^J^&-4>WOD7;O\FXBMGAE9-R[U1RR;UW ;AG^?7_
M ()[QQQ?\'B>NQQ(%5?VC/B8%51@ >5KM?87_!\ B']G?X#2%1N'C36 #CD
MVD&?Y#\J /T=^/\ _P %N_\ @E_^S-\&?!GQY^*_[5&F6_A_XB6/V[P5]@TN
M\N[S5;3<5-REI%"TZ0A@09)$5<C;G/%;GQV_X*Z_\$[OV9_!G@SXD?'+]HR'
M0/#GQ#T"WUKP5XBF\-:I+8:O9SQ^9&T5S#:O$7,95S"6$JJZ,R*'4G\]?^"4
M7_!!W]AG]O+_ ((\?";QQ^V5X*U3Q#XT\2Z4M];^,;/6YK>_TG3X;B:&QTZU
M892*U6V52T6PJ\LLLIR[!AA?\'@WPF\ ? O_ ()-? KX,_"_0$TSP[X/^)6F
MZ+X>L%D9_LME;Z'?PQ1[W)9L)&@+,26(R23S0!]W_&#_ (. O^"1GP1^%'A7
MXR^,/VP])GTCQO;3W/A:#1](OKR]O8(;F6UDG-K% 9H(A-!-&))E16:)@I;%
M?0_[+O[5G[/G[:/P9TS]H']F'XGV'BWPEJY=;35+!70K(AP\4L4JK)!*I^]'
M(JL,@D8()_$CX!_LR? #3?\ @S2\5?%.V^$FA'Q-XE\.:KK&M:_+IZ27ES>6
MOB::WMI/.8%U\N*WC154A5PQ R[%O0O^#(K7=3N/V1?C5X:FNW:SL_B/97-O
M 6.U)9K!5D8#L2(8P?\ ='I0!^V]%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
MXJ^./B6'POI7B?X;6/@?45O]"FTV.-KQKK? J11K<0(JN6PRR!^%5RO[P44
M?"O_  1I_8KL/^"+G_!+G2_ ?Q\OI%\176H7'B?X@_V%IUQJ1AU*Z6*,6T,=
MI')).8H(+>$F-6#O&S+\K"OQV_X-DOAW\;/V4?\ @J_J7Q8_:/\ V;OBAX.\
M.>(O!&LZ78ZSK/PUU9+=+J>ZM9XDE<6Q$0987&YL+G SR*_ISHH *^9?^"MG
M_!-#X;_\%5_V-]9_9D\;:HND:LERFJ^"_$WD>8='U:)76*4KP7B97DBD3J8Y
M6QA@K#Z:HH _G@_X)(?%?]N;_@VU^+GC3]F;_@H;^R5X[O/@SXOU5+Z#Q[X%
MT276--TW4401?;8I81MDAGA6(21L5N$$,1\K(9#^H]G_ ,%Z_P!B7XI:4ME^
MQSX<^*'QO\572[=.\)^!/A5K,4C2'@?:+J_M;>ULXPW#R2R@( 3@XP?MBB@#
MRK]CV+]K6X^%=QXJ_;0E\/6GC'7];GU&+PKX68S6?A:P=(UM]+%R0#>RQJA>
M6XPJO+-($ C5*_G#_P"":=A\9O\ @A]_P71\41?M*?LI?%'7[6YMM=T+2(?
MGA&34;G5H;JX22SO+-,HMS%)Y*#Y7ROF$, R,H_J1HH _EI^/_P\_;<U_P#X
M..-#_;>^-?["WQ*\,:%#\;?!_B+6DTGPA?ZQ#I6E6_\ 9KYDN+2%XYIHK:-3
M,L)=5F65$+;03^E/_!VZ/$WQW_X)U>"?@S\#/AEXR\9^)-:^(NF:_:Z;X7\%
MZC?-'IL=C?JUQ*T4#+#\\T2['*N2_"X5B/UMHH _%C_@E=XEUOX1_P#!LE\4
MOV?/B1\(OB'I'CG3O"GC/1E\)7?PZU9;^[N]5BO38+!#]FW3+(954NF40AMY
M0#->)_\ !H!X0^*?[(WQP^,^A?M+_ GXB>"3XK\+:;-H5YXA^'VJ6]O<_87N
MY;A/-:WV*XCE#!207P0H)&*_H3HH _E\_9>\(_&7PS_P<QW/[<7B3]F7XLV'
MPOU#X\>)]5@\577PKUI8A87IOX[:Z=/LN]$;SXF.Y055LL!@X^X_^#RW]C/X
M\?M%?LX_"3X^_!?X=ZIXFL?AGJ^LQ>*+71;)[BXL[74([(K=F) 6,*/9;78
M[/-4G R1^T%% '\YG[2G[4W[1'[<O_!N1X%_8_\ V;_V ?BU>M\/]$\,:1X]
M\4ZEX7D2UDDT]X8(HM)CBWS:A)(Z++(0BI!$K;SN9 ?L7_@U!U;5_P!G#_@F
M?XR^%_[07PW\:^"]>\.?$'4M<O\ 3?$?@;4[6633I;6Q6.>$/;_Z1EXY$V1[
MG!3E<%2?UNHH _F!_P"",/@7XV?!?_@O_P#\-2_%O]F;XK>'? 6O>*/%SV_B
M35/AAK$<$"7\5Y]E:7_1MT:NTD:Y8 *7&[: 2.W_ ."_7AG_ (*()_P7T\(_
M%_7_ -D_QQ\6?ASX-UOPWJ/PM\)Z3H-W>Z7JUE;BTN+VS0P12(LTMVEPLNY2
M^#'N5HQ&#_2/10!_+C_P<=_!?_@H_P#M,?MJ_#W]KGQ]_P $]?%WA:R\2^ =
M.LM$\/Z$TOB&YM6M[RZ?[-?2VD'EP7K><)/(7?B.2/YBXD1/V*_X+5?!O]H#
M_@I;_P $0?&.C?"']GWQ1HGC76;?3=?TOX<^)(H$UHPVNHQ3M!)%#)(B736T
M;2"W#LX<B(_O,J/T$HH _$?_ (-/?C3\=/@Q^S7J7[#.J_L6?$ZT\1GXL76L
MZYXG\2>')=+T+2-)EM+..5I;F<!VO UM(D=HD;,[21L62,2O'\;?\%*/!WQF
M^*/_  <DK^VK\.?V9_BOK/PTTOXK^!M0E\3V/PMUEHI;72[;28KR:-?LNYU5
M[6< @'>$!7((S_4#10!B;?!?Q@^';PWFGIJGA[Q-I#1SVE_9NBW=I/&5:.2*
M558!D8@JP!Y((%?A/_P0O_X(>^._V7_^"X'QEO?B'IFI?\(#\";O?X)N;L.(
M-<GU%7;2ISGY)V@L9)G?&[RK@Q\@BOWSHH ^<_\ @K3^Q)<_\%$O^">?Q,_9
M)TC4;>SUCQ)HT<WAR[NCMBCU.TN(KNU#L,E(WF@2-V )"2,<'H?PB_X(@_\
M!2+]JS_@A)\1/&O[$'[9O[#'Q9U/P[XAUX:A;Z)X:\,M-JVGZN$6W>6UBD9(
M;V&XCBA&Y)0#Y*.C,&.?Z::* /&?V,OBC^TC\>/".I?'+X]?"2\^&VG>(9H3
MX(^&^MI&=8TK3D4_Z3J;(2([NX=RQME)%O''$I)D,M>S444 >-_MW?'/P5\$
MOV:O&%SXILM=OKO4_".JP:/I7ASPS>ZI=W]Q]E95ACBM(9&#,TB*"VU?FR2
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BOBCX9?\ !9;X4?$?_@L]XU_X)06*6(/ASP1!<Z9KJRDO>^((MUQJ&GCD
MJWEVDL+   J]I=AB?E ^UZ "BBB@ HHHH **** "BBB@ HHHH **** "B@D
M9)K\H?VLO^#EFX\0_M86_P#P3^_X)#?LY1_'CXG7.HR6$GB"[U PZ!;SQY,Q
M1HRK74405C).9(85"EEDD'- 'ZO45\1^#8O^#B'P]X;3QEX^U']DGQ-J'DB>
MZ\#:58>(=,)( )MX-3>:95<\@-);LNX\D+S6?_P3?_X*V_&#]NC]MKXG?LG_
M !3_ &1]3^#^I?";PG9R^*/#WB#5$O;PZM/<LI\J:)4CDM?)$;1R*N)1('!V
ME<@'W91110 445\<_P#!:W]NC]I__@FO^R)JG[97P.\*^!?$FC>&KJQM_$'A
M_P 56]XES)]JNX[5)H)X)@N%>:/,;)R"S!^ I /L:BOB3_@@I_P5(^)O_!6_
M]CSQ#^TC\5OAKH/A74=&^)%YX;AT_P /33/!)##8:?<B5C,S-O+7CJ<'&$7W
MK[;H **** "BBOS%_P"#CS_@M'^U1_P2-T7X6Q_LT_!SP[JY\;WFH-JOB/Q?
M87-S8VPM?LY6S1;>:'$THF9BS/PD9VJ22R 'Z=45YU^R%\:/%'[1O[*WPY^/
MWC?X>W'A/6/&?@K3=:U/PU=;M^FSW-LDKP'< V%+$#< V,9 .0/1: "BBB@
MHKD/CC'\>7^'EW)^S=?>$HO%<67L8O&UG<RZ?<X1L0NUM(DD.YMG[T"3: ?W
M;9&/PG\/?\'D/[2_PK_:H_X4K^V)^QQX,TC1?#OC"?0_B#)X4U.ZFOM/\B=[
M>Y>WWR-%,T3JS;>D@0J&7<& !_0/17*Z#\0-.^-/P=LOB;^SQX^T*_L_$FBQ
M:AX4\126SWNGW$4J!XIBD<L32(5(. Z'GJ",5\H_L:?M7?\ !3'XY_MJ_%_]
MF_XV>!?@[X?\-_!?7=*LM7U[0H=4N+G7TO[-;Z'[*DDZK;G[,\1=I"^QY-H6
M3:30!]L4444 %%%% !117P]_P7,_X*(_M4?\$MOV;+?]K3X*^"_ /BGP[;ZQ
M9:3K.@^)X+V.\2:X:;;<13P3!&3Y8U,;(",LV\\* #[AHKX__P""('_!1[XB
M?\%3OV'XOVJ/B?\ #[1?#.J2>+-0TDZ9H,LSVXCMQ%M?,K,VX^8<\XX%?8%
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
M4 _X6G^S7XM_X)]^.=;\S6?AK=MKG@Z*:3YI=$O)?W\2#J1!>.6)]+Y /NT
M>Q_\'$__  6'_;P_X(_:O\.O%GP!T/X2>(_"WQ .H6W]F^,/">IR7^G7-FEL
MS-]HMM4ACF207!PODH8_+P2^[*^0_M!?\%BO^"YNM_\ !*C0_P#@J3\'?@1\
M(? G@?3]&TV?Q0^O17=QK&MRSW$=K)?6%BTCQ6VF_:)51!-.]Q(B^<-J, >+
M_P"#XO\ Y);^SK_V,'B3_P!$:?7IW[0G_*F1I_\ V1'PQ_Z=;"@#>_8(_P""
MU?\ P5"_X*V?L>SS?L-?LL_#W2?BIX8,UM\0/&_C_4;JW\*13[0]M#IL$1DN
M)[N="6*2,(;?8ID=Q*@JC_P;E_\ !P-^T7_P4L^.?B_]D3]L/P?X=A\5:-X;
MEU[0?$'ARP>S6XA@N88+BUN(3(Z^8#<1NCIM&U'# D GF?\ @R3_ .3&OB]_
MV5A/_39:U\-_\&EA(_X+<^)P#_S3_P 2?^EMI0!^J_\ P60_X+L^,_V//VH/
MA_\ \$WOV)O!7A[Q+\;OB'JVEV,M_P"*C*^E^'/[1N4M[-98H&1YIY"XDV[U
M$<>QB'\P+7&_MM_\%@/VW_\ @B+^TW\+O __  4$\1>#/C'\*?B?97#R>,O!
M_@J7P_K&AW%M+"EV%MOM=S#=11+<V\@7Y'<.1N4K\_YK_M6Z3XKTK_@\,T=/
MB0LJSW'[1_@Z>Q>XS\]H_P#9QL]I/4"+R5&.FW';%?2G_!\Q=6XL?V8['<#*
M9?&3X[A0-$'ZD_I0!^D7_!:7]OW]HS]A[_@GE+^WY^QEJWPWU[3-(;3;B^L?
M&7A^]U"'5['4;FVM[:>TGM+^U\G:;A7.Y91(K#&S;\WQ-^QK_P %P?\ @MK_
M ,%&?^"?/Q)^/_[.O[,/P:TS7_AUJVI3:UXRU,7]KI,MA;:=;72Z=I]F]S<2
M76J$M.[O-+%;1QO;##-(2MO_ (*#Z3XRT/\ X,U/"^E^/4G34HOA?\/]T=R"
M'C@.JZ6T",#R"L)C7!Y&,=JQ?^#5O_E 5^T3_P!C_P"+O_46TF@#W?\ X-N?
M^"YWQ@_X*PZ+X\^%'[37A'0[/QUX$@M+^WUGPY:O;V^K:?.[QDO"SOY<T4B*
M"5(5UF7"J4);FOVJ?^"^7Q[^*O\ P5LT+_@CY_P3>T3PI8:J?%4FA>-/BAXS
MTR;48[*XMXI)[]+.SCFA#&VCAF5FE<^9*C(%10)6^(O^#(TG_AL?XS#/'_"L
M[;C_ +B$5>E?M"?\$^OBO_P2[_X.0O!G[?GPZ\+7GQ.\'_$/QWK7B>X\&^!H
M_P"T?%6F1ZE;74.ISG2H\W$]K#+>2RK/$C1A=D;E'*AP#UK]OG_@N#_P5*_X
M)I_\%!=!_P"">GB]O@5XV'B^UTN^\)?$;Q5X>U/0XC;WTTELGVZ.UNYDB"7,
M$T9D1=NU0[!06V_KQ\!+SXX:A\'/#U[^TIHWAS3O'DFG*WBFQ\(W$TVF0W>3
MN6W>;]XT>,8+<U^*_P#P4 _X)E_M1?\ !=K_ (+*>$OCCI'P+\8_#CX$^ O#
M6D:'K'C3XBZ!-H=YJ\%K>W5].++3[H)=EY#=O"CO$B+LWL1\JM^ZU 'Y]?\
M!SG^V5XT_8R_X),>+M8^&VKS:;XA^(&KVG@O3-3MY"LEHMXDTMTZ$<JYM+:Y
M16!!5G# Y45^?G_!D%\!?"]YJ_QW_:;U/3XI=8L(=(\-:-<L@W6]O,9[F[4'
M_;:&S_[]>]?>W_!T=^R'XU_:Z_X)(^*8?ASI,VHZU\.=>L_&MMIMM&6DN8;2
M.>"ZV@<DI:W5Q+CJ?*P.2*_/C_@R)_:)\,Z-\0/CA^RMK6IQ1:IKVG:5XE\/
MV[N%,Z6C3V]X%S]X@7-H<#G <] < ']#-><:9^S#\.=%_:OU;]L'2H7M_%&N
M^!;3PMJXB11'=6UM=RW,$CX&3(IFD3)/W-H_A%>CUC2>,O#NJ:_JWP]\/^*=
M/?Q)I>E07MYI:W"M/9PW)G2VFEC!W*DCVTX4D8;R9,9VF@#\O_&G_!;K]H7]
MM/\ X*SR?\$I/^"9E_X/\.Z?X;?4$\>?&/Q9H<NL^5)8H?M*V%DD\".J3;;<
M/(Y$CL67:BAGN?!#_@N+\;/V=?\ @K'?_P#!('_@I7:>%-1U*_U*RM/A]\7?
M!NF2Z9;ZI)>P1S645[8RS3")YC*( \4FU)@$*LK>:/S$_P"#0O2]>T3_ (+/
M>+-&^(,,\.NV?PP\00ZC%>G]\MZFHV"S*^>=X(DS[@U5_P"#DFS\5>)_^#BW
M2/#OPT$K^(YF\%VFCK:@F7[<_D^0%QSNW/'C\* /V!_X+^?\%TM-_P""07PW
M\/>$_ACX+TWQ3\5O'$4\V@:9K$C_ &'2[*(A7OKI8F620%SY<<2LF\K(=X$9
M#?&G_!:[Q7_P62M/^"'^OZW^W=9?"[Q5X=^($/ARZU<^"M.N=,U3P)=/J5G=
MPQ7*R.\-] 2@MF*;'CFD0YE3+#Y(_P"#R.'Q-;?\%;-!O/$L4SZ:_P (='.C
M!\[#;B]U#S%7M_KO.R/?WK]>_P#@Z0U/3M9_X(2?%+6-'N4FM+NX\,36LT1R
MKQMKNGLK#V((- 'C?_!E=Q_P2N\=9_Z+YJO_ *9=$KO_ (%?\%>OVCO^"L7[
M>WQ#_93_ .";/BCPEX&^&?PITR23Q!\7O$WA>37;G7+WSC!!'96BW5O%%;R.
MLS"1V=GC@W#87"UX1_P:EVOBR]_X(-?'VR\!"8Z[-\1/%::*+?/F?:SX9TD0
M[<<[M^W'O7Q'_P &D6A2?%+]J'XG_ +2?VP_B-\)=7USP=::IIW_  KV?1XY
M-:%E<.LD,G]IZ=>!C&MWYBK$$;;YK-N"_* ?KY_P1_\ ^"R'Q._;E^*7QB_8
M'_:4\/>&?#'Q_P#@UJ.I6-Y?:':S2Z-K4=I>-8R7L=L\PE7RKGRA)%YH#K,A
M1TW$1_%O[??_  <7_P#!8'_@FU^WG)^QS^TO\./@!::*-1LI[;Q]8?#W7I8[
MS0;B4*-3AMCK@+LBB4-!OXE@DC#G <_>O[('_!"W]D']A?\ ;UOOVZ/#W[3G
MQ4\1_%'QNNL'4H/''B/1FBUN6\83WDOV>TTVV9V#XE(C(53@E<<5\X_\'?G[
M(/PW^/W[)7@SXF^']/N+KXO^%]6O#X1TG2+!KB\UG18[5[K5D9(QN$-M! +L
MRM\L90H/FN5! /J70/VE/^"COQV_;KU/X*?LO?%+X"ZK\(?"7A'1[[QK\1+W
MX<ZM<S6^L7D/G#2;40ZZD5S(]OY-YNRHMX;V!7\UBID^9?\ @XX_X+"_MR?\
M$GOB3\/M-^'7@3X(>-_!?Q#@O[K2--\;^!=2GOM*N=.-H)#)-%JJ13[FNU='
M6&(I@J0Q&\\S_P &;W[>O@KXK_LA>(/V#M8M;"P\7_#349M7L3#$L<NM:1>3
M9-P^.998)V\EW/2*2U7MQXC_ ,'R_P#R&?V9/^O7QC_Z%HM 'Z ?MD_\%J?$
M7[&?_!$KX9?\%)?%OP]T?5?'_P 3_!OAEM$\.VPFATK^W=5TL7S@@R/*MK$D
M=S($\PNPB6/S 6\P>6/^WC_P5\\.?\$\/"7_  47^'/QJ^!?QJ\)^*;'2K[Q
MGIOAOP-=V%UX(AN)X5NS;R+?RK?"U\R2.=)XXI(FC+D%4=:ZKQ)^PK\"_P#@
MI%_P;Z?LS_LA?&/XC1^$]5\2_"GP2_PWUYXO,-MXB@\-^="!&2!(&MDO$9,J
M6C9PI#[37XE^#/'G_!5K_@V$_:^_X0?XAZ#*?"NN7#/K'ABXN&NO"OCW3E(2
M22!RNT2A" ) JSP[E61-K&-P#^N6BO$/B?\ \%'/V*_@+\*O _Q?_:)_:&\-
M?#_2_B)IMM>^%H_%FII:SW<<T,<W$9);"++'O;&U"R[B,C/L?A[Q#H'BW0;+
MQ5X4URSU/2]2M([K3M2T^Y2:WNH)%#QRQR(2KHRD,K*2"""#B@"Y7X ?MH?\
M$,;;_@HA_P $[O$W[5_[-7A9/^%U^"/C/\3O,L;2(!O%^EQ^,]98V; ?>NHA
MN:!NK9:$YW1F/]_Z^5O^".W_ ":;XB_[+W\3?_4TUB@#\1O^#7?_ (+BW/[(
M7Q)MO^"<_P"UMXH>U^''B;5FB\%:SJTI5?"FL2R8:VD+_P"JM+B0\YPL,S;R
M LDK+^VW[&'_ "D9_;)_['#P7_ZB=C7Y,_\ !U7_ ,$)_P#A'+S6/^"I'[(W
M@[_B7W,IN/C)X7TV#_CVE8\ZY"BC[C$_Z2!]UB)R"&F9?H/_ (,\OCK\5OVB
MO@1\:OB-\:/&-UK^NIXH\/Z4^K7S;IYK:RT:.TMA(W61E@AB0NV6;;EB6))
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
M$D91S'PH5U8?*O[%/_*XMK/_ &<;X_\ _1>L5L?\'KG_ "DR^'/_ &0JP_\
M3SK% '[-?\%U?VZ_VM/^"<?[%-Q^V9^RR_PXU2UT+5+&UUS0?'/AF_O#>17<
MZ01S6]Q::C;"(HSKE&CDWALADVX;Y&_X)^_\%9/^"['_  5T_8R\3?$O]E+X
M)_ WPGXC\,>(+RTO?%NO6^HPZ?J92V@E@TW3;5Y[DF[!=FEN+B18%6>!57/F
M.OKG_!T 2?\ @@=XK).2;GPIG_P8VE<5_P &9'_*)WQ'_P!ELU?_ --VE4 :
M7_!OO_P<(>-_^"EWC_Q%^R'^UYX!T?PW\6?#VGRZAIUYH<$EO::U;0R+%<1-
M!*[M!=0LR,55BKJ78+'Y9!W/^"IW_!=/XE?!3]O/P%_P2?\ V!/"WAC5OB[X
MQUS2].\1^*O&$<T^F>%C?NGE(;>%XWGF6"07+DL%2,H-LC.53\GO^")^G:KJ
MW_!T_+>_#T,=+M/B5\0KB\>#_5KIYM=612V.-I=X5'^TR5H^#M(\5Z-_P>)S
M6?Q+65+M_P!H^_N+87(()M)4FEL,9[&W>WV^Q7% 'Z4_M2_\%GOVM?\ @C3^
MW'X#_9R_X*0>(?!_Q0^%GQ%TB.[M/BAX1\(2Z!J>B/YY@N#/9?:KF*XBA;RW
M(0JYCEW LR^6WK'_  7W_P""U&I_\$J/@GX!7X*Z+H&L>./BMJ4\/AK4_$/F
MS:3I=A;K ;G4)5MV#SX^U6X1%8!M[/E@FQ_SC_X/A;JW?XW_ +/UDK#S8_"N
MNNX[[6N;0#]5:OKS]M7_ ()(:1_P5-_X),_LM?L\>+_BA:>%/VA/"/P1T[5?
M!)UT/LOGATG2H=6M+D %A&99++?(H+QN$8*R[U(![%J/[27_  53^ OQ$^ =
MUXB^+WP>^-_P;^+?C_2M*U?XH^"O!T^EW>EQ7D;F)5B6^N;>:VG<(L=VI!!.
MQES)&U>"?\'$_P#P6<_;M_X)0?&_P1X4\!> ?@;XX\'^-K"XU70;;QEX$U.2
M^TFXLY(T8/+'JRQ3-F57258HB-Q7;QN;\VO^"8_[=/\ P46_X(/_ +>NA?L%
M?M:>$-9B\!ZSXLL;3Q'\.?$/^D6]JMS=*D>LZ1("R963]Z&A8Q3F-E;YPKQ_
M1'_!\3_R5[]GG_L6_$/_ *46- 'W=_P5\_;,_P""@ND?\$+-$_;/_9D\1>#/
M"-_K_P ,M$UOXE:ZD]W%J.G)J<5BABT2()*J.9;QQYTTP>&-!LWR,)(_AO\
MX-,6_P""H5Y\ ?%]W^R-J7P(_P"%=O\ %Z!O'Q^)MOK<FNR.;6T-P;%K)Q!S
M;XV><#^]R6^6OL?_ (*< G_@TP  _P": _#_ /\ 1NC5Y?\ \&2W_)AGQ9_[
M*[_[B[.@#Z(_;Z_X+-?$/PU_P4;\!?\ !'W]@;0O#NH?%OQ;>PCQ?XP\5VLM
MUIOA"T>W:\DQ:PRQ/=W262/<[#(D:CRE)<NPCR/ '_!77]H+]E#_ (*]V7_!
M)3_@H-J_A;Q/;>.=-LKSX7?%7PSH+Z/)/+=+(L5I?6;3S("\\,UNDD3#YUCR
MI$I,?Y$W>L:SX2_X.T?$L'Q,^.'BCX;3:O\ ';6M)M_&GAN2RCU'3H=1@N+7
M3S$U_;7-NJ21W%M$3)$P$4K8VG#+^R/QK_X-[_V6/B=^TYX+_;J_:@_;O^._
MB+QIX U+1CH&O>)O$OANT@1K34!<65LXM]%@4JUU+M !#L90H;)7 !^BM?G/
M_P '6W_*$/XG_P#8:\.?^GJSK]&*_.?_ (.MO^4(?Q/_ .PUX<_]/5G0!\=?
M\&.O_)*OVB?^QA\.?^B-0KOO^"]G_!?;_@HY_P $B?VQ-,^!_P ,O"?P4\5>
M%_%'A*+Q#H<^O>#=72^LHWNKFW-K.\6KK'.RFWW>:J1AA)CRUVY/ _\ !CK_
M ,DJ_:)_[&'PY_Z(U"OGC_@]D_Y2$_"S_LC,7_IVU"@#ZJ_X*J_\%K_^"W_[
M%7PP^&7[9EG^S_\ "?P1\+O'MW%!HWA77EN=2U]I&MOM"?VHJR1QVGGQ*\B0
MV\CO"%*2R%QS^G7['/\ P4#^&G[3W_!.?PQ_P44\411^%/#>H^![CQ!XFCN9
MS)'I LQ*M^-X +QQ26\^&P"RJ#@$XK\P/^#OC_E$;^S_ /\ 8_Z5_P"F"]JW
M\"[?Q9>?\&4-]%X-$QO!\-?$3S>3G=]D7Q/>M==/X?LXFS_LYH W_P!@W_@L
M?_P5A_X+4_M+_$63]@'2/A/\,/A7\-8[>2)_B1H%YJ=WJ[W$DJVD%R]O.GEM
M*MO,[>2!Y(4+NE)#'\V_ GBSXI>-_P#@ZY\.>)?C;\-X?"/BZ;]H/3D\1>'K
M74?MD%I=QB*.3R9]J^;"Q3?&Y4$QNI(!R*^W_P#@QWU;29?A%^T+H<4J?;H/
M$GAZ>X0'YA#);WRQD^VZ.3\C7R=X^_Y7%H/^SC=-_P#14% '[8?\%O?^"S?P
M]_X(_P#P%TKQ(/"2>*_B)XTN)[7P)X3DN#%#(8@AFO+EU^9;>+S(P57YY'D1
M%*@M(GS]^VU_P5'_ ."E?_!'C3_@I^T#^W3J'P]^(G@/XEWPT[XC^&O"'@Z?
M2+[P;?M"LYCL+A[V<7J(AF&)E4R&VQN3S 4^ /\ @]:/C33?^"A?PDUMVF31
MD^$47]DN1\@O4U:^:XVYR-VQK3/MMS7Z>_%G_@BU\ _^"MW[-?@;Q%\=?^"D
MO[1WQ#\"ZK;6?BKPK'<:SX5BC5KBU/ES!K;0(R3Y4[*021R>,C@ ZW_@LA^W
M+_P4$_9(_9!MOV^/^">6F_"CQYX L='L]1\2:1XK\+ZG=7HT^X^9-5MKBTU*
M!'MPDD&^(P[D7?+YA4%4^5?V /\ @X1_;%_;5_X)_P#Q@^/\^O\ P4T[XP^"
M_$&G:/X'^%NG_#K5IO[=N[\I'IT(+:Z))GO+DRVZ^6%%OY#2OYB'"_J1\ ?@
M!\$/ W[&/A/]F#PSKQ\;?#C3/AW:^&K&^UN^@O1K.BI9K;)YTL")#,LEN "R
M*J,#P #7\JWP ^(W@3_@BQ_P6R\-?&72M*NO$?P<LO&-[<>$M=U?26)U?PE<
MSW>G)K%GO&9FC3SS%.F!,825.R7D _JM_9-M?VQX_A3:7_[;WB3X=7?C.\BC
MFNM/^&?AR^L;#3&*?/;^9>7UT]V0W_+4"$'^YW/I]5="US1O$^B6?B7PYJMO
M?:?J-K'<V%[:2B2*XAD4.DB,.&5E(((X((-6NG6@#\JOV:/^"V/QK_X*W?ML
M_%#]C[]@GXJ> _A)IGP_TV6ZT/Q+XX\$77B+5/%RPW/V>:XM[=+VT@L[=7:(
MD2&:4I*C!5_>+'RO_!%[_@X%_:6_:9_X* >*?^"7W[=W@GPK+XSTC4-:L-"\
M9^";26U@NKO2GE%S!/!([ ADAFD25-F/+"M&2VY> _9?_:3_ &=OVK_^"MGC
MW]G+_@A9\!?!'PGO+K3K^]^,?[3+:0MY>W&G1WD*W*:%I\S-;1>==R0!970Q
MR9\TP$1*6^)?^")&@2>$_P#@ZGG\+2^(-1U9M-^(_P 1K1M4U>99+N\,=EK"
M>=.ZJH>5]NYF"J"Q) '2@#],O^#B#_@M3^W]_P $>/BI\/T^"'A[X/\ B7PE
M\1[#4)-.L_%?A'5&U#39K#[(LZR3V^JQ1SJYNE92(8R@!4[\;SY5^V[_ ,%K
M_P#@N%\-_P#@G7\,?^"E_P /_@#\)O WP\\0Z;HD>JPZU'<WNLZI?7=J)'OX
M[0R^7::5+,KK;J9Y;DQ/%(Y7?A?,O^#Y?_D-?LR_]>OC#_T+1:])_P""P?\
MRJ,_ G_L0/AC_P"FVVH _1S_ ()"_P#!1JT_X*8_\$__  Q^V!XB\-6?AG5)
MS>6/B[3H)S]DL[ZTD*3/$TA)6%U"3*&)*+)M+,5+'X+^ G_!<?\ X*$_\%??
M^"A?BC]F;_@EA;_#GP+\,_ VFW.HW?CWXA>'[K4[C5K>*=((Y3%'-&(EGD=3
M'" '6,.[29'EC"_X(&V_BR^_X-=?CG9>!!,=<ETGXAIHHM\^9]K.C8AVXYW>
M85Q[U\^_\&06JZ3#^TG\=M#FE07UQX'TJ>V0GYC#'>2K(1[!I8L_44 ?-/\
MP5(\5?M!^+/^#BCPU/\ M3?#O1O#7CJQ\=>!['7+;PU?R7.F7AA-BD=[9O*!
M(()XPDRQR?O(]YC<ED)/]9E?RZ?\%YO^5H/1/^QN^'W_ *+T^OZBZ ,?XB?\
MD_UW_L#77_HIJ_FS_P""CO\ P0G_ .%D_P#!(;X"?\%/OV1O!N?$.F? ?PS/
M\7?#&FV_.IVD>E6^=8A11S-$H_?@??C7S>&CD,G])GQ$_P"2?Z[_ -@:Z_\
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
M"UY>:9;W,Q1,G8GF2-A<G P*_$C_ (/E /\ A)_V:#CG[!XM_P#0]'K]C_\
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
M)34/$7QG\:?%63XB_%CQ99FRU'Q.VGFVMM/LVD662WMD9W=FDD1&DF=LOY:
M*@#;]'_@II_P0V\/?MD?M1^!?^"A/[-?Q?A^%_QV^'VHV-W9Z[=:'_:&F:Z+
M.426\=];K)&Q9<>7YJL28CY;*X"%/ORB@#\TOB7_ ,$*_BI_P4#_ &XO"/[9
M_P#P5<^-?@SQ)IW@#38+/PS\*/AIX<NK72+CRIGGWWD][/)+*KROEX@H#JJ(
M6VJ0_P!!?\%$_P#@G[\;/VOOBI\'/C/^SU^UA+\(?%'P>U#5[[2];M_#:ZI]
MK>\@@A^S2V[S1));,L3+*A;YE( P?F'U710!^='B_P#X(T?M!_MK?MX_#']M
M+_@IG\:_AUK5K\&HXV\'>"OA;X/O+"WU.Z2X%REQ?S7UU/)M$R(_V=,H0H7<
M 7\SF?\ @M5_P0 ^-7_!8SXU>'/'_B#]M#P[X)\/^#-,GLO#.AVOPUGO+A5G
M='FDN+AM2197+1H!LCC 51P3DG]/:* /ESP__P $YK[X@?\ !+T_\$S/VO?B
M=I_B[3!X%M?"2^)O">@2:1-]BM+>"*SN#%-<W(^U1O DI<-Y;,H_=@9!^8/^
M"4'_  ;X_'7_ ()J^)]6\+7_ /P4>U7Q#\*K_P 46FOW7P_T'P7%I3ZO?VK*
MUL]U>-/--'$"D7FV\#*LXC5)&,>^-_U"HH _+S_@ME_P;4_#;_@J5\5X/VH_
M@]\8$^&_Q--E#::[<W6E&[T_7HX5"022A'22&X1 L?FKO#)&BE/E#5Z/_P $
M^_\ @D]^V7\*M3\,^)O^"DW_  4?\1_'2/P+-%<^"/!(M3!I%A>Q#$-_=RO^
M_P!4N(OO0FXXBD E&Z0(R??E% !7QK_P5^_X)Q?M)_\ !47X!ZE^REX=_:>\
M(^ / >KZA8WFI>;\/+G4]4G:V=9EC\_^TH8EC,RJ_$.["*-WWMWV510!^9W_
M  1K_P""&'[3O_!'/7O%=O\ #W]MGP;XQ\->.;C3I?$>D:S\*KF"=#:-*%>V
MGCU;$;-'/*IWI(N=AQ\I#<I_P6._X-Q_C+_P5Y_:FM?VA/%G[;_A[P?IVA^'
M8]"\-Z!8_#&:Y>&S2XGN-T\[:FOG3%[A\LJ1KM5 $!!+?JY10!^;?_!3S_@B
M/^U!_P %/OV5?A-^R[\2/VV/!^@6OPZ2.YU?5=*^%=R\FM:E%#+:Q3JCZKBW
MC%LX#1Y<F4NP8*5C7W7_ ()@?\$X_%_["_[!T/\ P3]^.?Q7\.?%'PAI]KJ-
MAITD/@Z73'GT^_GN9[JVO$>\N%G#-=2*"HCPAVD,?FKZOHH _'K]G+_@VS_;
M$_X)V?M:>)/BO_P3+_X*46?@+P1XPMVLM4TOQ/X&36+VSLC)YB1!)7\B[EA.
M3'.PB89((8,^_-\,_P#!IWXM\/\ _!0&7]N;1_\ @HUKNF7VF^-H/$F@33>%
M$U;5[F]C9)7NKV[N9UBDEEG$DCJ+=HSYA4 * M?LO10!\<?\%<O^"-OP=_X*
MY?LXZ'\*OBMXZN]$\:>$6:?PE\0[738Y9;:>2-$N%FMP466"?RT9XE:,AHXR
MK+MP?E+]@#_@WQ_X*(?LT^&E_9Q^,G_!7/Q!+\"([B0W?PV\!64MK+J=O(VZ
M6T6]F;SM-@E);S4MCE@\F"C.7'ZZ44 ?*W_!1']B?]JW]JC]GN;]D[]D[]JG
MPO\ !+P-J/AV/1M6-E\/9K_4OL:AHVM+6:/4+>*UMF@V1%5B+A0P610V!\T_
M\%9O^#?/X@_\%5/#/PG\/ZW^T1\.OAZWPM\/3:9;7'A7X3W/^D1R>4HMXU?5
M<0VD:P1^7"=Y0F3#X;%?I_10!\R_\$K?V,_VE?V!?V9M+_9:^.7[4NE?%31?
M"ELEGX+U2+P=+I=]8V0+%;2=VO;A9XXP52+"H410A+ +CZ6O+2WO[26QNX]\
M4T;1RIDC<I&",CV-244 ?C!^RU_P:*W7[+'[7%U\;/AM_P %,_B%X9\(B2>&
MUTSP':2:/KT^G2L&-A-J<5R1LPJ!G6'+[ P6)@I7HOA;_P &JC?L_?\ !2__
M (;?_9T_;T\0^"O#2:[?:C:>'M/\/"YUFT@O8Y8KJPCU*ZGE!5HYYD%S)$\R
MJP/,BB:OU]HH _-+_@MW_P $&/C#_P %D_B?X/\ $&H_MB:!X%\,> K"[@\-
MZ-'\.IK^[,EV+<W4EQ<G48UDRUM'L"Q)M48)8G=5G]J3_@B/^U!^U)_P2M^&
MW_!+OQ%^VQX/T[2? D>G6MYXJM/A7<M<:G9:; L.G0B)M5VPLJ@F5\MYA6/:
M(P&#_I)10!\8?\$6_P#@EU\5?^"3W[.^K_LN^+?VB=!^(OA>ZUZ?5]*EM_!$
MNEWEK/.D231R.U[.DT1$0*J$5@6?+," OR;IW_!M!^T#^QW^WQ??MD_\$EOV
MY=*^%.G:W]JAO?"_B7PA_:<>FV=TP>:SB7?Y=W;AU1XXY%1HS%'^\8H'K]@:
M* /QA^.7_!IGXZ^/_P"VS-^UYXN_X*4ZZFI27.FZI=Z[=^#X[[6-1UB".(RW
M9)GBMK2/SH_W-O'$\<,211@$+FOV)\#Z-XB\/>$=.T/Q=XQE\0:G:VJQWVMS
MV45N][(!S*8H0(T)_NJ !6K10!Y3^U_\,_VFOC!\)-2^&_[,WQL\+^ K_6]+
MN["_\0^(?!T^LRVJ31^6LMK''>VRI*@+D-)YB[MIVD AO/\ _@F3^R+^U)^P
MW^SYX:_9?^,_[2GA3XC>&?!>@KI?AC4-/\!7&D:G'!&RB".>1M0N(I4CCW1C
M;$C$"/+$JQ;Z6HH YOXP_"#X:_'_ .%NO_!7XQ^#[/7_  OXGTN73]<T>_CW
M175O(N&4XY4]PRD,K ,I! (\._X)3_\ !//3?^"87[,%W^RMX=\</X@T6U\;
M:OJGA^]N(MEQ'874_F0PSXX:6-?D9U 5R-P"YVCZ5HH _&;P-_P:07'PK_;Q
MU']J7X-?\%)/'/@/PU<:[=ZA8V'@O3&L?$-I;W+,9;%-36XVA=KLGFF!MR\,
MA.6K7U/_ (-2E\'?\%)+']N+]F7]O?Q)X"TNVUY-86QET+^V-<M;AH]ESY>H
MWT\BS/,6E;SKB*5E,IW+*1D_L%10!\:?M-?\$Z?VJ_%_[=&@_MX_LD?MF6?@
M'7/#?PLM/!S^&O$WA676].\3P17]W=NFI8NH) F9X]LD;>:KAV##)#<9^S1_
MP1P^(,G_  4UU'_@K?\ MX?%?PCXG^)L>DIIOA'PU\/?#<]AHNB(MI]D^TL]
MU-+/=3F!I%!<@(9&(SB,1_?U% 'YC_\ !9C_ (-T=!_X*-_'C1?VT?V;OCM_
MPJOXP:0+07FJR:>\]IJKVA4VERS1,LEO=0A443+ORD4:E1L#5Y_^W;_P;E_M
MH_\ !3+P)X%F_;+_ ."G4&N^./#M]*MSJMKX"2#2-+T]HE!ALM.MY85EN)95
M$DUU*ZLPCB1518\-^O%% 'P_\,/^"+UAX:_X)-^(/^"3/Q4_:H\0>,/"VIZ$
M^FZ)X@?P]:V,^BK]H-W&8TC),R)<[7VRR,2J^7N Z?+_ .P#_P &HUO^R[H/
MC7P)\<?^"AWQ#\2^#/&FGRV>K> ? 4USX;TO4R8GCCGOU2ZE-V4#EEB^5,@!
MS*A9#^P%% 'Y;_\ !&G_ (-S_'__  2:_:)\0_%R+]OC5/$GAW6+=()O!^C>
M$H],CU81&0V[7TSS3N5B,KL(H3'N8C<[(#&U;_@I1_P;BZ]^T)^W1I/_  4K
M_8&_:9MOA#\5;;5[75=5CU'13=6%WJ-OM"7T>PYCD94598F22.;DL%+2;_U1
MHH _F*_X.S?@-^TO\([_ . 'BG]K?]J^Y^*7C3Q#I_B-;I['0(=(T31X8&TS
M9!86498J2TTAEGD=I)B(\[%C1%_??_@E#_RBV_9K_P"R ^#?_3)9U\B_\%IO
M^""/Q[_X+(?$_P +>)?%O[:/A?P7X=\"P7\'A71M/^&-Q=7(6[>%I7N;A]45
M97Q;P@;(XU&T\<U]I?L!?L\_%[]DS]E#P7^S-\7?BKH/C*3P%X=L?#^A:YH7
MAB;2O-TVSMH[>W$\4EW<[I@D8W.K*K<?(.<@'LU%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 45F^+_!WA'X@^&KWP7X]\*Z;K>C
MZC"8=0TG5[&.YMKJ,]4DBD!1UX'# BOY#_\ @MW\)O /P'_X+J_$7X"_"'P_
M'X>\&P>,/#S6OAK2F:"SMUO--TZYGCBB0A8XS)<2D(H"J&PH    /[ J*_$O
M_@X>_P""-W[*'[(7[ GB']NK]ANWUWX1^+_A]JFF2W<?A7Q=J$=MJUM=7]O8
ME#&\["*5'N4D62+82$96#94KW?\ P:6?\%1/VDOVY_@)\1_@A^U)XQO_ !5J
MGPGN-+DTCQIJ\IEO+NPOEN@+>ZF;F:2)[-R)7)=EEPQ.S- 'ZV?\))X=_M__
M (13^W[+^U/LWVC^S?M2?:/)SM\SR\[MF>-V,9J[7XYV'_!!7]JJ?_@X%_X>
M=V_[8WA>7P')XY/B6..+6+EM?:$Q;/[%\@1^5]GV_P"C;O.Q]G_@W?)7[$W-
MS;65M)>7EPD4,2%Y997"JB@9+$G@ #G- #Z*Y3P#\=_@?\5=3N=%^%_QE\*>
M)+RR7=>6F@>(K:\E@&<9=878J,\<@<T_XT?&GX4_L[?"W6_C7\;_ !YIWAGP
MKX<L7O-9UO59_+AMHE_5F)(544%G9E506(! .HHK\\O^")W_  5SU'_@JG\5
M_P!HGXGM=C2/ /ASQ5H^E?#+0]0,<<\5A]GN-]S+W,UPZB5ER1&"D8)V;F_0
M36-8TCP]I=QKFOZK;6-E:1&6ZO+R=8HH4 R6=V("@=R3B@"S16!\/OBK\+_B
MUI<NN?"KXD:!XFLH)?*FO/#^L07L4<F,[&>%F ;'8G-;=Y>6FGVDM_?W4<$$
M$;2333.%2-%&2S$\   DD]* )**Y7X?_ !U^"/Q9OKK2_A7\8_"OB:YLEW7M
MOX?\0VU[);C.,NL+L4&>.<<U^''_  >U_#WP9X7TGX%_&7PQX>M=-\4:QJ6M
MZ=K.N:?$(;G4+:*&S:&.=TP91&6?9NSL$C@8#&@#]\:*^+_^"-GQ@^&?PP_X
M(Z_LXZS\7?BEH7AZ._\ AU8QV]WXDUN&T6XEP3M5IG7>WL"37V8EY:2V@U".
MZC:!H_,6=7!0IC.[/3&.<T 2453M?$7A^]G6ULM=LYI7^['%=(S'OP >:R-$
M^,7PB\3>-+WX;^&_BGX<U#Q%IJL=1T"QURWEO;4*0"9(%<R)@D [@,9H Z.B
MBN1C_: ^ TOCP_"R+XV^$6\3B;RCX<7Q):F_$G]S[/YGF;O;;F@#KJ*POB9\
M,/AU\9_ >I_"[XM>!]+\2>'-9M_)U31-:LDN+:Z3<& >-P0<,JL#U5E##! -
M?S*_\&B=]J<?_!9+Q!H<NL7D]M:_#'7XXH[BY9P M[9*#R>N.] ']0]%4?$G
MB?PWX-T.Y\3^+_$-CI6FV<>^[U#4KM(((%_O/(Y"J/<FLWX>_%KX5_%S3IM8
M^%'Q,\/^)[2WD$=Q=>'M9@O8XG_NLT+L%/L: .@HH)"@LQP!U)KD/"G[07P%
M\>>*)O _@?XW>$-9UJW+"?1])\2VMQ=1[?O;HHY"XQ@YR.* .OHJ*\O['3H?
MM&H7L4$><>9-(%7/IDU7MO$?AZ\G6VM->LI9'.$CCND9F/L >: +M%5)?$&@
MP71L9M;M$G#!3"URH?)Z#&<YJW0 45^-?_!XE^SK\#] _8"TO]ICPQ\+M$TG
MX@-\5=-M+SQAI.G1VVH7UO+8WBO%<3QA7N%_<PD"0MM\I=N.<\3_ ,&9?[.W
MP1^(?[+GQ#_:-^(?PPT7Q!XVTGXJ+I^B^)-=T^.\NM+@@T^TGC%J\P8V[>9/
M(Q:/:S';DG:N #]RJ*HOXG\-QS&WD\0V*R*VUD:[0$'IC&>M96N_&/X1>%_&
M=C\./$OQ4\-Z=XAU/;_9N@WVN6\-[=Y.!Y4#N'DR00-H/2@#HZ**X7XG^,OV
M:/$MY)^SO\9_%?@:_N/$MN+>7P-XGO[.5]5B?I&;*<DSJV/N["#B@#NJ*_EG
M_P""6&@:=\,O^#LM_A!X)$UAX;\-_''XBZ3HND1W#F&UL[:UUR*"%5)/RHB(
MH_W17]2TTT5O$T\\JHB*6=W; 4#DDD]!0 ZBN:\!?&CX._%6YO;+X7_%CPUX
MDFTY@NH1:!KMO>-:G)&)!"[%#D$?-CI6U>:_H6GSFVO]:M() ,F.:Y56Q]":
M +=%41XG\-F(W \0V)C5@K/]K3 )R0,YZ\'\C5BRU"PU*(W&G7T-Q&&VEX)0
MX!],COR* )J*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "OY&O^#BO^TO^(A_XH_V-Y'VS
M_A)?"/V3[5N\OS?["TC;OV\[<XSCG%?URU_(9_P<'>-?"=]_P<'_ !4\6V/B
M"UGTVP\8>&H[R]@F$D<3VND:7%<*2N>8Y(I$8=0R,#R,4 ??_P#P<E^!O^"Z
M'B']F>S\3_M<Q?"[5/V?M#UZSN_&VC? 2[OK6\_UJI%-?/J<4C^6LC@(T8>)
M79'DCRJL/J;_ (-B/CA_P24^(/[+/B']G[]@GP-KOA_Q'9A+WXF^'OB++#=Z
MSJWF+Y(NWGC ANK7K$%C2-8RWS0QF;,G5_\ !??_ (*G_L*_#?\ X)=_%#X>
MV'[0?@KQ=XF^)?@FYT+PCX9\.>(;;4+FZ>]C\H7FR!W\N&)',WFMA28U5269
M0?SY_P"#-;]@#]I#1?VBO%'[?OC3P;J?A_X?MX$N?#WAZ\U&W>#_ (2&YN;J
MUF9[=6 ,MO$ML=TH^4R,BJ6*N% /!OAEX \%?"[_ (.ZK;P'\.O"UCHFB:?^
MT7<+I^DZ7:K!;6J,LCE(HT 6- 6.%4  <  "OHO_ (.[_P#@H3\7_&'[3O@_
M_@E?\+?&-[HWA4Z;8:CX[2PG:,ZQ?7LQ6WMI]I^>"&)4E"'Y6>?+ F)"/GW3
MO%/AP_\ !X&=;&N6OV,_M+26PNA.OEF8EH-F[.-WF_)C^]QUKU?_ (.Z/V/_
M (A_!7_@H/X!_P""C5EX<NKWP+XFM-*LM9U*"$LEAJ^GR'$$A'""6V6)H\_>
M,4P'W* /;O\ @Z6_9(^!W_!/7]DKX"?M-_L-> =.^%/C+P%\1;?PWHOB/P+:
MIIM\;233;N=?.F@"O.X>R!WR%B3++DGS'SZC^U5\7_ /_!6__@UUNOVU_CWX
M*MM1\8:#\/KZ^5EGEAALO$5E</83WJ0QNL>7,3R(K!@BSX&,G/&?\'DGQG\!
M?%']A?X$?#'X7^*+/Q%J7COXEP>(/"UGHDPN9=4L4TVYA2>!(\M(CO?PJI4'
M<7 &37KFB_L _&#]E+_@U+\6?LEZ]X6NKCQZOP?UG6==T6UB,D\-W=7$NI26
MNU<[I(8G$)"YRT1QG(H ^'_^#1S_ ()V_L5_MI?#;XN>.OVH_P!GW1_&6K^$
M?%FC#PW?:G+.KV(:&>1MGE2*#EXT/(/W:Z7_ (+"?\%"- _:J_X+\^ _^"?O
M[1?Q!_LC]F[X6>,=,_X371)FD^P:]>QVRW\[WT<8)G3>4M%C8$*%D90#(QJE
M_P &=W[9?[.G[.WPW^,OPV^)_P 1K2U\6^*/%_AY/"'@Z!Q)JOB"21+F 1V5
MOG=<%79?,*_+$A\R1D0%AXO_ ,%RO#/QB_X)3?\ !PWIO[?L/@^XO?#FN>+=
M*\<>&+@J5AU1(4@BU*P\W&U9-Z3(1]Y8[B)R/G&0#V7]MO\ ;3^#?[)O_!>#
MX/\ [6G_  2NNK>3P)XGT'2-)^,ND> ]"FMM+U-#J,]O<+/ L21^:+-H'1MO
MRO#&_7.>X_X.'_VV_%O[3?\ P5[^"/\ P1IB\6WVE?"V?QUX1M?BG86-X\!U
MRXU6_MOW,[(06ABM)HG1"<>9,S,"4C*_H[\*?^"[?["'[4=CX3\,?L7^/'^)
M?Q"\:RP)I'P[LK2XMKW3E8K]IN-3=H66PM[5"[RRMN#>7MA$S/&K?C!_P=C_
M +,OQQ_93_X*IZ#_ ,%&/!>FW2Z'XTCT6_T?Q'%"6AL-?TF**$6LC#[C^5:6
M\Z D;P9-N?+? !]F_P#!4[_@A-^V&_\ P5#^#G[:G_!(+P1X0\ :=I&GZ98^
M)6\/WEKHD6D7%K=2;KN6W38+FWELY(H7BB61G6W960AAGB?^#X?_ )(Y^SW_
M -C-X@_])[*OM+]FO_@Y,_X)W_M+?!;POKG@3Q-J^I_%?Q)!#:6WP0T;1+F?
M7)M991NLH24$#1;\G[4\BPK&"\C1[65?B/\ X/@M6LS\*/V=M)N+B*.^DUSQ
M#/\ 8_-!<((+!6;'<!F STR: /&?VJO^"8W[/:?\&NWA']O_ ,<W_B/Q/\6-
M+\+>&I] \1ZOX@N3!HVF7&JV]FNDVMFL@MHK9(;AB3Y?F/-NE9\M@?=__!H;
M\6O%WQ]_X)":GX#^+.IOK^G^#OB5JWA72[;5_P#2$&DFPL+H6K!\[H@U[,@0
MY 0A0-H KP[]L'Q1X<D_X,L/":1ZY:L;SP7X1LK4"=?WUS%X@M#)"O/+J(9B
M5'(\ML]#7H/_  91ZGI\O_!,WXC:-%>Q-=P?'6_FFMPXWI')HVD*CD=0&,<@
M![E&]#0!^6_[+/[-WAKQI_P=$>(/V8/ 7B75/A_X>;X^>.])MI? \PL;C3]*
MA_M8/9VCH ;57MHVM@\>'B23=&595(V_^"O_ ,$/AM_P2(_X+R>"6_81TV^\
M$6&E+X:\0Z?96^LW5R8)Y9FCN$\VXDDE>.98VWH[L&$TBGY6VUN?L%^)_#K_
M /!W[JGB%-;M387G[2'Q!2TO!.OE3&8:S'%M;.&WNZ*N/O%AC.13_P#@ZW\1
M:'_P_-TJ;^UK<KI7A#PRFI,)0?LS":64A_[I\MT?![,#WH _4?\ X.P?^"DG
MQ5_88_8A\/\ PD^ OBB[T#Q;\8=8NM-/B#3YFBN;#2;6)'O3!(I!CE=I[:(.
M.5260J0VUA\Y:3_P3A_95'_!I4_Q=F^"WAY?B ?AW)X^'CX:7$-9_M-;UKE)
M/MFWS0/( M]N['E\8R<UZU_P>)?L1_$3]IC]B'P3^U!\)]%GUI_@YK%]<Z]9
MV$9E=-%U"*!9[Q0N2RQ26ML6P/EC=Y"0L;&N=D_:A^$A_P"#-K^W8_'&F;A\
M)1X*-L+Q/-_M;[8+(VFS.[S<?O=F,^7^\^[\U 'IO_!IM_P4F^+W[<W[%_BG
MX/\ [0'BZ\\1^*_@_K%G8Q>(=2G,MU>Z1>12M9BXD;+2RQO;74?F,<LB1[LL
M&8_F9_P:,_\ *:GQ1_V3;Q%_Z765?H!_P9U_L5?$3]F7]B?Q]^U3\7M'FT%/
MB]JUA<:%;:DGDL^C:=%<>5?,&QLCEDN[DJ3C='&L@RKJ3^>G_!HUKVC)_P %
MI]99]3A4:G\.O$,>G[I /M#?:K27:G]X^6CM@=E)[4 >O?M_?M:>(?\ @JE_
MP<I?#_\ 8!^(M]->_!3X=?%NVT!_ TDK?8=6N;$F349[N+.V9I)8IK<9^["H
M"X+R%MC_ (.2]9F_X(^?\%,/@=^V'_P3YT;3/AKK.L>$9AXAT?PK8I8Z9K:6
M5V@\J[M8 D<R2Q3+$X(R5B0@AD5AQO[1W[-NN?\ !-O_ (.O_!'QP^+<8TSX
M?_$_XOGQ/X=\67Q\NRD&JETND>4_(C07ETZN&(*H8Y&PLBFNP_X.Z/#'BK]L
M+_@I9\ /V+OV==+/BCQZ_A*:,:%IC"22"6_O/W?G;<^2HCMVF9GP$B_>-A3F
M@#T+_@Z__P""D_QHU3]AC]G30_V?]>U3PWX%_:$\,S^)O$5W8W#1RWUF+33Y
M[?3GE3!\HK?EY$X$FR,'Y0P-'_@IW^P9^RE\//\ @U'^%?Q.\'?"#PW8>*-$
M\(>!_$D/B:STJ&._O+_51:"^9[A5\R19?MLK%68C$<?'[M<?1/\ P7QM/V"?
MV*?^"-'PO_92_;#^%4WQ!NM)TG2/"/PS33=0;3KFSU"PTU+=M46[6.1H(HHD
MRZB.3S/,2,QL&++YFG[.?_!/+XV_L9?#7]@#]IO_ (.1_AIXI^#_ (02SF@\
M-:)X@\-Z+J%^ELI^S6EQ>RW<TB01!]J1-&L@"KDEHU*@%C_@V[_X)T?L'_MA
M_P#!&WQ!>?$7]E+3K+5_B/)>^%O'.MMJ5]<_VQ]ADD^QZG;Q7<\L5G<Q&Y;$
MENL>)8V( &%'P)_P0BETC_@E;_P<$W'[*/[5'A+2+B_GU/4?A_9ZYJ6GHQT_
M4I9HWT^_M6<%HOM)BBB5E()CO^3C-?TM?L@?#_\ 9@^%'[-_A3X:_L:+X<'P
MVT73OLWA@^%=32]LFB#,6=9T=Q,[2%W>0LS.[,S$L2:_"K_@\J_8<U?X7_&W
MX=?\%._A/;3V#:X\/AWQ=J%AE'MM7M%,VFWF]>1(\$<D6[C;]AB Y:@#]+9/
MV-_V:?VK?^"W.M_M'ZO\%?#5\/@'X!L-+O-2ET6%CJ'B_4W-ZCS':1-+8Z<+
M5T9\LC:FC+@QJ1]Y5\Z?\$KO@U\3?A)^QEX=U[X_S>?\3_B)//XW^*%R;<1,
MVN:H1<2PE!P@MXC!9JHX5+1 .E?1= 'Y0?\ !Y+_ ,HD-,_[+#HW_I)J%<1_
MP9.?\H[_ (H_]EHG_P#31IU=7_P>9>(-#T__ ()3>']!OM6MXK[4?C!I1L;1
MY@)9Q'9:@TA1<Y8*",D<#<N>HKB/^#)?Q#H4_P"P?\6/"D.KVS:G:_%PW=S8
M+,IFC@ETNR2.5DSD*S0RJ&Q@F-@.AH _/3_@Z6^%O@[P)_P6^@LOA?X?T[PU
M-XA\.^']2OI]*TV*-7U&:>5'O'C4!9)6*(S$\N1EB22:]0_X.O\ _@F_^SU^
MPSI_P1^,OP=N/$UWXZ\8ZAK4?C_QMXD\47>H:CXDO+=+&2.^G>:1ECFW2RG$
M*QH RJ%"H@'#?\'6_B'0T_X+FZ3<'58-FE>#_#*ZDPE'^C,)Y92'_NGRW1L'
MLP/>OJW_ (/A=<T:X^'?[..FV^J6\EQ-JOB2YBACF#,T/DZ</, !Y7) ST-
M'V3XR_X*7?%7]G7_ (-I/#O_  4!U/6VU+XAM\%-"BL=5OP)7N-;O!;V$=[(
M&R)&$LOVEP>&V,#UKX=_X-9_^"=/[,__  4.^ /QM_:__;M^'%M\5?%7B+X@
MMH"ZSXQGENKNU,=G!=SW4,Y;S(KF1[V/,ZL)%\E=K+EL_16N?LP>+?VZ?^#1
M?PE\'/@M:G6/$D?P?T;4]$L;']X]W=:7=Q7$UHBC[TKK;S0J@Y\QE'M7SA_P
M:)?\%)/V2_V7/V8/C'^SM^U!\=O#/P^O=,\8?\)99/XNU:*Q6^MY;*&UN$@\
MTCS9HFLH\PKF0^<NU6YP ?+G_!);P'_PJS_@[#A^&(\5:MKO_".?&OXAZ7_;
M>O79N+[4/L]GK<7VBYE/,DTFS>[G[S,Q[U]>_P#!U=_P4-\9ZS^V)\+_ /@E
M7IOQ+O?"GPUU5=)U+XOW^FW#PO?PWM\8A;S,GS-!#;QF<H,J[3*65C$N/B7_
M ()U_M)?";3/^#I:7]I?XA>(E\&>%-9^.WCN^:[\:XTQM.74(]72WBNQ.5^S
M2^9<11LCD;7.T\BO>/\ @\!_9S^+OP2_X*!?#O\ X*'^![":3PYXAT#3K:TU
MZ&(R0V6NZ;-)(D3L.%WP&"2/)&_RYL9\LT =!_P7&_:4_97_ &>/CW^S9^UK
M_P $3;S1=/\ %_@!-0TSQ);_  Y\.SVL%QI<)LFL[2]C2%!/"P^UQ,&W%U<@
MGY5Q]X?\%\?^"7OP\_X*N?\ !.A/VJ_@U\++:#XOZ#X4MO%7A6^M[!5U'5[
MVRSS:1.ZJ&FS"S&)6R5FC15VB23/>?LY_P#!R!_P3X_:1^ 7AOQ;X"\776J?
M%CQ%:0VEG\#=+L)Y-=N=<=0/L$(*>68C)G%VS"%8_P!Y(R;6"_1_[:W[=?PZ
M_80_9Q3XP_&MM/3Q)J*P:=X7\%6FL)YNO:]/M2'3K6254+J9G :8HHCC#2N%
M"D4 ?SZ_\$ _&?@3_@H3^SA?_P#!#+QU\'O"\,.N^-XO&.O^/I;&TCOU\-V;
M)-=6UN[#S9-2:;9;PS#<T-M?W3@@0!6_I/\ @=\ ?@C^S/\ #NS^$O[/GPIT
M'P;X;L /L^C>'=,CM8-VU4,C! /,D(1=TC9=L L2>:_EI_X*4_LX_M,?\$ O
M^"J_PW_:]T+Q)H]]J_B25/',?]@6GV+31?R2L-:T6*(<I9[II(DXS]FN8Q]]
M6Q_4'^RE^T]\(_VS/V>/"?[37P-\11ZEX:\7:1%?6,BNID@9AB2WE )V312!
MHY$ZJZ,.U 'H5%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% &=XL\(^$_'OAN]\&^.O#&G:
MUH^I0&#4=*U:RCN;:ZB/5)(I 5=3W# BO(3_ ,$R_P#@FZQ+-_P3Z^"!)/)/
MPHT?_P"1J]OHH \?\-?\$]/V!/!FK1:_X/\ V'?@_I-]"P:&]TWX9Z5!-&1T
M*NEN&!^AKUB_TG2M5TJ;0M4TRWN;&YMV@N+.>%7BEB92K1LA&&4J2"I&"#BK
M%% 'B(_X)F_\$WQ)YH_X)^?!'=G.[_A5&CYSZ_\ 'M7J'BOX6_#+QW\/Y_A/
MXX^'6A:SX6NK);.Y\-:KI$-QI\MNH 6%K>13&T8"KA2N!@<<5O44 >%_!+_@
MF-_P3P_9O\=Q_%#X%?L6?#;POXC@+?8]<TKPG;)=6F[.1!)L+0 Y.1&5!S7N
ME%% 'F7PV_8L_8\^#7Q*OOC+\(OV5/ASX7\7:GYG]H>)_#W@JQL]0N-_^LW7
M$,2R'>>6Y^8\G)K<^.7[/'P'_:;\#R?#3]HGX-^&?''A^242G2/%6BPWT"R@
M$+(J3*P1QDX=<,,\$5V-% 'EW[-O[$O[(7['EG>V7[+?[-?@OP$-2Q_:4_AC
MP_!:S7@!RJRRHOF2 'H&8@9X KL?BA\*/A?\;O!%]\,_C+\.=#\6>'-30)J.
M@^(]*AO;.Y4'(#PS*R-@@$9'! (KH** /(/V<_\ @G]^Q!^R)K%YXD_9C_91
M\!>!M3OT,=YJOASPS;V]U+&3DQF95\SR\C.P-MSVK4^*G[%W['7QT\5'QU\;
MOV3OAIXQUQH$@;6?%7@33]1NS$F=D?G7$+OM7)P,X&>*]+HH \BG_P""?O[!
MESX0MOA]<_L2_"*30+/4);^TT-_AMI9LX+N5(XY;A(3!L65TBB5G W,L: DA
M1C2^'/[%_P"QW\'FU5_A)^R=\-/"QUW3)--UL^'/ FGV)U"R?[]M/Y,*^;"V
M!F-\J<<BO2Z* /$[3_@FI_P3FL+J*^L?V O@G#/#(LD,T7PJTA7C<'(92+?(
M((R"*N>*?^">?[ ?CGQ+J'C3QM^PY\'M8UC5KR2[U35M5^&>E7%S>7$C%Y)I
M99+<O)(S$LS,22223FO8** ,GP=X"\"_#SP?9_#WP!X+TG0M TZV^SZ?H>CZ
M=%:V=M#S^[CAC4(B<GY0 .37AO\ PZ0_X)??\+!_X6E_P[_^$?\ ;GVK[5]J
M_P"$$LMGGYSYWE>7Y?F9YW[=V><YYKZ(HH QO''PX^'GQ.\%W?PW^)7@/1?$
M/AW4(5AO]!US2X;NRN8U8,J202JT;J&52 00"H/:O-?#W_!.O_@GWX2UZS\4
M^%/V%?@WIFIZ==)<Z?J.G_#'289[69&#))'(EN&1U8 A@000"*]CHH X_P"-
M_P"SW\"/VE_!,GPV_:'^#GAGQQH$DHE.C^*M$@O[=9 "!(J3*P5QDX<889X(
MKE/V<_V"?V*_V1-0N]9_9D_9:\#>"-0OXO*O=4\/>'((+R>/(/EO<!?-9,@'
M86V@CI7K=% 'Y$?\':&K_#OQ9\,/@/\ LU?&#X96VG^&?'OQ,2"_^.VJ"X:T
M^'(5[>&2<I RB5Y8+B=_+E=8V6U8X9D#1?/=W_P:B?\ !)=/ 8\;1?\ !71X
MM/%H)SX@FUO038>7CF7=Y@79WSYF,=Z_>_Q#X<\/>+M%N/#?BO0K+4].O(_+
MN[#4+5)H9T_NNC@JP]B*\IT[_@GA_P $_P#1];7Q-I/[#/P=M=227S4U"V^&
M6E).KYSN$BVX8'/.<YH _%S_ ((FZY\;/^"//[&?[:7[8/A>+5?BS\$O".L6
M<7PINH89=/L_&ES;WDUI-K%HCB3RK7RYK9IITWJR1$*S^1D?67P%_P""A7PM
M_P"#A#]G#X/? ^7X=:-;ZSK'CN'Q+\;?",%XNI1^&-&T"_\ M,1DD**T+:C=
M16$$:.%=H+B\*EEA9C^I5WHNC7^C2^';[2;:;3YK9K::QE@5H9(2NTQLA&TH
M5.TJ1C'%<W\(_@%\"?@!I5UH7P'^"OA+P38WUQY][9>$?#EKIL5Q+C'F.EO&
M@=L<;B": .MHHHH \N^)'[#W[%?QD\53^.OB]^R!\+O%6MW6/M6L^)/A_IM]
M=384*-TL\+.V H')Z #M4'@/]@S]AKX6>*;3QQ\,?V,?A/X<UJPE$ECK&@_#
MK3+.ZMW!R&CEB@5T(]00:]8HH \=\2?\$[O^"?WC'Q!?>+?%_P"PO\'-5U74
M[N2ZU+4]2^&6E3W%W/(Q9Y99'MRTCLQ+%F)))))J7Q+_ ,$_OV#?&?V#_A,/
MV)?A%JW]E:;%I^E_VE\-M+G^QV<>?+MXM\!\N)<G:BX5<G &:]=HH Y3X1?
MGX(?L_>'I_"7P&^#?A3P1I5S=FZN=,\(^';;3;>6<JJF5H[=$5G*JHW$9PH&
M>!7GFJ?\$UO^"?6M_' ?M*:Q^Q;\,KGQX+T7I\4S>#;-KMKL-N%TS&/YIPV"
M)B#(" 0V17MU% 'F'@[]BC]COX?>/M6^*W@K]ECX>Z9XJUW6+C5=:\3VG@^S
M74;Z]GE:::XEN?+\UW:1V8DL>6-=C\2_A;\,_C1X)OOAK\8/A[HGBKP[JD?E
MZEH7B+2H;VSNE!R!)#,K(X! (R." :WJ* /&OV=?^">'["O[(_B*Z\8_LS_L
MD^ /!.L7D;17&L>'_#-O!=M$>L0F"^8L9P,H&"G'2MKXJ?L8?L>?'7Q0?''Q
MN_9/^&GC'6C L)UCQ5X$T_4;HQKPJ>;<0N^T=AG KTNB@#R3Q=^P'^PC\0-1
MAUCQY^Q3\)-;N[>Q@LK>ZU?X<:7<R16T,:Q0PJTD!*QQQJJ(@X55    %=5\
M'OV>/@!^SSIMYHWP!^!G@[P-9ZC,LVH6G@_PS::9'<R*,*\BVT:!V ) )R0*
M[&B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HJO;ZOI-WJ-QI%KJ=O+=V:HUW:QSJTD <$H74'*AMK8SUP<=*L4 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M5\U_\%A/CA^T#^S;_P $R_C'\<?V6[*27QUX=\)-<:+-#:"=[)3-$EQ>*A!#
M-;V[S7 W KF'+ C(KZ4K&\=^-O!G@#08]:\>ZO!9:?=ZI8:4DMRA9)+J^NX;
M*UAP >9+BXAB&>,R#) R: /RY_9(^"OP#_;J^&WQ,^-__!/S]I+QX/&*^ /"
MU[X1^(=M\4=4?5#X@%G>22VNKF6Y99R\Z"*XM[A&1%<F-4 0C[X_:S_8_3]L
M=+#P'\1/C+XPT'P#;6\DFJ^&_ NOSZ/<ZY=L0$^U7MLRSBVB0,1!&R"1Y-TA
M81HM?EG^W7^Q[XZ_X);_ +0OQS_X*7_\$J?&=G\-XOAEI_AW6?B%\'C&W_"-
M>+["\:?[4I@W!;>12H9%C"A0S^5Y3GY_U[T1] _:=_9ZTG4_$FF:WI.G>-O#
M%G?75C8:[=Z;?6J7$,<WDBZLY(IXG7=M8QNI.".A(H ^,_\ @C%\(/VA/V<_
MVD?VH?V=9OC'XN\=_ 7P7XTTFR^$&M^.-7DU"Z@O7LC/J]A!<R?-+#:S2PV[
M?PK+$X&)//%8_P"P=XDL?^"Q7QO_ &C/CU\;-=\07?PZ\!_$ZZ^&WPD\,Z3X
MEO=-M;"/3X8WN]8'V26(O>W#W$3I<,3) BJD93YMW._\$X?V4?$__!-;_@M-
M\2OV)O@#\0O$FJ_ ;Q7\#X?B)'X:\0:Q+?CPQKDNL_8EB264E@9ECO'W,=\J
MJ-[.T&XW_P#@V9\):A\$_A)^TK^RYXPA:W\3> _VJ/$<>IVL@P[V\]K8_9KG
M!Y*2K"[(W1E4$9S0!Q_PQ_X+,?%3]G+_ ()1_M/>+/C7KH\5?%3]E/XAZM\.
M;;6M54,_B*<7JV6CZC<JN-[,TJ^=C!D%K(^07)&[^U5\-_C!^PE_P2:T3_@I
M!X!^*OBO5OCWX#T?0?%_CW7M=\3WD\/C$7$UM_:VF7MLTA@%D8[F;R8DC7[-
MY$/D^65)/PK\8_V<OB+^T#_P2]_X*;?M)>!-+N+K2/$'[4]UK/AX1(2-0TS1
M=9,EW=IC[T:P7,CEAQFV<=5./TC_ ."S_P 8/"NM_P#!NYX[^)F@W27%AXP^
M%>@)H(M_G-T=2GL([=8P.7+>>I ';GM0!]R?!CXI^&_CG\'O"GQL\&LYT?QC
MX:L-<THR8W&VN[=)XLXXSLD6NEKR;]@KX4>)/@/^PS\&/@?XQA:/5_!OPH\.
MZ'JL;GE+FTTVW@E7\'C85ZS0 4444 %%>-?LI>-/$/QZ^'>H>-/B!?%[ZW\3
MZAI\9LLPIY,,NU!M7C..I[UZ;_P@^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_
M^!;4?\(/I'_/S>_^!;4 ;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &
MQ16/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U &Q16/\ \(/I'_/S>_\ @6U'
M_"#Z1_S\WO\ X%M0!L45C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_
M /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4?\(/
MI'_/S>_^!;4 ;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q16/_P (
M/I'_ #\WO_@6U'_"#Z1_S\WO_@6U &Q16/\ \(/I'_/S>_\ @6U'_"#Z1_S\
MWO\ X%M0!L45C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_ /"#Z1_S
M\WO_ (%M1_P@^D?\_-[_ .!;4 ;%%<MK'ANQL+_3[:"YNMMS<%)-UTV<8SQS
M6C_P@^D?\_-[_P"!;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q
M16/_ ,(/I'_/S>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\
M"#Z1_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\
M(/I'_/S>_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?
M\_-[_P"!;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/
MI'_/S>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _
M-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'_/S>
M_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!
M;4 ;%%8__"#Z1_S\WO\ X%M6=X;\-V.K6#W-U<W09;B1!LNF P#@=Z .IHK'
M_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VH V**Q_^$'TC_GYO?\ P+:C_A!]
M(_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VH V**Q_^$'T
MC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W
M_P "VH V**Q_^$'TC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;
MW_P+:C_A!](_Y^;W_P "VH V**Q_^$'TC_GYO?\ P+:C_A!](_Y^;W_P+:@#
M8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VH V**Q_^$'TC_GYO?\ P+:C
M_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VH V**Q_
M^$'TC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:LZV\-V,
MOB2YTEKFZ\J*W1U(NFSDGGO0!U-%8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!
M;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/I'_/S>_^
M!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M0!
ML45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'_/S>_P#@6U'_
M  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!;4 ;%%8_
M_"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/I'_/S>_^!;4?\(/I
M'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M0!L45C_P#"
M#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'_/S>_P#@6U'_  @^D?\
M/S>_^!;4 ;%%8_\ P@^D?\_-[_X%M5+Q!X6T_3-%N=0MKF[\R*,LNZZ8C/YT
M =+16':>#-*GM8IGN;S+QJQQ=MU(J3_A!](_Y^;W_P "VH V**Q_^$'TC_GY
MO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "
MVH V**Q_^$'TC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+
M:C_A!](_Y^;W_P "VH V**Q_^$'TC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'
M_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VH V**Q_^$'TC_GYO?\ P+:C_A!]
M(_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VH V**Q_^$'T
MC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W
M_P "VH V**Q_^$'TC_GYO?\ P+:C_A!](_Y^;W_P+:@#8HK'_P"$'TC_ )^;
MW_P+:C_A!](_Y^;W_P "VH V**P9+)/#.IV,>G32L+R?RYA/*7^4#/&>E;U
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7"_M*?LY?"G
M]K3X*ZU^S_\ &O2;V\\-ZZ;9[R/3=6N+"XCEMKF*ZMYHKBV=)8I(YX(9%96'
M,8SD9![JB@#Y!M/^"1G@GQ=\1]?O_P!I/]H'XA?%/P1J3:'-;^"/&.M6[6M[
M-IOFM#_:9M;:"34HXY&1TBN'D1F7,JRD*1Z%^TQ_P3Z\$_M*?&?PS\?D_:#^
M+WP_\2^%M+?3K2;X;>/)-.M;NU:0R&.YM'26WF^9CR8\D;0Q(1-OOE% ' _
MW]FSX8?L_+K.H>#+;4;W6_$MU%<^*?%?B'5);_5=9FC3RXC<7,Q+%(TRL<*[
M8HE)$:("0>.^)_[!GPM\>_%W7/COX-\>^-/AYXK\6Z+;Z1XWU;X>ZW'8OXCL
MH PMTNA)%*!+$KND=U"(KF-'*K,%  ]OHH XSX2?L\_!/X%?!/3/V<?A3\-=
M+TCP/I&EMIUEX;C@\RW^S/N\Q)!)N,QD+NTC2%FD9W9RQ8D^0>"O^"6/[-/@
MU?"7AB75_%^M>!?A[K:ZQ\/?AAK^OBYT'P[>HS-!+#%Y8FG$!=C!%=33Q6_R
MF)(RB%?I*B@ HHHH **** /!?^"=7_)#]7_['O6/_1]>]5X+_P $ZO\ DA^K
M_P#8]ZQ_Z/KWJ@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@#'\2_\A?1_^OT_^@FMBL?Q+_R%]'_Z_3_Z":V* "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "L?P/\ \@B7_K]F_P#0JV*Q_ __ "")?^OV;_T*@#8HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K'LO^1WO?^O*+
M^9K8K'LO^1WO?^O*+^9H V**** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH *S?&/_ "+%[_UP-:59OC'_ )%B]_ZX&@"Y
MIW_(/@_ZXK_(5-4.G?\ (/@_ZXK_ "%34 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 8_B7_D+Z/_ -?I_P#036Q6
M/XE_Y"^C_P#7Z?\ T$UL4 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 >"_P#!.K_DA^K_ /8]
MZQ_Z/KWJO!?^"=7_ "0_5_\ L>]8_P#1]>]4 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 8_B7_D+Z/\ ]?I_]!-;
M%8_B7_D+Z/\ ]?I_]!-;% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !6/X'_ .01+_U^S?\ H5;%8_@?_D$2_P#7
M[-_Z%0!L4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 5CV7_([WO_7E%_,UL5CV7_([WO\ UY1?S- &Q1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6;XQ_Y%
MB]_ZX&M*LWQC_P BQ>_]<#0!<T[_ )!\'_7%?Y"IJAT[_D'P?]<5_D*FH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH Q_$O\ R%]'_P"OT_\ H)K8K'\2_P#(7T?_ *_3_P"@FMB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHJ.ZNK6QM9+V]N8X888R\T
MTKA510,EB3P !R2: )**^>_"G_!5;_@GOXS^)=U\+=&_:M\&B]AEM8;'4;G7
M((M.U6:<2%(;.[9Q#=2?NF&V-B2>F><>E?M#?M._L\_LE_#U_BM^TO\ &;P[
MX'\/).L"ZIXCU..VCEF8$K#'N.99"%8A$!8A2<8!H [JBO/?V;OVLOV:/VP?
M!$GQ'_9>^.7AKQUHL%Q]GNK[PYJD=P+:;&?*F53NA?!!VN%)!!Q@@TGQ_P#V
MMOV6_P!E&RTS4OVG/VB?!7P^M]:EEBTB;QEXEMM.6]>,*9%B,[KYA4.A;;G&
MX9ZB@#T.BN0^"/[0/P,_:6\$_P#"ROV>?B_X;\;^'C=R6HUSPKK,-_:&=,;X
MQ+"S*67<N1G(R*YOPA^V[^R-X^^)P^#?@O\ :'\+:EXCDO;BRM=/M-41A=W=
MN";BV@E_U=Q/$%;S(8V:2/8V]5VG !ZG1110 4444 >"_P#!.K_DA^K_ /8]
MZQ_Z/KWJO!?^"=7_ "0_5_\ L>]8_P#1]>]4 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 8_B7_D+Z/\ ]?I_]!-;
M%8_B7_D+Z/\ ]?I_]!-;% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !6/X'_ .01+_U^S?\ H5;%8_@?_D$2_P#7
M[-_Z%0!L4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 5CV7_([WO_7E%_,UL5CV7_([WO\ UY1?S- &Q1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6;XQ_Y%
MB]_ZX&M*LWQC_P BQ>_]<#0!<T[_ )!\'_7%?Y"IJAT[_D'P?]<5_D*FH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH Q_$O\ R%]'_P"OT_\ H)K8K'\2_P#(7T?_ *_3_P"@FMB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ KYM_P""P'[//QQ_:N_X)H?&
M']GK]F[4S;>-/$_A-K?1D%V(/MNV:*6:R\PD*OVB&.6WRQ"_OOF(7)KZ2KS3
M]KO]J/X??L9? F^_:(^*\R0>&M(UO1;/6[Z6?RX["VO]6M-/>\D;:?W< NO/
M88Y6)AD9R #\Y/\ @F_^U1^S/_P57TSXT_L0_'_P!'\,/B#J7PZ\/^&=?^$?
MB>Q2VO=-O--M+J&6ZT^WEVETMI3!-&  \6U"RJ &/Z+_ !'_ &0?@9\9_C;I
MGQO^-'@;3/%]WX>T%M-\*Z7XDTZ*\L]%>65GN[N"*565;B=1;QM)C<J6RJI4
M/(&_+;_@N#\%_P!F3XSGXL_M;> O&D=K\;O"UMX%F_9W\8> ]6W:OJVKSR7"
MQ6%D+=BUZ)>"%0,8]OF A5?/V9^V3_P5:^%O[!'PH^'GPO\ VBOC1X)\/?&O
MQQX>M%DM_$%[C3]'G\A1>:K>+"=_V2.42B.),-<R!8HRB^9-" >0?L9_LH^#
M?@E_P</_ !X\4?LF^%[7PS\-(_@;HT/Q,T/0H!;Z8/&-Y>K<6RI @$:2BPA:
M=@@^4WC,0//R?-O^"G/Q+_:!^#7[;'C']I[]M_\ X(FZ7\?_ -F_0-'L=(\+
M^([B72->N?"VGP[YM0U2/2IEG,;3RR9DDD$(\FTM@TJ;&!^GO^"??[?'_!+N
M\\2:/^R5^Q[^TW;?%+QSXMU#4->\5:MI5O)<7FI7IB:>^UK4Y_+2*(.RQQ*H
MP$WV\$4:QHJIZGHG_!4[_@F[XSA\7Z=:_MB> 3/X,UBZT7Q7H^IZPEM>6UY#
M(T,D'V2X"33DR*T:>6CK*PVQESQ0!\H_\%*OVVOV>_@1_P &[GBK]I;_ ()A
M6OA_PQX0\6:!;Z=X!_X0?18M)M]-;5-06VO'CMX$06MS'YMX6PH=+A"3\P)J
MW_P5$_9XT+X$?\&ZH\*_#!!H&K_!3P)X7\0>"-8TX".XTK5M,FLY1>1.!\LS
M_OPS]6\^0G)8UYSX[_X)*?$KQW_P;R_%W]E3X?\ @"]T;7?%GC'7/B%\-O -
MS 8KG2;(ZW_:6FZ.8C_JKA[&%(S$V/+FN2C8*$UU_P#P4<_:?T;]L'_@@IHG
M@+X#W4.N_$;X_P"@>'_"7A+P9:S*;Z369+BU&I6LD7WHC9I%>&X9@%A\AMY4
M<T ??'['_P :;K]I']DOX7?M#WUK'!/X\^'>B>(IX(AA8GO;"&Y9 .P!D(Q[
M5Z+7#_LQ_!FS_9Q_9M^'O[/6GWHN;?P'X'TGP[!<JN!*EE9Q6P?!Z9$6?QKN
M* "BBB@#P7_@G5_R0_5_^Q[UC_T?7O5?.O\ P3^\-V&K_!?5KJYFN%8>.-77
M$4Y48\_T'UKW+_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?
MF]_\"VH V**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^
M;W_P+:C_ (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\
MP+:@#8HK'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_
M  +:C_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH
MV**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_
M (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK
M'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!
M](_Y^;W_ ,"VH /$O_(7T?\ Z_3_ .@FMBN4USPKIUKJ.FPQSW)$]R5<M<,2
M!M[>E:?_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!
M;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/I'_/S>_^
M!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M0!
ML45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'_/S>_P#@6U'_
M  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!;4 ;%%8_
M_"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/I'_/S>_^!;4?\(/I
M'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M0!L45C_P#"
M#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'_/S>_P#@6U'_  @^D?\
M/S>_^!;4 ;%8_@?_ )!$O_7[-_Z%1_P@^D?\_-[_ .!;5F>%?"NG:AITDTT]
MR"+F10$N&48#4 =716/_ ,(/I'_/S>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@
M^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S
M\WO_ (%M0!L45C_\(/I'_/S>_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D
M?\_-[_X%M1_P@^D?\_-[_P"!;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\W
MO_@6U &Q16/_ ,(/I'_/S>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_
M .!;4?\ "#Z1_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M
M0!L45C_\(/I'_/S>_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%
MM1_P@^D?\_-[_P"!;4 ;%>=?M9?'[_AE[]G_ %_XZ?\ ")_VY_8?V7_B5_;_
M +-Y_G7<-O\ ZWRY-N/-W?=.=N.,Y'6_\(/I'_/S>_\ @6U?/7_!57PKIVF_
ML$^/+V">Y9T_LO DN&8<ZI:#H?K7N\+8+#9CQ-@<)B(\U.I6I0DKM7C*<4U=
M--73>J:?9G@<5XW%9;PMC\9AI<M2G1JSB[)VE&$G%V::=FD[--=T>#?\/^/^
MK3O_ "^__N&J<'_!>+R=;GUG_AE;/G0K'Y?_  G/3'?/V&OSUHK^S?\ B#?A
MO_T _P#E6M_\L/XE_P"(U>)O_0?_ .4J/_RL_1;_ (?\?]6G?^7W_P#<-?:/
M[)OQ^_X:A_9_T#XZ?\(G_8?]N?:O^)7]O^T^1Y-W-;_ZWRX]V?*W?=&-V.<9
M/X,5^Q__  2J\*Z=J7[!/@.]GGN5=_[4R([AE'&J78Z#Z5^3^,7 '"7"O#-'
M%Y7AO9U)5HP;YZDO=<*C:M.4EO%:VOION?KO@OXA\8<6\4UL'FN)]I3C1E-+
MDIQ]Y3II.\(1>TFK7MKML?3M%8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5_
M-I_3AL45C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_ /"#Z1_S\WO_
M (%M1_P@^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;4
M;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q16/_P (/I'_ #\WO_@6
MU'_"#Z1_S\WO_@6U &Q16/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M0!L45
MC_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_ /"#Z1_S\WO_ (%M1_P@
M^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;4 ;%%8_P#P
M@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q6;XQ_Y%B]_ZX&H?^$'TC_GYO?\
MP+:J/B7PEIECH-U=PW%T6CB) >Y8C\10!T&G?\@^#_KBO\A4U85EX+TJ6SBE
M:YO,M$I.+IL=*E_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_ (0?2/\
MGYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK'_X0?2/^
M?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!](_Y^;W_
M ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH V**Q_P#A!](_Y^;W
M_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJ
M -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK'_X0?2/^?F]_\"VH
M_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!](_Y^;W_ ,"VH V*
M*Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH V**\A_:R^(^D?LO?L_Z_\=/^
M$<O=<_L/[+_Q*_[::V\_SKN&W_UNR3;CS=WW3G;CC.1\7_\ #\#2/^C5[W_P
MXS?_ "#7V/#W '%O%6"EB\KPWM*<9.#?/3C[R2;5IRB]I+6UM=]SXOB/Q#X/
MX2QT<'FN)]G4E%32Y*DO=;:3O"$EO%JU[Z;;'Z+>)?\ D+Z/_P!?I_\ 036Q
M7YH)_P %Q+.WO;:]M?V6YQY$V]EF\?%]W!&!FQXZUL_\/^/^K3O_ "^__N&O
M=_X@WXD?] /_ )5H_P#RP\#_ (C5X9?]!_\ Y2K?_*S]%J*\Z_9-^/W_  U#
M^S_H'QT_X1/^P_[<^U?\2O[?]I\CR;N:W_UOEQ[L^5N^Z,;L<XR?1:_.\=@L
M3EV-JX3$1Y:E.4H25T[2BVFKIM.S3U3:[,_2<#C<+F6!I8S#2YJ=2,9Q=FKQ
MDDXNS2:NFG9I/N@HHHKE.H**** "BBB@ HHHH **** "BBB@ HHHH **** "
MHK^PL=4LIM-U.RBN;:XC:.>WGC#I(A&"K*>""."#UJ6B@#RGX5_L._LE?!#X
MN:U\<?A+^SYX0\/>)==@@BN]1T?PW:6SQK$KK^Z,42F,N)#O(/SX7.<"NK\8
M? ?X'?$+6#XB\?\ P:\*:YJ!B6,WVL>';:YF*+]U=\B%L#)P,X&:ZNB@#E_!
M?P/^"WPVU5]>^'?P@\+Z!?20&"2]T7P_;6LK1$JQ0O$BDJ2JDC.,J#V%5K/]
MG;]G[3_B3-\9;#X%^#H/&%PY>?Q7#X8M%U*1B,%FNA'YI..,ENE=C10 5S&A
M?!3X->%_'VH?%;PU\)/#&G>*-739JOB2QT&WAO[U<@XEN$022#('#,>E=/10
M 4444 %%%% '@O\ P3J_Y(?J_P#V/>L?^CZ]ZKP7_@G5_P D/U?_ +'O6/\
MT?7O5 !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% &/XE_Y"^C_ /7Z?_036Q6/XE_Y"^C_ /7Z?_036Q0 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5C^!
M_P#D$2_]?LW_ *%6Q6/X'_Y!$O\ U^S?^A4 ;%%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%4]=\0Z!X6TR36O$VN6>G6<0S+=W]RD,2?
M5G( _.O%/&G_  4D_9'\+:F?#OA_XAS>,-7)(ATCP1ILNJ2S$=E>(&(_]]UZ
M67Y-F^;2:P5"=2V_+%M+U:5DO-GEYCG>3Y1%/&XB%*^W-))OT3=V_)7/=Z*^
M;_\ AIK]M7XI?)\#?V*)]"M)/]5K?Q2UE+'9Z;[*+,WY-1_PS3^VU\4_G^.'
M[:DGA^TD_P!;HGPMT5;+9GKLO9LS>W*FO6_U8^K:YABZ-'RY_:3_ / :*J6?
ME-Q\['D?ZT_6M,NP=:OY\GLH>O-6=.Z\X*7E<]Y\9?$'P%\.=+.M_$'QMI.A
M68SF[UC48K:/C_:D8"OBS_@I/^W7^S3\5_V5/&7P=^%?C>;Q)JUV=/\ ,GTC
M2YY+.U$>H6TI:6X*", B,J"I;+%1WKW+P9_P39_9)\,:F/$7B3P#<>,M8./-
MU?QSJ<NJ2RX_O)*?*/\ WQ7/_P#!47PWX=\*?\$Z_'>B>%M!LM-LHO[*\JTT
M^U2&)/\ B:V?1$  _*OHN$%PGAN+,OC2=:M4=>DE)\E*"?M(V?+^]E))ZVYH
M-^1\WQD^+L5PAF,JRHT*:H5FXKGJS:]G*ZYOW48-K2_+-+S/QKHHHK^[C^ @
MK]H/^"3,B/\ L > E1P2IU4, >A_M6[.#^!'YU^+]?IA_P $_P#]CO6?$?[(
MGA#X[? +XY>(/ 'C741?G498)/M>EZH8M0N8H_M-G*=C$1QH@9<8 SM)YK\:
M\<<-@<7PG0IXJO[%>WC:3BY1YO9U+*7+>2C:_O*,FG9<MG=?M?@/BL?A.+Z]
M3"T/;-4)<T5)1ER^TI7<>:T7*]O=E*":N^:Z2?WY17S.G[8'Q\_9V<:9^VQ\
M"Y4TJ([3\2/A_')?:65_YZ7$&/.MAZD@Y)^5<5[O\,_BU\,_C+X;3Q=\*_'.
MF:]ISX'VG3;I9 C$9VN!S&WJK $=Q7\C9EP_FF64E7J14J3VJ0:G3?ESQND_
M[KM)=4C^Q<LXBRK-*KH4YN-9:NG-.%1>?)*S:_O*\7T;.AHHHKQ3W HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K-\8_\BQ>_]<#6E6;X
MQ_Y%B]_ZX&@"YIW_ "#X/^N*_P A4U0Z=_R#X/\ KBO\A4U !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?.G_!63_E']X_
M_P"X5_Z=;.OQ>K]CO^"NWC3PAH_[$'B[PCJWBC3[;5=7.G#2],GO$6XN]FI6
MLC^7&3N?:B.QP#@*2:_'&O[&^C_3G#@NLY)J]>;7FO9TE==U=-?(_BWZ1-2G
M/C>@HM.V'@GY/VE5V?9V:?HT%%%%?N1^"G[0_P#!)O\ Y1_> /\ N*_^G6\K
MZ+KYT_X)-_\ */[P!_W%?_3K>5]%U_G=QM_R6>9?]A%;_P!.2/\ 2+@7_DB<
MK_[!Z'_IJ(4445\P?5!1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110!X+_P3J_Y(?J__8]ZQ_Z/KWJO!?\ @G5_
MR0_5_P#L>]8_]'U[U0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110!C^)?^0OH__7Z?_036Q6/XE_Y"^C_]?I_]!-;%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !6/X'_Y!$O_ %^S?^A5L5C^!_\ D$2_]?LW_H5 &Q1110 4444 %%%%
M !1110 4444 %%!(4%F. .I->6?%']MS]D_X-M)!X^^.V@07460^GV5W]LNE
M/H8;<.X/U KLP67X_,JWLL)2E4EVC%R?W)-G%CLQR_+*/M<96C2CWG)17WMI
M'J=%?.'_  WC\0?B+^Y_9H_8T\?>*E?B'5_$$4>AZ=(#_&DUP27 ZXV@]J3_
M (0O_@IA\6>?%'Q<\"?"VPD_Y=O"VCOJ]^J=U>2Y(B#=MR=.M>Y_JGC</KCZ
MU+#KM.:<EZTZ?/47S@CP?];L#B-,OHU<2^].FU!^E2IR4G\IL^C+R\M-/M9+
MV_NHX(8E+2S3.%5 .Y)X KQSXC_\%"/V/_AE='2M5^->F:GJ);9'I?AH/J<\
MDG]S%L'"M[,5KF[3_@FG\(?$MU'JO[0?Q'\=?$Z[5@^SQ9XGF^RH_P#TS@@*
M!%_V26%>Q_#GX(_!WX06HL_A=\+]!T!=NUFTK2HH7<?[;JH9S[L2:/8\(8+X
MZM7$2[04:4?E.7M)/_P7$/;<98[^'2HX:/><I5I_.$/9Q3]*LCQC_AL?]H_X
MF_NOV=OV'?%4UO)Q'K?Q!O(M$MU':01.6DE7TVD$CFC_ (4S_P %#_BO\_Q1
M_:B\.> [*3_6:3\./#QGE*_W?M5V=\;#NR9&?:OH^BC_ %DH873+\%1I?WI1
M]M/[ZKE!/SC"/WA_JS7Q>N8XZM5_NQE[&'W4E";7E*<ON/GS0O\ @F=^S6=3
MC\1?%A_$_P 1]6C.1J7CWQ+/>D'O^[4I&1[%37M7@OX=^ /AOI@T7X>>!](T
M*S '^BZ/IL5M'Q_LQJ :V:*\W,,^SK-8J.+Q$YQ6T7)\J](_"ODD>IEV09)E
M$G+!X:%.3WDHKF?K+XGZML****\D]<**** "L>R_Y'>]_P"O*+^9K8K'LO\
MD=[W_KRB_F: -BBBB@!'574HZ@J1@@C@BO"?B9_P3\^$/B/Q))\2?@UJVJ?"
M_P 8G)7Q!X(F^S),>N+BV&(ID)Y884MW8U[O17HY;FV9915=3!U7!O1VVDNT
MHN\9+RDFO(\W,\GRS.*2IXRDII:IO>+[QDK2B_.+3\SYF_X7A^VE^S'_ *-^
MT;\)D^)/AB'@^.?AW;8OH8Q_'=:<<9/4LT1"*!W->P?!+]I7X'?M%:.=8^#_
M ,1M/U?RTW7-DDACNK;M^]@<"2/GC)7![$UW->0?&W]AWX!_&W6!XUN-#NO#
M7BV)C):^,O"%T=/U**3^^9(^)3[R!CCH17M?7^'LWTQM'ZO4?_+RBKP?^*BV
MDO6G**72FV>'_9_$F3ZX&M]8IK_EW6=II?W:R3;]*L9-O>HD>OT5\S?VO^WY
M^RY\NO:3;?'+PA!_R^Z9&MCXCM8QW:'F.[P, !<R.<DD5Z/\"OVR_P!G_P#:
M$N&T/P5XR^QZ_"2MYX4UZ$V6IVSC[RM!)RQ7N4+*/6N7&<-8_#X=XK#N->@M
MZE)\R7^.-E.G_P!OQCY7.O!<3Y=B,1'"XE2P]=[4ZJ46_P#!*[A4_P"X<I>=
MCU*BBBOGCZ,**** "BBB@ HHHH **** "BBB@ HHHH **** "LWQC_R+%[_U
MP-:59OC'_D6+W_K@: +FG?\ (/@_ZXK_ "%35#IW_(/@_P"N*_R%34 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4454UW7]"\+Z1/K_B;6K33
MK"U3?<WM_<K##"O]YG<A5'N351C*<E&*NV3*481<I.R6[+=%?.OB'_@H5X>\
M8:Q/X)_9#^%>N?%?6H7\N6\TF/[+H]H__3:^F 0=B-H*L.C"J7_#+O[57[1/
M^E_M;?M!/H6B3<MX ^&+-:0,A_@N+U\RS C 9!\N<E6%?3QX6KX6*J9M5CA8
M[VG=U6O*E'WU?HY\D7_,?+3XKP^+DZ>44I8J2TYH65)/SK2]QVZJ'/)?RG9_
M&3]N[]GKX/:U_P (2OB&Y\5>*W<QV_A#P9:'4=0DD'\!2/Y8V]G93Z UQF[_
M (*%?M,?<73/@;X6F[MMU/Q#<1GVXAMLCZ2(3WQ7LGP;_9X^"7[/NB_V#\'/
MAMI>A0L@6::U@S/.!T\V9\R2_P# F-=G5?VQDN5Z99AN>:_Y>UTIOUC2UIQ]
M)^U?:2)_L;.\UUS3%<D'_P NJ#<%Z2JZ59>L/9)]8L^%?V\OV(?@9\"_V(O'
MWQ$L;#4?$?C)QIGG^-/%FH/?:DY;4[1&*N_RQ95F4E%4E6()(-?E[7]%E%?H
MG!OC5C^&<NJ8?&8>6*G.;GSRJ\MDXQBHI<DK)<MU9I*]DE8_-N-? [+^*<SI
MXG!XB.%A"FH<D:7-=J4Y.;?M(7;YK.Z;=KMNY_.G17]"GB7_ )"^C_\ 7Z?_
M $$UL5];_P 3&_\ 4K_\K_\ W$^/_P"):?\ J:_^4/\ [L?.G_!)O_E']X _
M[BO_ *=;ROHNBBOYWSO,O[9SK$X_EY?;5)U.6][<\G*U[*]KVO97[(_I'(LL
M_L7),+E_/S^QIPI\UK<W)%1O:[M>U[7=N["BBBO+/5"BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHKC_P!H#X]?"K]EWX*^)?VA/CAXKBT3PGX1TJ34
M=<U.5&?RH4'144%G=F*HJ*"S,RJ 20* .PHKXIG_ ."M7Q$\&WGB_P"('Q;_
M &#/B)H_PX\,:1HNJ7VK6=UI=WJ^BV-^DKK>:A81WA98E5%9U@::2%=QD0;6
MV^N?MJ?MW:?^R2^B^"_!?[/_ (\^+?Q \2P7%SH?@#X<Z4MQ=_9("BS7MU+(
MRQ6=JKR1Q^9(V7>1517(;: >]45\G_\ !.S_ (*W_!W]O_QWXT^ EU\)_&?P
ML^+7P[V2>+_AA\0].6WU&VMW*A;J(JQ$T)+Q@MA2/,C.W;)&S]5XR_;ZCO/C
MUXO_ &;_ -FCX$:]\5/$OPXTVUO/B(=%U6RL;319+E&DMM/$]W*BSW\L2F18
M%PBKM\V6(LH(!]#45Y5\#/VT_P!G3]H+]ER+]L7P3X\BM? JZ5=WVKZAK2?9
M)-%%IO%[#>H_-O+;M%*LJM]TQD@D8)\?T/\ X*T>!V\">"_VBOB'\!/%WA'X
M+?$76;33?"/Q2UV>T6(_;'V6%[?6:RF>PLKMM@AGD!QYT1F2 /D 'UK1110
M4444 >"_\$ZO^2'ZO_V/>L?^CZ]ZKP7_ ()U?\D/U?\ ['O6/_1]>]4 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M8_B7_D+Z/_U^G_T$UL5C^)?^0OH__7Z?_036Q0 4444 %%%% !1110 4444
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
M'_D6+W_K@:TJS?&/_(L7O_7 T 7-._Y!\'_7%?Y"IJAT[_D'P?\ 7%?Y"IJ
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
M8_Z#4'_?5'_"8^&/^@U!_P!]5<_L[3_^?&'_ +]"C^SM/_Y\8?\ OT* *?\
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
M_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\
MOJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\ OJC_ (3'
MPQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^
M$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/
M^$Q\,?\ 0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_
M[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'P
MQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A39K32K>)KBXMK=(T4L[
MNB@*!R22>@H;25V!5_X3'PQ_T&H/^^JR[3Q+H*>+;N]?5(A$]K&J29X)!.17
MPM^UE^WSXN^(7B*[\'_!?4WT3PW;2-$NH6*^5=:C@X,GF !HHS_"JD$CECSM
M7YU_M[7/M_\ :O\ ;5W]JW;OM/VEO,SZ[LYS7\[\0_2(R'*\REALOPLL3&+L
MY\ZA%M;\GNR<EYOEOTTLSXC&\;X/#UW3HTW-+K>R^6CO^!^P_P#PF/AC_H-0
M?]]4?\)CX8_Z#4'_ 'U7P#^R=^WQXO\ AYXBM/!_QGU)];\-W,BQ-?WP\VZT
M[)P)/,(+21C^)6)('*GC:WZ$0VFE7$*7%O;6\D<BAD=$4A@>001U%?J7 _'N
M2<>Y=+$X&\90:4X2MS1;VVT:=G9K>SV::7T.49QA,XH.I1T:W3W7_ [,J_\
M"8^&/^@U!_WU1_PF/AC_ *#4'_?57/[.T_\ Y\8?^_0H_L[3_P#GQA_[]"OM
MCUBG_P )CX8_Z#4'_?5'_"8^&/\ H-0?]]5<_L[3_P#GQA_[]"C^SM/_ .?&
M'_OT* *?_"8^&/\ H-0?]]4?\)CX8_Z#4'_?57/[.T__ )\8?^_0H_L[3_\
MGQA_[]"@"G_PF/AC_H-0?]]4?\)CX8_Z#4'_ 'U5S^SM/_Y\8?\ OT*/[.T_
M_GQA_P"_0H I_P#"8^&/^@U!_P!]5C^.M/\ @]\3O#LWA'XB:5H^MZ9<#][8
MZI:K-&3V.&!PP[,.1V-=)_9VG_\ /C#_ -^A1_9VG_\ /C#_ -^A5TJM2C45
M2G)QDM4T[-/NFMC.K2I5Z;IU(J47HTU=-=FGN?+MU^REXF^!5S)KW[#7[1DG
MAJ#>9'\ >+)9-1T*<DY*INS+:Y/5D+,>F0*O>&?^"B</@'5(?!O[97PMOOA[
MJ#N(X?$=H3?Z%>MV*7$0)B)Z['!VC[S"OI3^SM/_ .?&'_OT*KZMX7\,Z_IL
M^BZ[X=L;VSN8REQ:7=HDD4JGJK*P(8>Q%?4+B6GF*Y<YH*O_ -/$^2LO^WTF
MI_\ <6,WT31\L^&*F7/GR2N\/_T[:YZ#\O9MIP_[A2@NK3,_0OBA\._%&DPZ
M]X:\::=J%C<INM[RQNEEBE7U5ER"/I5S_A,?#'_0:@_[ZKP/Q3_P3UT;P?K<
M_CS]C[XF:E\+M;E?S9],LU%WHEZWI+8RDJN>@*8"@DA<UGQ_M<?&#]GIUTK]
MM[]GPV6FQD+_ ,+&\!VSW^D,.F^>'!FM1]022>% H_U<H9E[V35U6?\ S[DE
M"LO)1;<:GE[.4I/=Q0?ZRU\L]W.Z#HK_ )^Q;G1?FYI*5/S]I&,5LIR/HS_A
M,?#'_0:@_P"^J/\ A,?#'_0:@_[ZK,^''Q"^%'Q?\-Q^+_A?XHT;7M-EX%WI
MDR2JIQG:P'*,.ZL 1W%;_P#9VG_\^,/_ 'Z%?,5J-;#U73JQ<9+1IJS3[-/5
M'U%&M1Q-*-6E)2C+5----=TUHRG_ ,)CX8_Z#4'_ 'U1_P )CX8_Z#4'_?57
M/[.T_P#Y\8?^_0H_L[3_ /GQA_[]"LS4I_\ "8^&/^@U!_WU1_PF/AC_ *#4
M'_?57/[.T_\ Y\8?^_0H_L[3_P#GQA_[]"@"G_PF/AC_ *#4'_?5'_"8^&/^
M@U!_WU5S^SM/_P"?&'_OT*/[.T__ )\8?^_0H I_\)CX8_Z#4'_?59_BCQ1X
M?O/#]W:VNJQ/(\1"(IY)K<_L[3_^?&'_ +]"L[Q=8V4?AJ\>.SB5A"<%8P"*
M "Q\7>&H[*&-]9A#+$H()Z'%2_\ "8^&/^@U!_WU4VGZ?8-80$V4))A7),8]
M!4W]G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^
M,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?
MV=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J#_OJ
MKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_
M[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&
MH/\ OJN<^+WQK^!7P$T+_A(OC!XXT70;8J3$MZZ^;/CJ(HE!DE/LBDUXO_PT
M_P#M$_M#?Z'^Q[^S8+#1YN$^(/Q*A-E9%3_RTM[5?WUP".5<<9&&6O<R_AW-
M<QH_6(P4*/6I-J%/TYI63?\ =C>79,\+,>),IRVO]7E-SK/:G33G4]>6-W%?
MWI<L>[1]!:M\2/ 6@:;-K&N^+K"RM+=-\]U=W CCC7U9FP%'N:\(\7_\%(O
MVMZM-X,_97^'NL?%+6XV\N2XTI?LNDVK_P#3:^F 0#H05#*?[PIWA_\ X)X:
M-XUU:#QE^U_\5M9^*&JQ.)8M+NC]AT6T?_IE90$*<=,L2& Y6O?O#_@SP?X3
MTB#P_P"%O"FFZ;86R;;>RL+&.&*)?140 */H*[K<+93O?&5%_BIT5^56HO\
MP3\SS[\69OM;!TW_ (:E9K\:5-_^#O1'S/\ \*3_ &B?VBO]*_:Q_:;B\.Z)
M-RW@'X8NUK$R'^"XO7!EE!'#(,J>=I%>Q_!GX2?LT_L^:/\ V)\'?!^BZ'&R
M!9Y[:(M<3@?\]9GS))_P)C7H/]G:?_SXP_\ ?H4?V=I__/C#_P!^A7%F'$>:
M9A0^KN2IT?\ GW32A#YQC;F?]Z?-+NSOR_AK*<NQ'UE1=2M_S\J-SJ>BE*_*
MO[L.6/9%/_A,?#'_ $&H/^^J/^$Q\,?]!J#_ +ZJY_9VG_\ /C#_ -^A1_9V
MG_\ /C#_ -^A7A'O%/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#
M_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J#_OJKG]G:?\
M\^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG
M_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG
M]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% &'JNM:5JVL:4NG7R3%+S+A#TRIKH
MJP_$%M;P:OI!@MT3-X<[$ S\IK<H **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** ((=-TZVO9]3M["".YN507-PD0#RA,A0S 9;&3C
M/3)J>BB@ HHHH **** "BBB@ HHHH \%_P""=7_)#]7_ .Q[UC_T?7O5>"_\
M$ZO^2'ZO_P!CWK'_ */KWJ@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@#'\2_\A?1_P#K]/\ Z":V*Q_$O_(7T?\
MZ_3_ .@FMB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBO'O
MBY^WC^R_\'=1_P"$;U?XCQ:SKS/Y</AOPM$VI7TDG_//RX<A&]I"M=V RS,<
MTK>QP=&527:*;?J[;+S>AP9AFF6Y30]MC:T:<>\I**OV5]WY+4]AJ&_U"PTJ
MREU+5+V&VMX$+S7%Q($2-1U+,> /<U\Y?\+E_;Y^//[KX+_L_P"F_#319ON>
M(OB9<&2_*?WDL(<F)QZ2DJ?6I;#_ ()W:)X]O8M?_:W^-OBOXIWJ.)!IVH7A
ML-(B?KF.RMF"KS_M$' R*]S_ %>P6 US3&0IO^2G:M4_\E:IQ\U*JI+^4\+_
M %CQV/TRK!SJ+^>I>C3_ /)DZLO)QI.+_FV-/QS_ ,%&?V>=$UQ_!7PMEUCX
ME^(QPFB?#W36U YZ9:9<0A<]2')&"<5C?:_^"D7Q^XL[#PQ\$M"F_P"6MR5U
MO6RA[A1BW3(['#J3[5[WX&^'7@'X8Z&GAKX<^"]*T+3X_NV>DV$=O'GU*H "
M?<\FMFC^VLFR_3+L&G+^>NU5EZJ%HTEZ2C4M_,']B9UF.N98UJ/_ #[H)TH^
MCJ7E5?K&=._\I\_^#_\ @G%\"+?6X_&OQKU#7?BEXA3G^U/'VJ/>1H>I6.VX
MB5/165L=,U^:W_!4[2-)T']N_P <Z-H6EV]E9VZ:4EO:VD"QQQ+_ &59\*J@
M!1["OVIHKZ3@_P 3LUX;SN>88Q2Q*=-TU!SY(QO*$KQ2C*,5[MN6,4M?O^8X
MS\+,IXGR*&78)QPK515'-4^>4K1G&TFY1E)OFOS2DWI;T_G3HK^BRL?P/_R"
M)?\ K]F_]"K]._XF-_ZE?_E?_P"XGY9_Q+3_ -37_P H?_=C\=O^"3?_ "D!
M\ ?]Q7_TU7E?M#117X]X@\:_Z]YU3Q_L/8\M-4^7FY[VE.5[\L?YK6MTWU/V
MCPYX'_U R2IE_P!8]MSU'4YN3DM>,(VMS3_DO>_7;34HHHKX0^^"BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH ***K:OK.C^']/DU;7M5MK*UA&9
M;F[G6*-!ZEF( _&IG.,(N4G9+JQ-I*[+->5_MN>(]2\*_LJ^--5TJ1EF?3$M
M=R=0D\T<#_\ CDC51U_]MOX2?VF_AOX66&M>/M63@V7A'37N(T/8O,<1A?\
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
M0O\ 8^^.7Q T_P"%OPM^+W]J:]JGF_8;'^P-0@\WRXGF?YYK=$7$<;MRPSC
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
M,:HB*%1%& H'0 =A3J**^;W/I]@HHHH **** "BBB@ HHK%\1?$;P!X2#?\
M"3^-=*L&7K'=7\:/^"DY/X"N?$XK"X.DZN(J1A%=9-)?>]#2E1K5Y\E.+D^R
M5W^!M45YM<_M6_"62X:R\+2ZMXAN%.#;Z%H\TS9] 2%4_@:R_%7[0GQ1TSPY
M>>*=-^ =[8Z=9P&6:^\1ZE':E%[?N1EV).  #G) KY?$<?<)T*4ZD,3[513;
M=*,ZR26K;=*,TDNK;275H]BEPWG-2<8RI<C>BYW&%[[64VF[]++7H<)^WK\5
M_P#CR^$.D7/]V\U?:?\ OU&?U<C_ '#2?L$_%55-]\(M5N,9+7ND[CUZ>;&/
MT<#_ 'S7SUXP\5ZQXY\47WB[7I@]WJ%RTTQ7. 3T49Z*!@ =@!4.@:_J_A?6
M;?7]!U&:TN[63?!<6[[70XP<'Z$C\:_C"?BOCEXHOBB-W2YN3D_Z<;<O:]O?
M[>TU/WA<&X=\(+*';GMS<W_3S>_I?W?\.A^DE%>0>#/AOXQ\<^%;#Q?HG[2W
MB9K74+59HLPPY7(Y4\=0<@^X-:?_  HSXC?]')>)O^_$/^%?V;A^),ZQ5"%:
MCE=24))--5</9IJZ:_>[-'X14RK 4:CISQD5).S7)4T:W7P'IE%>9_\ "C/B
M-_T<EXF_[\0_X4?\*,^(W_1R7B;_ +\0_P"%;?V[Q!_T*:G_ (,H?_+2/[.R
MS_H-A_X!4_\ D#TRBO,_^%&?$;_HY+Q-_P!^(?\ "C_A1GQ&_P"CDO$W_?B'
M_"C^W>(/^A34_P#!E#_Y:']G99_T&P_\ J?_ "!Z917F?_"C/B-_T<EXF_[\
M0_X4?\*,^(W_ $<EXF_[\0_X4?V[Q!_T*:G_ (,H?_+0_L[+/^@V'_@%3_Y
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
MGV>_C?/_ 'RQKZ["YWDN-_W?$TY_X9QE^39E6R_'X?\ BTI1]8M?FC3HH!#
M,IR#T(HKU#D"BBB@ HHHH **** "BBB@ HHHH **** "BBB@#\7O^"LG_*0'
MQ_\ ]PK_ --5G7SI7T7_ ,%9/^4@/C__ +A7_IJLZ^=*_P!$>"?^2,RW_L'H
M_P#IN)_FYQU_R6V:?]A%?_T[(*^B_P#@DW_RD!\ ?]Q7_P!-5Y7SI7T7_P $
MF_\ E(#X _[BO_IJO*.-O^2,S+_L'K?^FY!P+_R6V5_]A%#_ -.Q/VAHHHK_
M #N/](PHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** ,?Q+_R%]'_Z_3_Z":V*^7M1_:<COOVK;>8ZGCPU;W"Z6AW_ +O[Q!N/
M3_6$_-_<KZAKY/A7C+)N+_K7U"5_J]25.7G;::_NRUY7ULSVLXR+'9)['ZRK
M>T@I+RONGYK2_J%%%%?6'BA1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %>-?\%"?V./#'_!0+]C#X@?L>^+?$EQHUIXWT46T6KVT0D:RN8IH[BV
MG*$CS%2>&)F3*[E!7<N<CV6O+_VRO&?[0?P[_9\U3QU^R]\-+CQEXPTC5]'N
MH?"EG<VL,^JZ>FJVC:E;Q/=,L2ROIXNPA9@=Y7;\VT4 ?EG^QC_P4$^(/[$/
M[4?C#_@G1_P7:T:PM-1\:>'=%\*Z)\6[(&3PUXELH;:YMX$OI\@V\UQ#,0SN
ML?W294BSO;]=OC2%?X-^+ <$'PS?_C_H[U^8O[=UMK/_  4R\+_M!?LD?"+]
MD;QWJ'BWXCZ5X+M=,_X6!X)N-&L_!L\+7+R:I>75VJQIY";R@M6FDG.4C#JS
MD?H/XYTFY^!/[&S_  _BM/$7BZ]T7P$NAV:Z1H\UY?:K<1V/D(WEQAMK2,H)
M=R$4M\S <T ?-G_!L[_R@\^ _P#V#-:_]/NHUQ/[:7[!7_!8GX:?M-?$#_@H
M5_P3I_;LT/5M7\00V)NO@;XO\#PIIVHZ?I\3K;Z=%>M*[[OWD[#'V?,MS*WF
MQ[SCTC_@WN^'_P 5/@3_ ,$L?AM^S3\=_A'XG\&>-/ ]OJ,&NZ1XBT:2!?W^
MJWMQ"\,V#%.#%(A.QB4)PP7(SU'A'_@HW^T5K'Q*\8_!OQ+_ ,$J?C;I^O:%
MKUU9>&-3MET^;P_X@M$<K!>C599X8K974"1T(=HU;"^:X*4 ?$W_  59_P""
MF.H_ML_\&Q/C']IOP;X4O?!^N>)=2T_PKXZ\.RNWG:)>Q:S!!J%H6(!*/Y94
M;@&,5P P#9 ^C_\ @M!\.O"ND?\ !O-\2OAY]DB_LW0_A%I$=A%M&U#9R636
M^.PP\49'T%=!XM_X)":7\3O^"4/Q,_8)\>>(]-B\4_%C4-:\5^(M<T^)S8VG
MBF_U-M61X5(#FUM[H01+PKO# "0K.0/,/VD/!O[8?[>O_!,KPY_P2^U3]G_Q
M=X/^)/B*RT'PY\7_ !=K&E%-"T"PL+BV>_U.VOB?(U(7*VI%O!;M))_I(\X0
M['( /L?_ ()T^/O$_P 5O^"?7P*^*'C:ZEGUGQ'\'/#.J:O/.27ENKC2K:65
MV)Y)+NQYYYKV2L;X<^ ?#/PJ^'N@_"_P58_9=&\-Z-:Z5I%MNSY-K;Q+#$F>
M^$11^%;- !1110!\\_\ !/G7]&TOX*ZM;ZAJ,<3GQSJ[!7/.//Z_I7NG_"8^
M&/\ H-0?]]5XG_P3OM+6?X(ZN\UM&Y_X3K5QED!/^OKWC^SM/_Y\8?\ OT*
M*?\ PF/AC_H-0?\ ?5'_  F/AC_H-0?]]5<_L[3_ /GQA_[]"C^SM/\ ^?&'
M_OT* *?_  F/AC_H-0?]]4?\)CX8_P"@U!_WU5S^SM/_ .?&'_OT*/[.T_\
MY\8?^_0H I_\)CX8_P"@U!_WU1_PF/AC_H-0?]]5<_L[3_\ GQA_[]"C^SM/
M_P"?&'_OT* *?_"8^&/^@U!_WU1_PF/AC_H-0?\ ?57/[.T__GQA_P"_0H_L
M[3_^?&'_ +]"@"G_ ,)CX8_Z#4'_ 'U1_P )CX8_Z#4'_?57/[.T_P#Y\8?^
M_0H_L[3_ /GQA_[]"@"G_P )CX8_Z#4'_?5'_"8^&/\ H-0?]]5<_L[3_P#G
MQA_[]"C^SM/_ .?&'_OT* *?_"8^&/\ H-0?]]4?\)CX8_Z#4'_?57/[.T__
M )\8?^_0H_L[3_\ GQA_[]"@"G_PF/AC_H-0?]]4?\)CX8_Z#4'_ 'U5S^SM
M/_Y\8?\ OT*/[.T__GQA_P"_0H I_P#"8^&/^@U!_P!]4?\ "8^&/^@U!_WU
M5S^SM/\ ^?&'_OT*/[.T_P#Y\8?^_0H I_\ "8^&/^@U!_WU1_PF/AC_ *#4
M'_?57/[.T_\ Y\8?^_0H_L[3_P#GQA_[]"@"G_PF/AC_ *#4'_?5'_"8^&/^
M@U!_WU5S^SM/_P"?&'_OT*/[.T__ )\8?^_0H I_\)CX8_Z#4'_?5'_"8^&/
M^@U!_P!]5X%_P5@LK.+]@'Q])%:1*P_LK#+& 1_Q-;.OQBK]B\/O"?\ U[R6
MIC_KGL>6HZ?+[/GO:,)7O[2/\UK6Z;ZGXOXC>+W^H&=T\O\ J7MN>FJG-[3D
MM>4XVM[.?\E[WZ[::_T#:]XET&YU/3)H-4B98;HM*P/W1MZFM3_A,?#'_0:@
M_P"^J_GEHK[K_B7+_J:?^4/_ +L? _\ $RW_ %*O_*__ -Q/Z&O^$Q\,?]!J
M#_OJC_A,?#'_ $&H/^^J^1_V ?VCOV=O@+_P3T\!7_QE^)>AZ-(4U5UM;F42
M7<J_VK><I @:5_\ @*FNP_X:[^-OQI_T;]D?]D+4KVSEXB\8_$)1I.FX[21Q
M']]<I_N;3[5^*8W@G.<-F>)P\(_NJ-2=/VL[4J;Y).-^:;4;NU^52D^BN?N>
M!XYR7%97AL1.7[ZM3A4]C3O5J1YXJ5N6$7*RO;F<8KJ['T1_PF/AC_H-0?\
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
MN3N64(ER%4,#T4  A@  !7KOPF_8E_87^!OQ T_XI?"WX=P:7KVE^;]AOO\
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
MV<9S_K^:N?\ #NO_ *K#_P"6_P#_ '17T!XE_P"0OH__ %^G_P!!-;%?,_\
M$#O"[_H7_P#E6O\ _+#UO^(@\7_]!/\ Y)3_ /D#,\&:+JOASPK8:!K>N_VG
M=6=JL,M^8/*,^T8#%=S8. ,\G)R>^*TZ**_4L/0IX:A"C3ORQ22NVW9*RNVV
MV_-MM[MW/CZE256I*<MVVWHEOY+1>BT"BBBMB HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH \%_X)U?\ )#]7
M_P"Q[UC_ -'U[U7@O_!.K_DA^K_]CWK'_H^O>J "BBB@ HHHH **** "BBB@
M HH)"@LQ  ')->;_ !%_;!_9<^$_F1^/OCUX8L9HL^99KJL<UP,?],8BTG_C
MM=6$P.-Q]7V>%I2J2[1BY/[DFSDQF/P.7TO:XJK&G'O*2BOO;2/2**^<3_P4
ME\ ^+SY/[/\ \#/B5\1"_P#J;W0O"<L-B?=Y[C9L'N5-'_"R_P#@I;\2N/!G
M[.O@3X>VTGW;GQMXG?49@O\ >$=D %;_ &6Z'@U[W^I^=4M<6H8=?]/:D(2_
M\ ;]H_E!G@?ZY9)6TP;GB'_TYISJ1_\  U'V:^<T?1U9_B/Q7X6\':<VL>+O
M$NGZ5:+]ZZU*\2",?5G(%> _\,F?M:?$/Y_C9^WIXAM[>0?/I?P[T6#1Q$.X
M6Y&Z1OJPS5_PY_P3+_9&TO45U[Q?X*U'QEJ@^]JGC37KF_D?_>5G$9_[XH_L
MOAK"_P"\X]S?:C2E+Y<U5T;>J4O*X?VKQ/B_]VR]4UWKU8Q^?+25:_HW'SL7
M/&G_  4D_8S\&WG]D0_&6UU[4&.V#3_"EI-J<DS>BM;JT>?JPK$_X;7^._C[
MY/@)^P;X\U)'XBU#QI/!H$!']\><7+KWXP3[5Z_HFF_ 3X*63:=X=L/"/A.W
M5=K0645K8K@=B%VUG:M^U)\!='?R9?B):W$F<*EC#+<%CZ QJP_6O'QW&?AO
MD+M4A"ZZXC$**_\  *?LFO3GEZG=A^&>/<VWQ#BGTP]"[_\  ZKJI^O)'T/,
M?^$>_P""G_Q+_P"0K\0OAI\-+23[@T72IM8OHA_M?:"(6/\ N\4?\.]KGQMF
M7]H+]K+XG>,]_P#KM.CUP:9ITGK_ *-;CC\&KT'_ (::TW4OE\(?"?QKK&?N
M36^A%(3]7=AC\J7_ (67^T-K1V^'_P!GN.R0_=N-:\11+^<:#<*\O_B,N#CI
ME=EV^K86<W_X-C3G+YNI8Z_^(7PJ:YBY5._M\1:/_@ISC#[J90^'?[!W['OP
MM*2^$?V>_#GG1\I=:G9_;YE/J)+DR,#[@UZO:VEK8VZ6=E;1PPQKMCBB0*JC
MT ' %>;_ -F_M::W_P ??B7P;H:-T^PV<]S(H]_,PI/TI/\ A27Q3U?_ )&W
M]I/7Y0?O+HUC#88]@4W5XF-XWXDSFISRP6*K/^:K*G%?/VE7G_\ )&>[@>%\
MBRBG[.A5H48_RTXR_P#;(<O_ ),>FDA068X ZDUA:S\4/AMX=R-=\?Z-:,O5
M+C4XE;\BV37(#]D_X7WK;_%FH>(=?;N=9UZ9\_785K<T;]G_ ."F@8.G?##1
MLK]U[BR69A^,FXUQ?6N-L1\&%H4EWE6G-_.,:45]U1G=['A^E\5:I-^4(Q7W
MN;?_ )*>2?MA>,/@5^TK\!=?^ %I\7FLI]=^R[;[3=!GU Q>1=PW'$:E%?=Y
M6W[XQNSSC!^(;+]AKP?\$/&FG>)A\0->UF6$-+;6NL>"AI:-P0LJL;J5GP<X
M&P#/.>,']75@T+PQILUS%;6MC:6\323-'&L:(B@DL<#&  :^!OC7\2KOXL?$
MC4?&4Q802R^781-_RRMUX1<=CCYC_M,:^"\5?%GQ,X X#JY#1S6G"&/<XRI4
MJ"BW"4%&K+VDYU)J\>6'N\F]U9IGH<+^&? /&/%]'/,5E\IU<(H.-2=632E&
M3E37)%0@[2<I>\I;:W5CE*U?@M_P3]^#O[2OB/7-=OM8@T[6HV2=X+FQDN(Y
M5;@R!%GB'4?-UY8'O6575_!3XE7?PG^)&G>,H2Q@BE\N_B7_ ):V[<.N.YQ\
MP_VE%?R;X7<:X[@?BNEB:>)JT:-7]W6]E5J47*G)KXI4I0DXQDE-QO:7+9JS
M/W+C?A7+>+,DE0Q.&IUIT_?IJI3A42FDU=*<9)-IN*=KJ]TSZ6^$_P"PS\/?
M 7@'3_ WBO7;W6H+#S=EG9R2V&GH'E>3$=LDK&/[V6_>-N<LW&[ ]'\._!/X
M1^$]K:#\.=(A=?NS-9+)(/\ @;@M^M='97MIJ5G#J-A<++!/$LD,J'*NC#(8
M'T(.:EK^_:'#7#<,2\9#"TW5F^9U'%2FV];\[O)WWW/YR>9YE'#QPOM9*G!*
M*@FU%)*R7*K+1:;"*JHH1%  &  . *6BBO>V. **** "BBB@ HHHH **** "
MBBL'Q=\4_AGX!0OXW^(.BZ1@9VZCJ<4+'Z!F!/T%8U\1A\+2=2M-1BNK:2^]
MD3G"G'FFTEYF]17C>I?MW?L]K=MI?@[5-8\5WJ=;/POH-Q<N3[,55#^#5!_P
MT+^T;XO^7X:?LAZO!$_W;WQCJ\.G>7Z%H/F<_0&OFY<:\-.3CAZ_MWVHQG6_
M]-1FE\[6ZG"\UP#=H3YW_=3G_P"DIGM=%>*?\(C^W7XT_P"0[\6?!?@V%^B>
M'=#DOYE7T)NB%W>XXH_X8QB\2_O/BW^T!X_\3[O];9OK?V2S;U_<P@8_!J7]
MOYSB?]SRVI;^:K*G2C]W-.HOG3#ZYBJG\*A+UDU%?FY?^2GI'C#XP?"CX?AO
M^$W^)&AZ4R=8K[5(HY#[!"VXGV KSR]_;O\ @//<OI_@+_A(?&%VAPUKX5\.
MW%PV?0%E13^!K>\(?LA?LT>!BKZ#\&=%:1.5FU"W-Y(#ZAIRY!]Q7H=E8V6F
MVRV6G6<5O"@PD4,815'L!P*/9<;8OXZM##KM&,ZTOE*3HK[Z;]!<N;5-Y0AZ
M)R?WMQ7X'C/_  OG]I_Q?\OPY_9*N[&%ONW_ (PUV&SV>FZW7,A_ T?\(+^W
M)XT_Y&7XW>$O"$3]8?"WA]KV0+Z;[HC!]Q^%>UT4?ZL5L1_OV/KU?)35%?+V
M$:<K>LF_,?\ 9\Y_Q:TY>CY5_P"2*+_%GBG_  Q3HGB/Y_BW\;/'OBS=_K;2
M]\0-!:'Z0PA=OX-7S7_P4*_9 T+X/)I7Q'^$7A4V?APP"SU6WADDE%K<!B4E
M9G9FQ(&"Y)P&0=V%??\ 5?5](TK7]+N-$US3H+RSNHFBN;6YB#QRH1@JRG@@
MCL:^?XH\+>&>(,CK8.E2C3K2LXU6G*:DM5>4FYN+VDN;5/O9G%F'#V QN$E2
MC%1D]I;M/U>MN^I^,=%??_Q*_P""57PB\3ZG)J?P]\9:EX:$K%FLG@%Y!'[(
M&97 ]B[?A5+X,_\ !,#X26-PNO?$/Q9J/B$07+*M@D0M()-IQ\X5F<CV#K^-
M?R[_ ,0$\1/K_L/90Y+V]I[2/);O;^)_Y)?R/S[_ %.SOVW)RJW\W,K?Y_@<
M;_P2Q^!.KW7BF^^/NN6+1:?:6LECHC2+C[1.Y ED7U5%!3/0F0CJIK[DJMI&
MD:5X?TNWT30]-@L[.TB6*VM;:()'$@& JJ.  .PJS7]>\"\(X;@CAREEE*7,
MU>4Y;<TY;NW1;)+LE?4_3,HRRGE.!CAXN[W;[M[_ .2\@HHHK[ ],**** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "L>R_Y'>]_Z\HO
MYFMBL>R_Y'>]_P"O*+^9H V**** "BBB@ HHHH **** "O(OC;\!/$;^*5^/
M/[/]]#I7CBSBVW=O)\MIK\ ZV]RO W$ !9.HP 2,*R>NT5YF;93@\YPGL,0G
MHTXR3M*$EM.$MXR71_)W3:?/B<-2Q5/DGZIK1I]&GT:.#^!/Q[\.?&W1;@16
M,VDZ_I4GD>(?#=_\MSI\XX((."R$@[7Q@^Q! [RO*_CK^S]J'BW6K?XP?!_6
M(] \?:3'BTU#;^YU*(=;6Z4??C;& QR5X]!B_P# ;]H'3_BY#>>%_$6COH'C
M+1#Y?B'PU=G$D#<#S8S_ ,M(6R"&&>HSU!/CY9FV,P6,CE>;M>U?\.HE:-9+
M7;:-5+65/9J\H7C=1YL/B:M*JL/B?B^S+93_ ,I=U\UI>WHM%%%?5GHA1110
M 4444 %%%% !1110 4444 %9OC'_ )%B]_ZX&M*LWQC_ ,BQ>_\ 7 T 7-._
MY!\'_7%?Y"IJAT[_ )!\'_7%?Y"IJ "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** ,?Q+_R%]'_ .OT_P#H)K8K'\2_
M\A?1_P#K]/\ Z":V* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBO$_^"C/[96C_P#!/K]B3XA_MB:UX3FUU/!.BK<6VC0S>7]LNIIX
MK:WB9\'RT,TT8=P"53<0#C! /;**_/*V^,G_  5%\/VGQ-^._@OX]?#KX@77
MA7P+X;\47'P^C\%7,6CZE:7%I<W5Q;Z5<1WSSP2^5&?*ED\\3LJ;HTW97[2_
M:6\7?&/P%\$/$?C+X#>%_#FK^)=,TFYNK&S\5:I/:69,<+N"S00RN_S*HV#9
MD$_.N.0#NZ*^8_\ @C?^US\5?V\/^";7PT_:T^-L&E1>)_&4&J7&IPZ':-!:
M1>5JMY;QI$C.[!5BAC'S,Q.,DDFN.^&?[7?[1/[?7[27QH^&_P"R)\2?#W@?
MP-\#]?'A.?Q7J?A?^V)_$GBI(S)=P[#/$L%C:DQQ.%_?3.Y*2Q*HW 'V;17Q
MC\!_^"Q'PT\2_P#!.CXC_MK_ !_\.Q^&];^!^I:QX>^+OA/3;@RBT\0Z;((9
M+2U:3!9;B1X/)W]/M"HQRK&N)^(W[=O[<G[+G[#_ (1_X*E_M%3^%]0\&:D=
M&U7XC_"?0_#<D=QX7\/ZI+#'%+9WQF,EU>VGVFW:<2((IL3!%@ 5J /T$HJK
MH6N:/XGT2S\2^'M2AO-/U"UCN;&\MW#1SPR*'212.JLI!![@U:H \Z^/W[67
M[/\ ^R]_9/\ PO3Q_P#V'_;GG_V7_P 2J[N?/\GR_-_X]XI-N/-C^]C.[C.#
MCSG_ (>R?\$_O^B^_P#EJZK_ /(M?.G_  7X_P":3_\ <>_]QU?!GPF\!7/Q
M)\>6/A:(,(9)/,O)%_Y9P+RY]CC@>Y%?O>0>'7 LO#5\69[BJM*G3IU:E5QE
M!1C"E*:;2=.3ORPVNVWHMTC^=N*?%'CG!^(\N%\EPU&K*4Z5.FI1FY2E5A!I
M-JI%?%+>RLM]FS]*OV/_ /@H#^R1\$OA7=^&_BC\59-)O=0\2:AJEE#)X=U&
M3S;2>7=%*#';L,, >,Y'<"O5/^'LG_!/[_HOO_EJZK_\BU^?'[6/PMMM6\!V
MWBG0K%4FT",1M'$O6TX&/HAP1Z#=7S+7SO@)D7AQXY< PX@PU2O2J1J3IU:7
MM*;=.<7>*O[+52IN$T]O>:Z,[_&3CGQ&\(^,I9+7I8>I3<(5*=3V=5*<9*S=
MO;:<LU*-O)/JC^BRBO*/''[<G[)?P^E>TUWX[:%<7,9P]EHL[:E.I_NF.T61
M@?8@5Y?XG_X*F^#6DELOA5\ ?&_B">,96;4[>'1[63TQ)<OO_P#(=?F5? 8C
M"0]IC.6A#^:M.%&'_@=64(_B?LRSK+9SY*$_:R_EI1E5G_X!24Y?@?4]%?$\
MO[9'[=WQ51?^%?\ P\\(^%+:4X:-;.^US4(O]WRTCMV/UXII^"7[8OQ4._XF
M_%WXNZS'(<M9:-<67A&W(_N.L8D9E[')!/L:\[^V.":7\7-Z4W_+AXU<9)^C
MPU.I3?\ X,1IS<2U_P#=LJK6_FK.GAH_-5YPJ+_P6SZ^\:_$[X;_  VL_P"T
M/B)\0-$T&#;D3:SJL-LI'L9&&:\<\0_\%-?V2-.U$Z#X-\8:IXSU0?=TSP7H
M%S?R/_NLJ",Y]GKS_P $_P#!._1M%O!JMM^SEX!-X[;KB_\ '&K7FN7$A]2L
MC-$3_P ! KV3P[\"_C!I6GKI-E\8=,\/6*]--\*^$K>WC7Z-P1^5/_6KA:E_
MNF68_%ONXT<)'YJK.4VO2S]!?V-QAB/X^,P>%79.KB9?)PC3BG\I+U.,_P"&
ML/VN?B'\GP5_8,UZTMY/N:I\1-<@TGRAV+6WS2-]%.:I:MX5_P""A'BM/-^*
M7[5WPY^&-I(,O;^$M"^V2A/[IEOV7:WJR]#TKT[_ (9ETW4OF\7_ !8\:ZQG
M[\-QKI2$_1$48_.KND_LM_ 71W\Z+X=VMQ)G+/?32W!8^I$C,/TI?ZY\6?\
M,MR/"8?^]6JRK3^<94ZU-OT<4'^J&4U-<QS?%5_[M.,:,?DZ;I3MZN3/GG6/
MV;/V1=0)F_:._:\\;?$ANL]EJ?C&>2R/LD%D!L'L&-=G\.M(_8N^&WEO\$/V
M4)[^=,>3?:7X)\^;Z^?<?O,>^:]_T;P/X*\.8_X1[PAI=CM^[]CL(XL?]\J*
MU*Y<7G?BMFU+V6)S:%.G_)3I3LO2]54__*2.O!\.>'N65?:X?+N:I_/.47+Y
MRY'/_P J'F0^+GQMU<;?"W[-UZB'I-K.MP6NWZI@D_04?\9;ZV/^9)T.(_\
M7Q<S+_[(:]-HKPO]6<;6_P!ZS/$3\DZ=-?+V5.$OODWYGT']K8>G_!PE*/FU
M.;_\GFU^"/,O^%1?&[6.?%'[2%\B'K!HNB06VWZ/DL?QH_X99\':ASXO\;^+
MM>S]]=5\0R%3[83;@>U>FT4O]1^&I_[Q2E6_Z^U*M;\*DY+Y6L'^L&:Q_AS4
M/\$(0_\ 2(IG#Z+^S7\"-!P;'X8:8^WI]LC-S_Z-+5U>D^&_#N@)Y>A:!962
MXQMM+5(Q_P".@5=HKV<#D>2Y6O\ 8\-3I?X(1C_Z2D<.(S#'XO\ CUI3_P 4
MF_S84445ZAQA1110 4444 4?$WAO1O&&@W7AGQ#;--97L7EW,*3O&73NNY"&
M /?!Y''0UP/_  QY^SG_ -$[_P#*O>?_ !ZO3*^7?VKO^"C6D?"+7KGX<_"3
M2;76=;M',>H:A=LQM+.0=8PJD&5QWPP"GC+'('PG'%7@'*\&LRXDH49I>[%U
M*<:DWN^6"<6WU=EHM6[*[*J<2XGA["N4<3.E!O:,I*[]$]6>B:Y^R9^S]9ZC
MIL%MX VI<7)28?VK=G<-N<<R\?A6E_PQY^SG_P!$[_\ *O>?_'J^%KK_ (*(
M?M57NKPZK<>.+,K;R^9%:?V+;",'TSLWD8X^]7TG^RE_P4:TCXN:]:_#KXN:
M3:Z-K=VXCT_4+1F%I>2'I&58DQ.>V6*L>/E. ?S#A[C'P,XAS&."AEM&C.3M
M'VN&HQC)O9)QYDF^G-:^V^APX+Q0Q>-KJDL;6BWMS3DD_FI/\;'TIX9\-Z-X
M/T&U\,^'K9H;*RB\NVA>=Y"B=EW.2Q [9/ XZ"KU%%?T-1HTL/2C2I148Q22
M25DDM$DEHDEHDMCNG.=6;G-W;U;>K;?5A1165XG\=>"?!-O]K\9>,-+TF+&?
M,U/4(X%Q]7845:U'#TW4JR48K=MV2^;,Y2C"-Y.R-6BO(==_;H_9JTJ\.E:/
MXWFU^^YV67AW3)[QW^C(NP_]]52_X:;^-'BWY?A5^R#XJN$;[EUXKNX=(0#^
M]MD+%A[#DU\U/C3AA3<*.(5:2Z45*L_2U)3:^9PO-<OO:,^9]HIR?_DJ9[71
M7BG]E_MZ>-/^/SQ3X"\%6[_=_L^RFU&[C^OFXB)^E'_#(GB?Q1\_Q;_:B\>:
MYG_6VFF7B:9:R>H:*$'C\:G_ %AS3$_[GEM62_FJ.%*/W2DZB_\ !9/UW$5/
MX5"3\Y6BOQ?-_P"2GJ7BOXC?#[P+$9O&WCG2-(4#.=3U**#(]M[#->;ZO^W9
M^SE:7ATKPUXFO_$M\.ECX:T>>[=OHP4(?^^JT/"O[%O[,/A&475G\(M-O9\[
MGN-9+WS.W]X^>SC/T KT?2-#T7P_9C3]!T>UL;=?NP6=NL2#_@*@"CDXVQ>\
MJ&'7DJE=_>W02?\ VZUY,=LVJ;N$/OF_O]Q?@SQ[_AI#X^>+OE^%W[('B+RW
M^Y=^+]1@TL(.S&)MS-] <T?\(]^WCXU_Y"GQ"\#>"H'^Z-%TJ74;E!_M?:"(
MR?IQ7M=%'^K.+Q'^^YA7J>491HQ^3I1A/[YM^8?4*D_XM>;\DU%?^2I/\3Q3
M_ACO4?$_S_%O]I+Q]XAW?ZRSM]4%A9OZYAA'_LU;WA+]C;]F/P6XFTGX.:1/
M*#DS:K&UZY;^]FX+X/?BO3:*VP_!W#&'J*K]5A.:^U47M)_^!U'*7XE0RO+X
M2YO9ION_>?WRNR#3=+TS1K1=/TC3H+2!/N06T*QHOT"@ 5/117T<8QA%1BK)
M'<DDK(****H84444 %%%% !1110 5C^!_P#D$2_]?LW_ *%6Q6/X'_Y!$O\
MU^S?^A4 ;%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %8]E_R.][_UY1?S-;%8]E_R.][_ ->47\S0!L4444 %%%%
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
MCE67Q=W34GWE>3^^5V<SH9M/#%F-/\-?#$:=;CI!8V\4*#_@* "KW_"2ZO\
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
MX275_P#H4+W_ +Z6MBB@#'_X275_^A0O?^^EH_X275_^A0O?^^EK8HH Q_\
MA)=7_P"A0O?^^EH_X275_P#H4+W_ +Z6MBB@#'_X275_^A0O?^^EH_X275_^
MA0O?^^EK8HH Q_\ A)=7_P"A0O?^^EH_X275_P#H4+W_ +Z6MBB@#'_X275_
M^A0O?^^EH_X275_^A0O?^^EK8HH Q_\ A)=7_P"A0O?^^EH_X275_P#H4+W_
M +Z6MBB@#'_X275_^A0O?^^EH_X275_^A0O?^^EK8HH Q_\ A)=7_P"A0O?^
M^EH_X275_P#H4+W_ +Z6MBB@#'_X275_^A0O?^^EH_X275_^A0O?^^EK8HH
MYJ_U2\U'6=+6ZT:>TV7GRF8@[OE/3%=+6/XE_P"0OH__ %^G_P!!-;% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 <K\1_@G\,/BW=6%]\0O"RZA-I<<T=A(;N:(Q+,8S(!Y;KD,8H
M^N?N"N=_X8\_9S_Z)W_Y5[S_ ./5Z917@YAPKPOFV)>(QV!HU:C27-.E"<K+
M97E%NRZ'HX7.,VP-+V>&Q$X1WM&<HJ_>R:1\K_L7_ OX5_%GX5ZCXD^('A;^
MT+V#Q9J5E%-]NGBVP12[8TQ&Z@X'?&3W)KUB[_8R_9JO[66QO/AHLD,T;1RQ
MOJUX0ZD8(/[[H17*_P#!.K_DA^K_ /8]ZQ_Z/KWJN2GP-P32FIPRS#J2=TU0
MIIIK9I\NYM/B'/ZD'">+JM/1IU)V:^\****^I/("BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ KY=_:N_X)RZ1\7=>N?B-\)-6M=&
MUN[<R:AI]VK"TO)#UD#*"8G/?"D,><*<D_45%?/<2\+9'Q=ESP6:4E.%[KI*
M+[Q:U3_![--:'%C\OPF94/98B-U^*?=,_,JZ_P""=_[55EJ\.E7'@>S5;B7R
MXKO^VK8QD^N-^\#'/W:^D_V4O^"<ND?"/7K7XB_%S5K76=;M'$FGZ?:*QM+.
M0=)"S &5QVRH53S\QP1]%>)?^0OH_P#U^G_T$UL5\%P]X(\#</9C'&PC.M.+
MO'VLE*,6MFE&,4VNG->V^^IXV"X3RC!5U52<FMN9II?))?C<****_7CZ8***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K'\#
M_P#((E_Z_9O_ $*MBL?P/_R")?\ K]F_]"H V**** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Q[+_D=[W_KRB_F:V*Q
M[+_D=[W_ *\HOYF@#8HHHH **** "BBB@ HHHH **** "BBB@ HHHH *YKXL
M?"7P1\:?!MQX'\>:6+BUF^>&9#MFM91]V:)^J.O8]^0002#TM%<^*PN&QV&G
MA\1!3A--2BU=-/=-$5*=.K3<)JZ>C3/"_AS\6O&_P)\7VGP'_:2U0W5O=OY7
M@[QY(-L6IJ/NV]R3Q'< 8&2?F]2<,WNE8?Q%^'/@WXK^$+OP-X\T2*_TZ\3$
MD4@Y1NSHW5'!Y##D5X]X.^(GC/\ 96\2V?PA^/.LRZEX1O9A!X0\>7'6'^[9
MWS=%8#A9#P0.>,[/D:6*Q/"56.'QLW/!R:4*LG>5)O14ZS>\>D*K\HU'>TY>
M9&I4RV2A5=Z3VD]X^4GV[2^4N[]]HI%964,K @C((/6EK[8]8**** "BBB@
MK-\8_P#(L7O_ %P-:59OC'_D6+W_ *X&@"YIW_(/@_ZXK_(5-4.G?\@^#_KB
MO\A4U !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% &/XE_Y"^C_ /7Z?_036Q6/XE_Y"^C_ /7Z?_036Q0 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110!X+_P3J_Y(?J__8]ZQ_Z/KWJO!?\ @G5_R0_5_P#L>]8_]'U[
MU0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110!C^)?^0OH__7Z?_036Q6/XE_Y"^C_]?I_]!-;% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6/X'_Y!$O_
M %^S?^A5L5C^!_\ D$2_]?LW_H5 &Q1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !6/9?\ ([WO_7E%_,UL5CV7_([W
MO_7E%_,T ;%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5F>,?!O
MACX@>&;SP=XRT6#4--OX3'=6EPN5<>OJ"#@AA@@@$$$5IT5G5I4J]*5*K%2C
M)---733T::>C3ZHF48SBXR5TSY\T'Q3XN_8PURV\ _$[4[K5_AI>3B'P[XKG
MR\VAL3A;2[(ZQ=DDZ <=/E3Z M[BWN[=+JUG26*5 \<D;!E=2,@@C@@CO5;7
M_#^B>*M%NO#GB32H+ZPO86BN[2YC#I*AZ@@UX+;7OBS]AW5TTS69KW6OA)>7
M 2TOFW37/A5W;B.3J9+4DX!ZKTZ\/\5&=?@N2A5;GE_23NY8?RD]Y4>TGK2V
ME>G[T/*3GE3M+6CWZP\GWAY[QZZ:KZ&HJ#3-3T[6M.@U?2+Z&ZM;F)9;:YMY
M Z2HPRK*PX((Y!%3U]Q&49Q4HNZ9ZR::N@HHHIC"LWQC_P BQ>_]<#6E6;XQ
M_P"18O?^N!H N:=_R#X/^N*_R%35#IW_ "#X/^N*_P A4U !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &/XE_Y"^C
M_P#7Z?\ T$UL5C^)?^0OH_\ U^G_ -!-;% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 445^=G_  5G_:YTWX-?\%"_V:_@!^T_
M\0]7\$_L\^.[;7&\4:_I^LW&EVFIZ]'&B6%CJ%];O')#:*7#M'YB1R-*IFW1
M1M@ _0O2-7TGQ!I-KKV@ZG;WMC>VZ7%E>VDZRQ7$3J&21'4D.K*00P)!!!%6
M*^(/^"6?[)FK_"SX9?L\_'3X3_$/Q3:>#]?_ &<=-B\=>"+[Q9=WFDS:O+8Z
M3-9ZC;6EQ(ZVDH5;V-_("(PD3*Y7)^8_^"E7[>G[#?[1'_!1V_\ V&?VF?\
M@IC\8_V<M'^'5C:6FC:I\+/$,V@P>(==O,R7GV[4?LLT2V]M$MK#'YFQ%E>[
MW.-JY /U[HKX>_:0^(7A[_@A_P#\$>/'7Q?\ ?&CQS\5;OPUICW?AGQ3\5O%
M[:]J.JZGJ5S';V1EN J+);QO/"0D:HODQ$_>9G/CW[57PW^,'["7_!)K1/\
M@I!X!^*OBO5OCWX#T?0?%_CW7M=\3WD\/C$7$UM_:VF7MLTA@%D8[F;R8DC7
M[-Y$/D^65)(!^H5%<U\&/BGX;^.?P>\*?&SP:SG1_&/AJPUS2C)C<;:[MTGB
MSCC.R1:Z6@ HHHH \%_X)U?\D/U?_L>]8_\ 1]>]5X+_ ,$ZO^2'ZO\ ]CWK
M'_H^O>J "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** ,?Q+_P A?1_^OT_^@FMBL?Q+_P A?1_^OT_^@FMB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K'
M\#_\@B7_ *_9O_0JV*Q_ _\ R")?^OV;_P!"H V**** "BBB@ HHHH ****
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
MMO4^M:?V+QO_ -!NR_\  8_XT>)?^0OH_P#U^G_T$UL4 8_V+QO_ -!NR_\
M 8_XT?8O&_\ T&[+_P !C_C6Q10!C_8O&_\ T&[+_P !C_C1]B\;_P#0;LO_
M  &/^-;%% &/]B\;_P#0;LO_  &/^-'V+QO_ -!NR_\  8_XUL44 8_V+QO_
M -!NR_\  8_XT?8O&_\ T&[+_P !C_C6Q10!C_8O&_\ T&[+_P !C_C1]B\;
M_P#0;LO_  &/^-;%% &/]B\;_P#0;LO_  &/^-'V+QO_ -!NR_\  8_XUL44
M 8_V+QO_ -!NR_\  8_XT?8O&_\ T&[+_P !C_C6Q10!C_8O&_\ T&[+_P !
MC_C1]B\;_P#0;LO_  &/^-;%% &/]B\;_P#0;LO_  &/^-'V+QO_ -!NR_\
M 8_XUL44 8_V+QO_ -!NR_\  8_XT?8O&_\ T&[+_P !C_C6Q10!C_8O&_\
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
M_P#U^G_T$UL5C^)?^0OH_P#U^G_T$UL4 %%%% !1110 4444 %%%% !1110
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
MJ7B0*%D%BD(LX'XSAPK,[#Z.M?4&D:1I7A_2[?1-#TV"SL[2)8K:UMH@D<2
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
M !JC_AR%^R;_ -%&^*?_ (6Q_P#C5?8U% 'QS_PY"_9-_P"BC?%/_P +8_\
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
M[)O_ $4;XI_^%L?_ (U7V-10!\<_\.0OV3?^BC?%/_PMC_\ &J/^'(7[)O\
MT4;XI_\ A;'_ .-5]C44 ?'/_#D+]DW_ **-\4__  MC_P#&J/\ AR%^R;_T
M4;XI_P#A;'_XU7V-10!\<_\ #D+]DW_HHWQ3_P#"V/\ \:H_X<A?LF_]%&^*
M?_A;'_XU7V-10!\<_P##D+]DW_HHWQ3_ /"V/_QJC_AR%^R;_P!%&^*?_A;'
M_P"-5]C44 ?'/_#D+]DW_HHWQ3_\+8__ !JC_AR%^R;_ -%&^*?_ (6Q_P#C
M5?8U% 'QS_PY"_9-_P"BC?%/_P +8_\ QJN%_::_X)"?LT_"CX">*?B+X:\?
M_$F6_P!(TMI[6.]\8L\3,& ^91&"1SZBOT KCOV@OAG??&7X+^(OA?IFIQ65
MQK>G-;174Z%DC)(.2!R1Q0!\K^"?^"+'[*VO>#-(UR]^(GQ06:]TRWGE6+QH
M0H9XU8X'E<#)K3_X<A?LF_\ 11OBG_X6Q_\ C5?6WA+1I?#GA33/#T\RR/8:
M?#;O(@P'*1JI(]CBM"@#XY_X<A?LF_\ 11OBG_X6Q_\ C5'_  Y"_9-_Z*-\
M4_\ PMC_ /&J^QJ* /CG_AR%^R;_ -%&^*?_ (6Q_P#C5'_#D+]DW_HHWQ3_
M /"V/_QJOL:B@#XY_P"'(7[)O_11OBG_ .%L?_C5'_#D+]DW_HHWQ3_\+8__
M !JOL:B@#XY_X<A?LF_]%&^*?_A;'_XU1_PY"_9-_P"BC?%/_P +8_\ QJOL
M:B@#XY_X<A?LF_\ 11OBG_X6Q_\ C5'_  Y"_9-_Z*-\4_\ PMC_ /&J^QJ*
M /CG_AR%^R;_ -%&^*?_ (6Q_P#C5'_#D+]DW_HHWQ3_ /"V/_QJOL:B@#XY
M_P"'(7[)O_11OBG_ .%L?_C5'_#D+]DW_HHWQ3_\+8__ !JOL:B@#XY_X<A?
MLF_]%&^*?_A;'_XU1_PY"_9-_P"BC?%/_P +8_\ QJOL:B@#XY_X<A?LF_\
M11OBG_X6Q_\ C5'_  Y"_9-_Z*-\4_\ PMC_ /&J^QJ* /CG_AR%^R;_ -%&
M^*?_ (6Q_P#C5'_#D+]DW_HHWQ3_ /"V/_QJOL:B@#XY_P"'(7[)O_11OBG_
M .%L?_C5'_#D+]DW_HHWQ3_\+8__ !JOL:B@#XY_X<A?LF_]%&^*?_A;'_XU
M1_PY"_9-_P"BC?%/_P +8_\ QJOL:B@#XD@_8;^%G[%W[0'PMU;X2^-/&ET_
MB/Q;]DU*+Q!XC:ZC:*.%W "A5 Y/.<]!7VW7GWQC^#.I_$WQ[X \7V.M06L?
M@[Q"^HW,,T;%KA3$4V*1T.3GFO0: "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** .9^+WQG^$?[/_@&^^*?QQ^)FA>$
M?#>FINOM<\1ZI%9VL/H#)*P&XXP%'+'@ FMO0->T?Q3H5EXG\/7\=W8:C:1W
M5C=1'Y9H9%#HX]BI!'UKX8_X.5/AG\._&?\ P1R^-'BKQ9X%TC4M5T#P]:SZ
M%JE[IL4MSITAU.SW-!*REHBVT [2,@8.17U!\&/#5[XT_8I\)^#M-\3WNB7.
MK?"VPL[?6=-8"YL'ETU$6XB)X$B%@ZYXRHH Y2]_X*G_ /!.+3?CT?V8;_\
M;8^'$/CQ=0_L]O#LGBB 2K>;MOV4ON\L3[_D\DMYF[Y=N>*]]K\Y?^"T?_!.
MC_@GUX%_X([?$KPKHG[,/A#1)/"GA1?^%>76B>'HDU*+73)'#IZ13HOGRS7%
MU)%$^69YO/8-N+'/TOX,\>_$#]BW_@EYX=\=_M$SW&N>,OAS\%=.;Q3&T_FS
MZMK=MID220*W)DEGNU\M3U=Y!ZT =UXA_;!_9C\'_#+Q1\:/&OQIT30O"7@S
M7KO1?$GB/7[@V-G:7]M+Y,\ EG"+*RS9B_=E@T@:-274J(OV8?VT/V4?VTO#
M-]XP_93^/_ACQYI^EW*V^J2>'M329[*1@2JS1\/%N )7<HW $C.#7$_!W]D'
MX._"3]FGX;V/[3EMH>L:A\-](N-8US6/$4D9TY-?O,W&JZPR3'R5E:XFO'6=
MOFC6ZF"L!(^?DC_@E?>_L)?'[_@L=^TC^US^P]\8_"']DCP;I?A;4?!GA<BW
M_MF^CE2:\\0?9PJ*T =8;5)T#"23[0Y($B/* ?H5\<?VA?@7^S/X(D^)/[07
MQ<\/>#="CE6(:GXBU6*UCDE;[L2;R#)(W0(N68] :[&OS1_X.JOAE\.M;_X)
M<:M\3-7\"Z1<^(]&\:>&H]*UZ?38FO+2-]5B1XXYBN]$*RR J" =QXYK]+J
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
MO@9X4\<:O\0]5N[SQ?KWC'P_;7MU>0/E(+,R2HQ2WMK816\4:D*JQ;L;V=F
M/6_!7C?P9\2?"6G>/OAWXMTW7M"U>T2ZTK6=&OH[FUO('&5EBEC)21".0RD@
MUGR_%[X<P?$ZZ^#DWB9%\16/AI-?OK!H) MMIKS20)<22[?*C#213*JLP9O)
MD(!",1\,?\&TWPBUSX0?L&^+M/TW4KZ?X=:M\<_%5_\ !5+Z=I"GA+[1'!:.
MA;GRY98+F=3T<3>8,B3)]G_9K^&'@O\ :YT[XT_'#XGZ3_:GA[XJ^-FT'3+-
MY66.\\+:!*UA!;/@CS;6YNX]5NBA^26#4RC JY! .Q^!G_!3/_@GW^TS\6+K
MX&? #]L/P!XN\76BRLVA:)XBAFGG6/)D:#!Q<!0"6,1< #)XYKV?Q!XAT#PG
MHEWXF\4ZY9Z9IMA;M/?:AJ%RD,%O$HRTDDCD*B@<DD@"ORX_;7NO^":/Q[_X
M*^_LK? #X.?&'X;^$?BA\*?&TNO:W>:#Y-K-)9V\8$'AI98%$<MQ<W&W%JSY
MCBBN. TJI+^B/[57PR^'7Q:_9Z\7^$?BAX%TCQ#IC^';Z3[!K6FQ74(D%M*!
M($D4@. QPPY&3@T ;OP@^,GPJ_: ^'EA\6_@E\0-*\4^&-5>==,U_0[Q;BTN
M_)GD@D,4JY611+%(NY20=N02.:D\?_%7P%\+I=!@\<Z]]BD\3^(8-#T&);66
M9[R_F61TA58E8CY(I79B B)&[,RJI(^-/^#9W_E!Y\!_^P9K7_I]U&O9O$XD
M^-W_  4:T+PS X?2/@?X&FUZ[)7<@\1:WYUC8D?[<&G6VJ[EZ[=4B.0&&0"Y
M\6?^"I'_  3H^!'QD7]GSXQ_MI?#KPWXR,L<4^@ZMXF@BEM9' *)<$MMMF((
M($I0D,#T(S[Q!/#<PI<VTRR1R*&CD1@592,@@CJ*^+/VP?\ @FW_ ,$[?AY_
MP32^)_@_XN_!;PM<Z5IO@'5]8\2>.M7T>W;6;K4TMI9Y=9EO2GFM?//F7S-V
M2[; -I"5U?\ P1@^%'Q:^'O_  23^"/PI_:;M9[KQ#%\/8HM6T[6H_,DBLYF
MD>VLIT<=8K22&!HV'R^65(XH ]Y^'W[0OP+^+/COQ3\,?A?\7/#WB+7_  0]
MM'XOTK1=5BN9=&DN/-\F.Y$9/E2-Y$IV-A@$R0,C/8U^:_\ P1V\">"OAI_P
M5Q_X*&^"_AYX3T[0]'M/%W@1K32])LDM[> R:5?2OLCC 5<N[L0 .6)K]**
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@#CO'_[0OP+^%?CCPU\,OB-\
M7/#VC>)/&5]]C\*>']0U6*.^U:;!)6W@)\R4 *<LH*KCDBNB\5>*_"_@7PU?
M^,_&WB2PT?1]*M)+K4]5U2\2WMK.!%+/+++(0L:*H)+,0 !DFOS@_P""N7PS
M^'>B_P#!63]@CXE:+X%TBS\0ZK\7-9@U;6[338H[N^C73K?8LTJJ'E"[0%W$
M[1TQ7W?^T3^S?\-_VH_"NE?#KXQ:8FK>%K3Q#;:IK/AB[C$EEKHMUD:&UNXV
MXE@6X,%P8SE7:V16#(64@'(_LV?\%)/V"OVPO&%]\/OV8_VM/ _C77=.B:6Z
MT;1-<CDNO*4X:5(B0TL8) ,B!E&X9/(SZSXX\:^%?AKX*UCXC>.M:BTW1- T
MNXU+6=1N,^7:VL$;2RRM@$[5168X!.!7YL?\%2OV(_A%IW_!13]B3QK^R)\,
M-%\'_%=?C0)]6O/".EQ6#7/@RQ@^T:P;H0*H>)8S% I?_G],8/[W!^M_^"A?
M_%Q_"?@C]D&T^>3XQ^.;31]<A'/_ !3MHKZEK.\=HYK.T>Q)/ ?4(QSD"@#H
M/C__ ,%"?V*?V5?!OA[QY^TG^TCX9\#:?XKMDN/#J>)[LV=U?1,BON2UD43_
M "ATWY0;"P#[2<5Z-\+_ (I_#7XV^ -+^*OP?\>Z1XG\-:W;"XTC7M!U".ZM
M+N/)&Z.6,E6P05.#P00<$$5Y!^U>_P#P3[_9D\-^,OVK_P!LJ#P78V.K:9'9
M:]KGC:UBO7N;.*$JFFV\<JN[QG]ZXM(5(>2:5]A9V)\%_P"#<#X;_"'P%_P3
MC_M_X&?%'2_$/AKQI\1==\3:9I.D7YN(O"<%U,GD:(V?F2:W@2$RH0,2RR$;
ME*NX!]C>(/VA?@7X4^+^@?L_>(OBYX>M/'/BF*>7P]X0EU6+^TKZ*&%YI94M
M\^88UCC=BY&T;<9R0*[&OS1_:X^&7PZ\&?\ !R1^QUXN\(>!=(TK4_$/@OX@
M2:]?Z=IL4$VHR)I<I62=T4&5P99/F;)^8\\U]\?M)_&O1OV</V?_ !E\>==L
MI+NW\)>&[O4Q80_ZR]EBB9HK:,#DR2R!(D Y+.H'6@#+\2?MB_LP>"OAMXI^
M,?CKXV:'H'A3P7K]SHGB3Q%X@N#86=KJ%NXCFMQ+.$65EE/E?NRP,@:,$NK*
M*W[+_P"V_P#LB?MJ:-?Z]^RE^T5X4\>0:5*L>JIX>U9)IK(MG9YT7$D0;:VT
MLH#;3@G!KSKX-_\ !.;X9R?"#X0>'OVF= T[QGJGP_TJ]U/5-)UBRCNM,O?%
MNINMSJ.M/!(&1YQ<27QB9@?+%],1EB&'S,O[(/P^^&?_  <F^"?'W['W@G3_
M  E:0_ 74]1^.]AX8LTM+"YCN+B2VTOSXH@(Q<33Q^9C 9UL-^#M+$ ^ROVG
M/^"B?[#/[&.N:;X7_:F_:H\%^!]4U>+SM/TO7=92.ZEAW%?.\D9=8MP(\Q@$
MRI&<@UZCX%\>>!_BAX.T[XA_#7QAI?B#0-8M5NM)UK1;^.ZM+R%AE9(I8R4D
M4]BI(KRE/^">W[(VLZMXX\5_%CX&^%O'.N?$/4[BY\5ZYXQ\/VU_<W=NP\JW
MLM\R,4MK>V6.".-<* A?&]W9OES_ (-K_@YJGP<_8W^)%AX<U"]E^&&J_M!^
M++OX'Q7EPTN/"B7*6UK+&SG/ERR03R#LVXR#/F9(!^A]%%% !1110 4444 %
M%%% !1110 4444 %%%% $5]?66F64VI:E>16]O;Q-+<7$\@1(D499F8\*  2
M2> !7,?!KX[_  8_:(\*3>._@1\4-#\7Z'!J=QI[ZSX=U&.[M3<P-MEC66,E
M'*MP2I(SWK7\:>!O!/Q(\.7'@[XB>#]*U[2+O;]JTK6M/CNK:;:P9=\4JLK8
M8 C(X(!K\^_^#7#3+#1/^"7\^C:7;)!:VGQ=\5PVT,8PL<:7Y55 [   4 ?6
M'[37_!1C]A3]C3Q%IW@_]J3]JOP5X(U?5HA-8:3KFM)'=20EBHF,0RZ1%@P$
MC (2I&>#7JO@KQOX,^)/A+3O'WP[\6Z;KVA:O:)=:5K.C7T=S:WD#C*RQ2QD
MI(A'(920:\D'_!/']C_5KCQSX@^+7P,\*>.-7^(>JW=YXOU[QCX?MKVZO('R
MD%F9)48I;VUL(K>*-2%58MV-[.S?,?\ P;3?"+7/A!^P;XNT_3=2OI_AUJWQ
MS\57_P %4OIVD*>$OM$<%HZ%N?+EE@N9U/1Q-Y@R),D ^YY?B]\.8/B==?!R
M;Q,B^(K'PTFOWU@T$@6VTUYI($N))=OE1AI(IE568,WDR$ A&(\P^!G_  4S
M_P""??[3/Q8NO@9\ /VP_ 'B[Q=:+*S:%HGB*&:>=8\F1H,'%P% )8Q%P ,G
MCFN._9K^&'@O]KG3OC3\</B?I/\ :GA[XJ^-FT'3+-Y66.\\+:!*UA!;/@CS
M;6YNX]5NBA^26#4RC JY!^4/VU[K_@FC\>_^"OO[*WP ^#GQA^&_A'XH?"GQ
MM+KVMWF@^3:S26=O&!!X:66!1'+<7-QMQ:L^8XHKC@-*J2@'ZC^(/$.@>$]$
MN_$WBG7+/3--L+=I[[4-0N4A@MXE&6DDD<A44#DDD 5C?"#XR?"K]H#X>6'Q
M;^"7Q TKQ3X8U5YUTS7]#O%N+2[\F>2"0Q2KE9%$L4B[E)!VY!(YK"_:J^&7
MPZ^+7[/7B_PC\4/ ND>(=,?P[?2?8-:TV*ZA$@MI0) DBD!P&.&'(R<&OE7_
M (-G?^4'GP'_ .P9K7_I]U&@#[+\?_%7P%\+I=!@\<Z]]BD\3^(8-#T&);66
M9[R_F61TA58E8CY(I79B B)&[,RJI(\F^+/_  5(_P""='P(^,B_L^?&/]M+
MX=>&_&1ECBGT'5O$T$4MK(X!1+@EMMLQ!! E*$A@>A&:?B<2?&[_ (*-:%X9
M@</I'P/\#3:]=DKN0>(M;\ZQL2/]N#3K;5=R]=NJ1'(##/F'[8/_  3;_P""
M=OP\_P"":7Q/\'_%WX+>%KG2M-\ ZOK'B3QUJ^CV[:S=:FEM+/+K,MZ4\UKY
MY\R^9NR7;8!M(2@#['UGQ-X;\.>'+KQCXA\0V-AI%C9/>7NJWEVD5M;VZ(7>
M9Y6(5(U4%BY(  R3BO(OV;/^"CO["'[87C#4OA]^S!^UAX(\;ZYI,+37VD:#
MKD<MPL*L%:94R#)$&*@R(&0%EY^89\A_X)4?LL^)M9_X([_ GX!?MM^'Y]:O
MK/PEI]WK/A[7BS*T*3M=6%E>1-_K%@A-JC02 KFW"NI *GY[\4ZW_P $X?VG
M?^#@?X'2_LP_&_X>Z-XY^#7A3Q%-XT'AF6*";Q7)=6JV]EHT$D2B*[>VC-[<
M3*&8QQL$ .7\H _4VBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@#XA_P"#C[5=,TK_ ((I?'AM3U"&W%QX>LH(/.E"^9*VIV@5%SU8
M]@.:^BOV<?B%X#\/_L5> _B=KOC/2[+PY8_#/2[^]UZZOXX[.WM8[")WG>8G
M8L:J"2Q.  <UVOCGX4?"WXH"U'Q+^&N@>(A8[_L0UW1H+O[/OV[]GFJVS=M7
M.,9VC/04W3?A'\*-%\'W/P\T?X8^'K3P_>%C=Z';:+!'9SEL;B\*H$;.T9R.
M<#TH _.2U_X+1_\ !)C]J3XT:?\ &#X[?MM^"-)\$?#S77NOAMX)U*XE\[4M
M4AWQKXAOXQ&=I0%_L5L>8PYN91YS0QVOT%XX^/\ \.O^"@-]^S[X*^#5S>7O
M@WQSXEN/B#J-S>V+VYO_  YX<N4DM;@1OAEBN-7DT62,2!3)!O)4<J/>_P#A
MD_\ 99_Z-J^'_P#X1MC_ /&JZC2/ '@3P_J-MK&@^"M(LKNSTE-+L[JTTV*.
M2"Q1MR6J,J@K"I (C'R@C(% ''?&G]L']EG]G#QMX6^'7Q^^/_A3P9K/C9[A
M/"EEXEUF*S.I-!Y?F+&TI"Y!EC&"1DNH&2<5\<1?L\_"7XK?\%^?!O[7?[(R
M:2]OX2^%6MV?QW\2>%C&;#4+VZ,<>EV,\L'[N:_(::X=23(D-M;%\!H=WW-\
M4O@=\%/CEIUMH_QK^#_A;QA:64IEL[7Q3X?MM0C@D(P719T<*Q'&1@UL>%/"
M'A/P'X?MO"?@;POIVBZ59ILL],TFRCMK>!<YPD<8"J,]@* /ST_X.J-<T;1O
M^"0GB*+5M5M[9[GQUX96V2>95,K+JD$C!03\Q"([''0*3T%?7W[:WQNUKX1_
MLF^)OB%\*KVWNO$VJV5OHWP^9) \5SKFJ3Q6&EX(SN0W=U 21GY QZ"NZ\;_
M  ;^$'Q,O(-0^)'PJ\-^(+BVC,=M/KFAV]V\2$Y*JTJ,5&><"I;+X4_"[3=!
MTWPMIWPVT"WTS1K];[2--AT>!(+&Z5V=9X8PNV*0,S,'4!@6)SDF@"E\!_@_
MX7_9\^"?A'X%>"@YTGP?X;LM&T]Y?OR16T"1"1SW=MNYB<DLQ)))KX)_9G\5
M^&+G_@YO_:1T6W\0V4EY_P *%\,Q?94ND,GF1O"TB;<YW*'0D=0&&>M?I%7%
M:3^S;^SKH&M0>)-"^ ?@JRU&UN%GM;^T\+6D<T,H.1(KK&&5@>00<YH ^3?^
M"FWB_6HOV_/V2/A=\9+I;+X"^(?%6MR^+YKQMFFZEXFMK$2Z!8W[G"^6;C?-
M#$YV37$,>0QC45YS\.?V-_#7[%G_  7XT.^_8/E&D>"_BM\-];U;]H7X<Z,P
M&EZ'/;F+^R]2\E?DM9+NYE=(HP <0790;&D _1SQ9X0\)^/O#MWX/\=>%].U
MK2+^+R[[2]6LH[FVN$SG;)%("KC('!!'%9_PW^$?PI^#>B/X:^$/PQ\/>%=.
MEF,TFG^&]%@L8'D(P7*0HJEN!SC- '0T444 %%%% !1110 4444 %%%% !11
M10 4444 ,N;FVLK:2\O+A(H8D+RRRN%5% R6)/  '.:_.3_@UN\1:#K_ /P3
M2U0:)K-K=F'XQ^*C,+:=7*![WS$S@\;D96'J""*_0_Q1X4\+>-]"G\+^-/#6
MGZOIEUM^U:=JEFEQ!-M8.NZ.0%6PRJPR." >HK)\$?!CX/?#.^FU3X<?"?PU
MX?N;B'RKBXT30K>TDECR#L9HD4LN0#@\9% 'PO\ MR_\%=O^">_BGXR:[^P)
MX\_;8\*^"= TQ/L_QAU[^V&2YN8VRLGAZP>$$I-(H*7=R"#;Q,8HS]HD+VO>
MW?\ P4U_9<^*'['?C^/_ ()L>,]/UY_"-AI'@KP-?Z#I;P:/;^(=5==.TFPM
MRRH'\B26TDE6-=D<,B?-]X+]*WG[+7[,FH7<M_?_ +.?@2>>>1I)IIO"%DSR
M.QR68F+)))))/6M71O@I\&O#FEV^B>'OA)X8L+*SU9-4M+.ST&WBB@OE4*MT
MB*@"S!0 ) -P QF@#C+CQ)^S9_P3A_9(T.W^)?Q%TWP?\._AUX?TO0UUW7;C
MRXH8D$-G 9&YR[N4!/)+.2>YKXR_X+2_#O\ 9H_X*.?"OX2>$OV9?&?A/Q?\
M9;GXG^']2^%_B7P;J5M?7FEZ=%>QR:CJ+W%LS-%I\5KYDKN2(S,MNHS*T0/Z
M*^+?"'A/Q]X;O/!WCKPOIVM:1J$7E7^E:M91W-M<QYSLDBD!5UR!P01Q6/\
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
M&:U?%OA#PGX^\-WG@[QUX7T[6M(U"+RK_2M6LH[FVN8\YV212 JZY X((XH
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
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M7O@?HOC_ %36X+/75*XO[&&YTNUAM4D1662.,J#O+88JFSX_\1?"_4OV&O\
M@H=XU_X(Z^(/B]&WPJ_:NO\ 2M1\'_$#7_$MQ=:UX)@,EPTNA1S2%W2YG:V>
M&PDD=0CLLP,TJ/&?T0_97_9U_P""C^D&[^,_[='[1?@+QS\0=+T.XL/ /ACP
MAHD^F>&M*FE"^;>W#LIN+JYDV)'OV((8C,D:CSW->=?'K_@DQ\0OVH/^";GB
M_P#9K^-^N^$-2^,_C#Q4?$]Y\4[6>[A2WU])@;34X,1F:#[-;+':16R-M6"(
M1^9AF- %3_@O!\&O"WP>_P""(?Q-T7X,ZUXE\'P^ O#$$OAT^&/%^HV3#-[
MDBW#13@WJR+)*'6X,@8R,YR^&'-_M_:]^TCX*_8V_9<^-_@?]G+6_C5\+_"5
MC87_ ,<?A9H#&6]US3I-#$5O<&WY^W16T[FX:V8.DCI$74*ADC](_:9_8E_;
MZ_:T_P""4VL?L%?&3XM_#J^\>^(M'M=&USXEQK>I!=V\,L$IO&LQ%G[3)Y15
MU$@CW,9!@'RAV+?L]_M\>#?#WP(U7X5>/OAW%K'PO\+W>@>.?#VIW5^-+\6V
MCV]C$ACF2$R64@>S$RN8IO+)V8E5F) .1_X(Y_&']@7]HFS^)'QX_P""?WQ%
MN6\/^(;[2_[=^&NHP2VMQX)OX8)HVMQ9R.5M()0 ZQP_N/,2<QLWS!?+/^#J
MKQGK6C_\$R-)^&%A>RP:?\2?C)X:\,>('B<J38O+-=LI(Y +V<8/KT[U]$_L
M;?L%ZI\%/VM/C-^W1\1;'PSHWC#XS)I%OJ'A3P1-+-IFFPV$+IYK7,L-N][=
M3R2-)),8(0 %4*3O=\S_ (+<_L.^*O\ @H%_P3E\<? _X9A?^$WT_P"S>(O
M99PN[5K"43Q0@MPK3()8 Q("F<,3@&@#S[_@Y=T_Q=#_ ,$.OC;I_P -[:2-
MX--T87,-DN"FGIK-A]H  Z(( ^[ML#5[G_P2?O/"M]_P2_\ V=Y_!4D+::/@
MGX82#R2,!ETNW5P<?QAPP;ON#9YKJO@SX_\ A5^WM^Q_I?BKQ#X8M]2\-_$/
MPD]IXI\,ZG 1Y+RQM;ZAI=U$V&CEAE\^VEC;#(\;J<$5\O\ [*?[ 7_!17_@
MF3I]S\!OV+OC7\.?B/\ !%-1GN_"?@[XQSZCIVK^$XYI&D>SM]2L8;A;J#>[
MN!+ K L<$<[@#[TDMX)9$FE@1GB),;LH)0D8)![<'%?F)_P2._Y3I_\ !13_
M +#O@W_TDO:^X_AU\+?CY<ZXWQA_:!\7>'M9\46.GSQ>%?"7AQ;BST+1WD7#
M.TTOFS75S)@1F[:-1'$62*W3?,9_D[]FC_@G/_P49_9?_;A^/O[:'A'XD_!7
M49?CUJEA=:CX>U2UU<C2$LEF2WCCGCV^:=DQ#LR#<5! 3I0!S_\ P=IZEX)L
MO^"+?C.R\4O -0OO%WA^#PPLN-S7POXY&$?JWV6.[/'\(:OMK]CFS\5>!OV*
M?A7I_P 8+IK36]'^%NAQ^*9M1DV&&[BTV 7+2LQ^7#JY8GI@YKY[\4?\$I_B
M!^UW^TEX0_:._P""EW[0&F^/=-^'6H_VEX ^#W@SPR^E>&-.OP1MO;S[1<7$
M^IS#:I'F-'&,%?+V,ZMUW_!07]FO]M_]K&[T?X4?#+QS\.M'^$O]M65S\0/#
M^LF_.H^,].BD22?2)9X4VV=I/AHI0BRM(G#$(\D3 'Y;^&=2^&G_  3E_P""
MI7A;]N_4/A7J.F_L3?'?XEW<_@674=0D72_#WBI[98(?%0L<+';6UQNO#:F3
M)%G(\Z!!'"@_<_XJ:3\-/%/PJ\1Z%\7HM-N/!^H^'[N#Q.FK2JMG)ILD#K<B
M9B0!$82^XD@;2>:\=_X*3_L:O^W1^PCXR_9!L/#7A5)_%>BK96$^O23"TT*X
M4!H+V$0Q%GDMY5C>-!Y8;;AB%RK>._LZ_L"_M^>$_P#@EYXX_P"";W[2G[1/
M@KQA-J/PIUGP=X(^(5A!>PWMG'=6,MI:I>1N")E@64 2HZOLB12K-EZ /D?Q
MM_P3M_X*Q?\ !""_UCXR_P#!(_XI3?&'X#P7$VJ:[^SYXV9KB\TR#)>8V)!!
ME(7<=\#1S,=H>&Y*DG](_P#@F?\ MU_"C_@H_P#L;>%/VL?A!X<FT.QUY9XM
M2\/7+*TFE:A#*R7-NS* ) ) 660!=Z.KE5+%1R&@^#/^"PGP_P#A?;_"&R^)
MOP-\<:I:Z<+*V^+?B*WU72[T[4"+=W&C01W$-S/_ !,$O8$=N=J XKH_V'_V
M2_@A_P $F/V%K'X-0>/2_A_P5IU]K?C#QGK:K!]KN'9[J^OY54E84SNVH"=D
M:(N6*[B ?+'_  ;^^)=5T+]HG]NK]G&VD;_A'?!O[4VKZAX?@SE+4:A-<&2!
M/[J+]E0[1P"Q/4FOTMKXH_X(??LO^-_@_P# WXA_M.?%_P ,W6C>,_VCOBSK
M7Q(U/1-1B\NYTBPOIV;3[&9>J2)!B1D.&1KAD(!0BOM>@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@#/\4^%?#GC?P_=>%?%NBV^H
M:=>Q&.ZL[J,,DB_3L0>01R" 1@BOE[QW_P $G/AKK6J27W@#XE:GH4$C%OL5
MW9+>I'_LHV^-L?[Q8^YKYW_X*%_\%"_VP?@;^V#XO^%OPM^+W]EZ#I?]G_8;
M'^P-/G\KS-/MIG^>:W=VS)([<L<9P,  5XO_ ,/9/^"@/_1??_+5TK_Y%K[_
M !WT6JOB'E6&QN80PU2-2$9P<I58S49I22<H4TUOJE)J_?<_ N(_&7@"AFE?
M 8_"5ISH3G3;486O"3B[/VL96NM+V\TC]%/@O_P31^"GPQUB'Q+XNU&Z\5WU
MLX>"._A6*T1@<AC"N=Y]G9E_V:^C0 H"J, = *_%[_A[)_P4!_Z+[_Y:NE?_
M "+7VC_P2%_:R_: _:A_X6%_PO3Q_P#VY_8?]D_V7_Q*K2V\CSOMOF_\>\4>
M[/E1_>SC;QC)SG7^COB/"[AJMC,+'#TZ,.5R5.51SDY24$VY03E9R7Q2T5[=
MCU."_%G@K/<YI9-E>&JTYU>:SE&"C[L93?,U4E+:+2T>O9'VA1117PA^TA11
M6/X\TWQOJWA:ZL/ASXKL-$UAT_T+4M3T=K^"%O5X%FA,@]A(I]Z -BBOS6_X
M)@_\%L?B3\7_ -M/X@_\$V/^"@^D^%M ^)NA>*]7LOASXG\+:7=6&C>-+73K
MN>SN4MTNYI7$Z2VL[@!R'59%PK0G?].?MU_%G]J+X2>-O@[8_ 3QWX1T_3_'
M_P 5K'PGK]OXE\(SW\D%M-9WUU)<6\D5Y !(!:! KJR_O-W\." ?1M%16$5Y
M!8PPZA=K/<)"JSSI%L$C@#<P7)V@G)QDXSU-2T %%%4_$$&O7.AW=OX6U.TL
MM2>W=;"[O[%KF"&4CY7DB26)I%!P2HD0D<;AUH N45\5?\$./VLOVF?VN_@3
M\6?$O[5?CW3_ !#XA\'_ +0?B3PC97>E:%#IUM%8V$=FL<<<4>3MWO*^9'DD
M_>8+L ,?:M !1110 45RWQO^-/PV_9S^#_B7X\?&'Q+%H_A?PEHUQJFN:E,"
M1#;PH78A1R['&%1<LS$* 20*^5_V.?C=^WW_ ,%(OA98_M::/XRT;X%_#3Q1
MNNOASX77PG'K/B+4M,WD0ZAJ-S<2_9K<3JOF);0PL5C=29VR, 'UEX:^%_@3
MP;XJUOQGX4\/QZ=?^(YDGUTVDKI%>W"J$%P\(/EF<H%1IMOF.L<:LS"- N_7
MS%\(OBM^W=X8_;WM_P!F#]HR#P9K/@6[^%.I^(?#/CSPKHUQ8RZM>VVI:9;2
M6]W;2SSBVEACO ?W<ACF$^\!-ABC^G: "BBB@ HHHH **** "L'QW\,O _Q-
MAL+/Q]H*:I::=?QWL&GW4SFV>>-@T3RPAO+GV.%D02*P21$=0'16&]10 45X
MQ^S+I_[0W[.?[--_JG_!0?\ :@\.>--<T2ZU34]9\=VF@0Z'8VNE+(\L0DC3
M"((8!\SG' Y+E3(W:?LZ_'#PE^TS\!?!O[1'@&&YCT/QQX:LM<T=+V/9,+6Z
MA6:+>O\ "VQUR.QH [.BBL7XD:YKOACX=Z_XE\+Z1)J&IZ?HMU<Z=816[RM<
MSQPL\<01/F<LP"A5Y.<#F@#:HK\PO^"DO[9O_!8C_@FE_P $YC^VM\3/B]\"
M=;\36USI-OJO@;3OA#JD5M:3WDBQR1K?-KS-+Y18_-Y";L=%ZU].Z<O_  5)
M\#_%?X:ZWXG^+OPJ\>_#[7-;%IX]T_0?A-J.CZKI=M+93O#=03-K%Y&Z+<K
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
M+C^*5]XYT34]'\)7"-I^H/?VETBW4IN%6:"0648>%(%,3R,RR2A56NX^.O\
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
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
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
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
M$GC&\LCI$'Q+T]]/B83W5A+,;NY(?=.MQ?0I(6E5T:0;7'=Z+_P0+_:4UO\
MX)P_M#?L(_%+]KSPQ+_PN/XI7WCG1-3T?PE<(VGZ@]_:72+=2FX59H)!91AX
M4@4Q/(S+)*%5:[CXZ_\ !-'_ (*A_M/^)_V>?CM\7?VP/A):?$'X)^-1JILM
M$^'UZ=#EA:W$4UPRO<BXNKIB@.P/:P!6*A5*[V -GX*>)-$_X*7?\%*OVD?A
MI\?K<ZW\./V?+O0_"_A+X=W4[?V9>:C=6TUQ?ZK?VP.R\FWHL$ E#)$D;LBA
MY&:N3_X(Y^%(OA1_P5;_ &]/@)X8\0ZW-X2\&:E\/K?P?HNK:Y<WL.B6EQI^
MJ7CVEJ)W<PP++/)MB7"J, # KH?B?_P2[_;H^"7_  4$U_\ ;T_X)I?M/^!]
M%N/BCI.GV7QD\&_%CP]<W>FZM<V<0ABU.)=/:)A/L!;RU:$!WE._;*47E_\
M@CMH'B_PQ_P6#_X*$Z)\0/'3>)M;AU+X:'5=<_LZ.T6ZG;1;]V,<$9(AB!;;
M&A9V5%4-)(P9V /OG]I/_DW3Q]_V)6J_^DDM?ES_ ,&\_P -?^"AOBG_ ((?
M?#J;]F;]K+X9^$K*Z;Q$/#]CXE^#EWJMU92C6]05M]VFLPQN&EW.";4[ 54K
M)M);]/OVF_"GQ7\?? SQ+\/?@POA]-<\0Z-=Z9#>^);N>.UL5GMY(_M!6&)V
MG*,RGRLQAAG]XN,'Y _X)P_L(?\ !3C_ ()P?L8>'/V,OA_\3_@1KMAX7DU!
MM+\0:SH^M>=F[O9[QC+#',BR;9+A@ K1Y50,@Y:@#PO_ (-Y/$/@[X7_ +1G
M[3O_  3Z_:#\$ZU:?M-Q:_)XB^,7CX^)S=1^-8I9"$OK.6&&W>QB0WZ21Q;=
MZB]#A]V4C/\ @GG^T3XF_8S_ &=?^"DGQL?7]?\ %LGPB^.OC&3PS'XM\07>
MJW#I8V2BSMI;FYD>:1 4B1G9RVT$DD\U]5_\$]O^"5=_^QI\8_BM^V?\8/C5
M_P +6^.WQ>D#>(_%$VDC1].M;=,-%IUI C3M! "D*%V:1BMO%A1L(;%_8<_X
M)B?%7X-2?M.>"_VJ=4\$>+?!G[2WCG7/$NM:9H,MY')8+J:-#/IY$L8$T?DO
MM$P:-@4SL._Y #S#X4?L1^%_VN?^",WAW]IGQ%XYUV?X_>,/A+'XZLOC;;:Y
M/#KVG>(9[,W\2P7,3JT%I#*RP"SCV0"%"@0'YJ^2OVP/BS!_P4M_X(K?L5_M
MN?M%>%([WQ]JO[0'AWPSJ^JB66%;B./5-0L;N6..-ECC-R;))79%4AOE4A5
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
M3>&?VG?'_ASP?X@$LTD.AV<=O:1P?Z.THAD2(.3AQD@8+>G@G[94WAS]G?\
MX)L?#?X^?LW^(O$WCSXG^!_BQHTGB+]KW25:Q@\57\^J-%>6ZW=Q<?:]9M',
MAA 1)[+;"5$@*^77W!\ /^"1G[17PATC]IC]G.^_:B\/Q_!CX]>*?%_B"TM]
M)\+2CQ'8W7B"Q:TEBDNI)_)6"W!21/+C\R62%"9(T+Q-Y/XV_P""*O\ P4G^
M+W_!+?1_^"<WQ+_;(^%MO;?#RYTA?A[=Z!X(NT_M*WT^Z1X#JTTTKD;(5VJE
MK"A+HADED!8, >A?\%Q_^3JOV"_^SK--_P#11K]$Z^(OVXO^"?W[9?[5OCC]
MF_QQ:?%SX?2:A\#?B%;>-M=O=0TZ[M(_$&H(X+6=O;Q"7[#;*FY$9Y;B7!3>
M79&:3[8L'OI+&&35+:*&Y:)3<0P3&2-),#<JN54LH.0&*J2.<#I0!^37[2T7
MQTE_X.H-#_X9TO\ PG;^*%_8_D:T/C2RN9["0#5;WY'%M)'(I+;1O!.T9^5N
M!4__  1<T71OVX_V[_B/^W1^WKKMZO[7'PBN+CP5J/PO>S2STKP'IC-,L,VF
M1;Y);F*>.6X'VF25\F:; *R1R-[IK?\ P3S_ &S]2_X+$:?_ ,%4(/%7PS6P
MT[X;MX)C\ M?ZAYLM@9)9O.-]]FPLOG2EL>05"C9R?GK;_;9_P""87Q7\>_M
ML> _^"D7[!WQ@T'X<_%SP];-HWC<>(-+FN=)\:Z$5&+2^B@979T*JJR [@NP
M[@T$)4 Y7]I/XH_$W]I?_@K7=_L(Z;\._"WC#P=X#^"-MXLU'P-XQ\<W>B6&
MM:A?:B]O]IN%MK"\^WQ6\,<:)!*HB62Z>1@SI$4Y'X0_\$TOVFO@OX0_:C^'
MG[1%SX-F_9N\>>%I]5\ ?"/2/B)K&M2>%;^.V+W,$<MS96FVREDWR>0I*+MC
M4)C>6[']O3_@ES^US^T#\;OAU_P4,_9$_:'\.?"3]I#P1X?DT#6)3!-J'ASQ
M'I+322"SN \0DV!I'<$Q/]_'WHHI5]H_9C_94_:CE\)^)?%?_!03]H+1_''C
M[Q5X=FT!(O!.B'3M$\-Z9(#YL%C'(3+++,^V26XE^9_)@0*JQ#< ?G5^QO\
MLT?!/2/^#4W6?C]I7@PVWC-O@-XHU:+Q%#J5RMQ;7UG-J3VUQ 1)BWD0HOS1
MA21D'(8@]%_P4QN-1NO^#3/X?_'A];U%/&WA_P""WPVO-'\6P:E-'J-M-=RZ
M)!=.+A6$A\V.5U?)(?()R0"/IC]B+_@E1^T1\%_^"<7BG_@F5^TQ^T=X7\0>
M!+GP/KW@_P *77@_PI+:7J6.IM<,U[>R7$[B2XC^T%8XH5CC4!M[3L5:/Q[X
MC_\ !'7_ (*@?'S_ ().W'_!+CXR?M:?"6VT7P_I.@Z%X+U#PQX9OTEU+3M.
MU"SDBDU66=GP8K6V(2"VB0O,L1>X"!PX!:_X+"^!?$NK_MX_L*0>%/C3X[\-
M'QK\0;S2_$$>C>+[U;5X(]/A8216C2FV@N0KS!;E(Q(#+N)8HH'G/_!7K_@G
MY\/?^"?W[+7PJTS]EOXW_%W2%\3_ +87AR6YBU7XH:GJ-O"E^TGF0?9IY6@G
M19+:&56N$EEW*VZ1@[ _47[67_!/7]M[]H/XP_LR?%BT^+WPQFOOV>M??6=0
MN[C2-0LE\47$L44,D:VZO<?8$$4;*&\ZX)=]^% \L]5_P5F_85_:*_X*"_#7
MX:_#SX5^+/!GA<^"OB=HWCC4+W7Y;NY^T76G^<4LHTBB7]VS2Y,Q8-A<>6,Y
M !\X_M5?L_\ AW]@7_@L#^Q]\3OV>O'?C>+4_C%XI\1>'/BQ)XA\<:CJB^*H
M!812127$=U,\:-'([.JPK'&A"!458U Z;_@ZHUG5?A__ ,$Q=,^//A6Z^S>(
M?AI\9/"_B?PS>*<-;W\%P\<;J>H($S=/>O6?VX/V'/VLOVK?VIOV<_VD/"NL
M?#S08?@1XDNM=NM%O]4OKEM:GNH88IK=9EM4%NBK&X60I(6+ABB[=AP/^"S?
MP6U#]O'4_@C_ ,$XM#MA./%'Q*L?&'Q/\D[XM,\(Z2'>Z>5L#8;BYDMK:#<!
MO<N0"(WV@'W/IMY_:.G6^H>2T?GPI)Y;]5W '!]QFOS'_:#_ .5LGX#_ /9K
MFI_^E>L5^GU?"'Q5_P"">/[9GCK_ (+ ^"_^"HVC>+/AI;Z=X(\ S^$+3P)<
MWNH&6^LI'O':=[U;?$4Q:[R (751&%^;):@#R#XG? K_ (6)_P '+5]\"M4^
M-/Q*MO!OB7]D2?Q#KV@6?Q#U)4EDF\2"WFMK:0S&738)!! 62R: X0J"JR.&
MH_L)^/M/_P"":W[7G_!1'X$>";[7=0^$GP+\)Z!X^\(^$-6UZYOCICS^'I]2
MOH()KEY) DKHHP6;'EJ>3DGZ6N/V&/VGIO\ @L9!_P %,?\ A(O @\.Q?",?
M#@^$OMMY]M_LXZD;\W_G^1L\_P QCB';M*C;Y@/[RLGX*?\ !-WXXZ1^WU^T
M?^U!\>+WP%K'@C]I3PUIFA>)/!NF7MZ;C2[2PTPZ>BK,\"K=>=&6$@Q#CS-R
MGY=K 'A_P._9N\#_ +;?_!#[7_VT_P!IF\N?$GQ>^)7PRU_Q=<_$..^ECO\
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
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
L4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206469008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover Page - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Feb. 23, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<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="Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<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="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2023<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="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>
<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="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>
<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="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34705<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="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">Codexis,&#160;Inc.<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="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<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="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">71-0872999<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="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">200 Penobscot Drive<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="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Redwood City<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="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CA<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="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">94063<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="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">650<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="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">421-8100<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="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $0.0001 per share<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="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CDXS<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="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>
<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="Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<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="Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<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="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>
<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="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>
<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="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Accelerated Filer<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="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>
<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="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<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="Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">true<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="Show.showAR( this, 'defref_dei_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction [Flag]</a></td>
<td class="text">false<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="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>
<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="Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 122.4<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70,303,639<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="Show.showAR( this, 'defref_dei_DocumentsIncorporatedByReferenceTextBlock', window );">Documents Incorporated by Reference</a></td>
<td class="text"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Portions of the registrant&#8217;s Definitive Proxy Statement to be filed with the Commission pursuant to Regulation 14A in connection with the registrant&#8217;s 2024 Annual Meeting of Stockholders (the "2024 Proxy Statement"), to be filed subsequent to the date hereof, are incorporated by reference into Part III of this Report. Such Definitive Proxy Statement will be filed with the Securities and Exchange Commission not later than 120 days after the conclusion of the registrant&#8217;s fiscal year ended December&#160;31, 2023. Except with respect to information specifically incorporated by reference in this Form 10-K, the 2024 Proxy Statement is not deemed to be filed as part of this Form 10-K.<br/></span><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="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001200375<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="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>
<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="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2023<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="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<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_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="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-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_DocumentAnnualReport</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_DocumentFinStmtErrorCorrectionFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates whether any of the financial statement period in the filing include a restatement due to error correction.</p></div>
<a href="javascript:void(0);" onclick="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-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_DocumentFinStmtErrorCorrectionFlag</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_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_DocumentsIncorporatedByReferenceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Documents incorporated by reference.</p></div>
<a href="javascript:void(0);" onclick="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-23<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_DocumentsIncorporatedByReferenceTextBlock</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>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_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ 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_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityPublicFloat</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: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_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityVoluntaryFilers</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_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="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 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityWellKnownSeasonedIssuer</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_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_IcfrAuditorAttestationFlag</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_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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>17
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206350336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Audit Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AuditorInformationAbstract', window );"><strong>Auditor Information [Abstract]</strong></a></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="Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">BDO USA, P.C.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">San Francisco, CA<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">243<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AuditorInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Auditor Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AuditorInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="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-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_AuditorFirmId</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:nonemptySequenceNumberItemType</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_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_AuditorLocation</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:internationalNameItemType</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_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_AuditorName</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:internationalNameItemType</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>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201122816">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 65,116<span></span>
</td>
<td class="nump">$ 113,984<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCash', window );">Restricted cash, current</a></td>
<td class="nump">519<span></span>
</td>
<td class="nump">521<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract', window );"><strong>Financial assets:</strong></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="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable</a></td>
<td class="nump">10,036<span></span>
</td>
<td class="nump">31,904<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetGrossCurrent', window );">Contract assets</a></td>
<td class="nump">815<span></span>
</td>
<td class="nump">2,116<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesCurrent', window );">Unbilled receivables</a></td>
<td class="nump">9,142<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesReceivableGross', window );">Total financial assets</a></td>
<td class="nump">19,993<span></span>
</td>
<td class="nump">41,036<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForNotesAndLoansReceivableCurrent', window );">Less: allowances</a></td>
<td class="num">(65)<span></span>
</td>
<td class="num">(163)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsNotesAndLoansReceivableNetCurrent', window );">Total financial assets, net</a></td>
<td class="nump">19,928<span></span>
</td>
<td class="nump">40,873<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">2,685<span></span>
</td>
<td class="nump">2,029<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">5,218<span></span>
</td>
<td class="nump">5,487<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">93,466<span></span>
</td>
<td class="nump">162,894<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashNoncurrent', window );">Restricted cash</a></td>
<td class="nump">1,062<span></span>
</td>
<td class="nump">1,521<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</a></td>
<td class="nump">9,700<span></span>
</td>
<td class="nump">20,510<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Right-of-use assets - Operating leases, net</a></td>
<td class="nump">13,137<span></span>
</td>
<td class="nump">39,263<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">15,487<span></span>
</td>
<td class="nump">22,614<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">3,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other non-current assets</a></td>
<td class="nump">1,246<span></span>
</td>
<td class="nump">350<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">136,561<span></span>
</td>
<td class="nump">250,393<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">5,947<span></span>
</td>
<td class="nump">3,246<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation</a></td>
<td class="nump">11,246<span></span>
</td>
<td class="nump">11,453<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Other accrued liabilities</a></td>
<td class="nump">4,735<span></span>
</td>
<td class="nump">15,279<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current portion of lease obligations - Operating leases</a></td>
<td class="nump">10,121<span></span>
</td>
<td class="nump">13,728<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">3,781<span></span>
</td>
<td class="nump">5,360<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">35,830<span></span>
</td>
<td class="nump">49,066<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, net of current portion</a></td>
<td class="nump">640<span></span>
</td>
<td class="nump">16,881<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term lease obligations - Operating leases</a></td>
<td class="nump">12,243<span></span>
</td>
<td class="nump">38,278<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other long-term liabilities</a></td>
<td class="nump">1,233<span></span>
</td>
<td class="nump">1,371<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">49,946<span></span>
</td>
<td class="nump">105,596<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 13)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $0.0001 par value per share; 200,000 shares authorized; 69,905 and 65,811 shares issued and outstanding at December&#160;31, 2023 and December&#160;31, 2022, respectively</a></td>
<td class="nump">7<span></span>
</td>
<td class="nump">6<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">584,138<span></span>
</td>
<td class="nump">566,081<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(497,530)<span></span>
</td>
<td class="num">(421,290)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">86,615<span></span>
</td>
<td class="nump">144,797<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders&#8217; equity</a></td>
<td class="nump">$ 136,561<span></span>
</td>
<td class="nump">$ 250,393<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_AccountsNotesAndLoansReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of accounts and financing receivables, classified as current. Includes, but is not limited to, notes and loan receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsNotesAndLoansReceivableNetCurrent</td>
</tr>
<tr>
<td style="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_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AllowanceForNotesAndLoansReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on financing receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForNotesAndLoansReceivableCurrent</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 26: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerAssetGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetGrossCurrent</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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 noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="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_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="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_FinancingReceivableBeforeAllowanceForCreditLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract</td>
</tr>
<tr>
<td style="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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 21: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 22: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-5<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 21: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_NotesReceivableGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost, before allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 80<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479294/326-20-55-80<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 79<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479294/326-20-55-79<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479344/326-20-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1405<br> -Paragraph (a)<br> -Subparagraph (1)<br> -Publisher SEC<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1405<br> -Paragraph (a)<br> -Subparagraph (2)<br> -Publisher SEC<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1404<br> -Paragraph (a)<br> -Publisher SEC<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-14<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -SubTopic 10<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-7A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesReceivableGross</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="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_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="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_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480842/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestrictedCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage. 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCash</td>
</tr>
<tr>
<td style="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_RestrictedCashNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage, classified as noncurrent. 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 210<br> -Topic 954<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480632/954-210-45-5<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashNoncurrent</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledReceivablesCurrent</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206590800">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">$ 9,700<span></span>
</td>
<td class="nump">$ 20,510<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.0001<span></span>
</td>
<td class="nump">$ 0.0001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.0001<span></span>
</td>
<td class="nump">$ 0.0001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">200,000,000<span></span>
</td>
<td class="nump">200,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">69,905,000<span></span>
</td>
<td class="nump">65,811,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">69,905,000<span></span>
</td>
<td class="nump">65,811,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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 13,921<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</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>20
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201438112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingCostsAndExpensesAbstract', window );"><strong>Costs and operating expenses:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of product revenue</a></td>
<td class="nump">12,809<span></span>
</td>
<td class="nump">38,033<span></span>
</td>
<td class="nump">22,209<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">58,885<span></span>
</td>
<td class="nump">80,099<span></span>
</td>
<td class="nump">55,919<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general and administrative</a></td>
<td class="nump">53,250<span></span>
</td>
<td class="nump">52,172<span></span>
</td>
<td class="nump">49,323<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">3,284<span></span>
</td>
<td class="nump">3,167<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="Show.showAR( this, 'defref_cdxs_AssetImpairmentAndOtherCharges', window );">Asset impairment and other charges</a></td>
<td class="nump">9,984<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostsAndExpenses', window );">Total costs and operating expenses</a></td>
<td class="nump">138,212<span></span>
</td>
<td class="nump">173,471<span></span>
</td>
<td class="nump">127,451<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(68,069)<span></span>
</td>
<td class="num">(34,881)<span></span>
</td>
<td class="num">(22,697)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentIncomeInterest', window );">Interest income</a></td>
<td class="nump">4,172<span></span>
</td>
<td class="nump">1,441<span></span>
</td>
<td class="nump">459<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense), net ($0, $208 and $983 from a related party)</a></td>
<td class="num">(12,274)<span></span>
</td>
<td class="nump">124<span></span>
</td>
<td class="nump">1,148<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">(76,171)<span></span>
</td>
<td class="num">(33,316)<span></span>
</td>
<td class="num">(21,090)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">69<span></span>
</td>
<td class="nump">276<span></span>
</td>
<td class="nump">189<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
<td class="num">$ (21,279)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net loss per share, basic (in dollars per share)</a></td>
<td class="num">$ (1.12)<span></span>
</td>
<td class="num">$ (0.51)<span></span>
</td>
<td class="num">$ (0.33)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net loss per share, diluted (in dollars per share)</a></td>
<td class="num">$ (1.12)<span></span>
</td>
<td class="num">$ (0.51)<span></span>
</td>
<td class="num">$ (0.33)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average common stock shares used in computing net loss per share, basic (in shares)</a></td>
<td class="nump">68,131<span></span>
</td>
<td class="nump">65,344<span></span>
</td>
<td class="nump">64,568<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average common stock shares used in computing net loss per share, diluted (in shares)</a></td>
<td class="nump">68,131<span></span>
</td>
<td class="nump">65,344<span></span>
</td>
<td class="nump">64,568<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue ($0, $514 and $0 from a related party)</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 42,906<span></span>
</td>
<td class="nump">$ 116,676<span></span>
</td>
<td class="nump">$ 70,657<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue ($0, $1,245 and $1,955 from a related party)</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 27,237<span></span>
</td>
<td class="nump">$ 21,914<span></span>
</td>
<td class="nump">$ 34,097<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AssetImpairmentAndOtherCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Impairment And Other Charges</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AssetImpairmentAndOtherCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="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_CostsAndExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total costs of sales and operating expenses for the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostsAndExpenses</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482635/260-10-55-15<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-7<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-60B<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-4<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482635/260-10-55-52<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482635/260-10-55-15<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-7<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-60B<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-4<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482635/260-10-55-52<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482659/740-20-45-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InvestmentIncomeInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeInterest</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-4<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-10<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483581/946-220-45-7<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-60B<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483499/205-20-50-7<br><br>Reference 35: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 38: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 39: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingCostsAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingCostsAndExpensesAbstract</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482916/730-10-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482517/912-730-25-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481283/985-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenuesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesAbstract</td>
</tr>
<tr>
<td style="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_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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>21
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201308496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense), net</a></td>
<td class="num">(12,274)<span></span>
</td>
<td class="nump">124<span></span>
</td>
<td class="nump">1,148<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense), net</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">208<span></span>
</td>
<td class="nump">983<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">42,906<span></span>
</td>
<td class="nump">116,676<span></span>
</td>
<td class="nump">70,657<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue | Related Party</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">514<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="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">27,237<span></span>
</td>
<td class="nump">21,914<span></span>
</td>
<td class="nump">34,097<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue | Related Party</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,245<span></span>
</td>
<td class="nump">$ 1,955<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_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</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_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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>22
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206934640">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Employee</div></th>
<th class="th"><div>Nonemployee</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Additional Paid-in Capital</div></th>
<th class="th">
<div>Additional Paid-in Capital </div>
<div>Employee</div>
</th>
<th class="th">
<div>Additional Paid-in Capital </div>
<div>Nonemployee</div>
</th>
<th class="th"><div>Accumulated Deficit</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at beginning of period (in shares) at Dec. 31, 2020</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">64,283<span></span>
</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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at beginning of period at Dec. 31, 2020</a></td>
<td class="nump">$ 170,103<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6<span></span>
</td>
<td class="nump">$ 536,516<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (366,419)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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>
<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options (in shares)</a></td>
<td class="nump">664<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">699<span></span>
</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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">$ 5,180<span></span>
</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">5,180<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Release of stock awards (in shares)</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">181<span></span>
</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="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Employee stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,346<span></span>
</td>
<td class="nump">$ 247<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,346<span></span>
</td>
<td class="nump">$ 247<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="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards (in shares)</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="num">(54)<span></span>
</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="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="num">(1,206)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,206)<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="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(21,279)<span></span>
</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(21,279)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at end of period (in shares) at Dec. 31, 2021</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">65,109<span></span>
</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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at end of period at Dec. 31, 2021</a></td>
<td class="nump">$ 164,391<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6<span></span>
</td>
<td class="nump">552,083<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(387,698)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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>
<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options (in shares)</a></td>
<td class="nump">410<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">410<span></span>
</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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">$ 955<span></span>
</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">955<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Release of stock awards (in shares)</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">373<span></span>
</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="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Employee stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,398<span></span>
</td>
<td class="nump">133<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,398<span></span>
</td>
<td class="nump">133<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="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards (in shares)</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="num">(81)<span></span>
</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="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="num">(1,488)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,488)<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="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(33,592)<span></span>
</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(33,592)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at end of period (in shares) at Dec. 31, 2022</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">65,811<span></span>
</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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at end of period at Dec. 31, 2022</a></td>
<td class="nump">$ 144,797<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6<span></span>
</td>
<td class="nump">566,081<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(421,290)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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>
<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options (in shares)</a></td>
<td class="nump">283<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">283<span></span>
</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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">$ 559<span></span>
</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">559<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Release of stock awards (in shares)</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">796<span></span>
</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="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Employee stock-based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,969<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,969<span></span>
</td>
<td class="nump">$ 2<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="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards (in shares)</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="num">(65)<span></span>
</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="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="num">(404)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(404)<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock, net of issuance costs (in shares)</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">3,080<span></span>
</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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common stock, net of issuance costs</a></td>
<td class="nump">7,932<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">7,931<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="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(76,240)<span></span>
</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(76,240)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at end of period (in shares) at Dec. 31, 2023</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">69,905<span></span>
</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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at end of period at Dec. 31, 2023</a></td>
<td class="nump">$ 86,615<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7<span></span>
</td>
<td class="nump">$ 584,138<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (497,530)<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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-4<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-10<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483581/946-220-45-7<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-60B<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483499/205-20-50-7<br><br>Reference 35: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 38: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 39: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodValueNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueNewIssues</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>23
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203226048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity (Parenthetical)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2023 </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="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Statement of Stockholders' Equity [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_PaymentsOfStockIssuanceCosts', window );">Costs incurred in connection with offering</a></td>
<td class="nump">$ 721<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_PaymentsOfStockIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for cost incurred directly with the issuance of an equity security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfStockIssuanceCosts</td>
</tr>
<tr>
<td style="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_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="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>24
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201188560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Operating activities:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
<td class="num">$ (21,279)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net loss to net cash provided by (used in) operating activities:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">5,518<span></span>
</td>
<td class="nump">5,402<span></span>
</td>
<td class="nump">3,113<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Amortization expense - right-of-use assets - operating and finance leases</a></td>
<td class="nump">4,405<span></span>
</td>
<td class="nump">4,849<span></span>
</td>
<td class="nump">2,834<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">9,971<span></span>
</td>
<td class="nump">14,531<span></span>
</td>
<td class="nump">11,593<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Provision (recovery) for credit losses</a></td>
<td class="num">(65)<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="nump">342<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncome', window );">Equity securities earned from research and development activities ($0, ($1,245), and ($1,955) from a related party)</a></td>
<td class="num">(213)<span></span>
</td>
<td class="num">(1,245)<span></span>
</td>
<td class="num">(1,955)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss', window );">Unrealized gain on non-marketable securities ($0, ($208), and ($983) from a related party)</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(208)<span></span>
</td>
<td class="num">(1,272)<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="Show.showAR( this, 'defref_cdxs_AssetImpairmentAndOtherCharges', window );">Asset impairment and other charges</a></td>
<td class="nump">9,984<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="nump">12,215<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherOperatingActivitiesCashFlowStatement', window );">Other non-cash items</a></td>
<td class="nump">4<span></span>
</td>
<td class="num">(29)<span></span>
</td>
<td class="num">(19)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInFinanceReceivables', window );">Financial assets</a></td>
<td class="nump">20,247<span></span>
</td>
<td class="num">(3,225)<span></span>
</td>
<td class="num">(9,156)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(656)<span></span>
</td>
<td class="num">(869)<span></span>
</td>
<td class="num">(196)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="num">(865)<span></span>
</td>
<td class="nump">181<span></span>
</td>
<td class="num">(2,268)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">2,287<span></span>
</td>
<td class="nump">207<span></span>
</td>
<td class="nump">268<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="Show.showAR( this, 'defref_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities', window );">Accrued compensation and other accrued liabilities</a></td>
<td class="num">(14,041)<span></span>
</td>
<td class="nump">5,983<span></span>
</td>
<td class="nump">6,575<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities', window );">Other long-term liabilities</a></td>
<td class="num">(5,341)<span></span>
</td>
<td class="num">(5,223)<span></span>
</td>
<td class="num">(4,147)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue ($0, $0, $245 to a related party)</a></td>
<td class="num">(19,848)<span></span>
</td>
<td class="nump">24,518<span></span>
</td>
<td class="nump">1,300<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by (used in) operating activities</a></td>
<td class="num">(52,638)<span></span>
</td>
<td class="nump">11,284<span></span>
</td>
<td class="num">(14,267)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Investing activities:</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchase of property and equipment</a></td>
<td class="num">(4,418)<span></span>
</td>
<td class="num">(8,307)<span></span>
</td>
<td class="num">(13,828)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sale of property and equipment</a></td>
<td class="nump">751<span></span>
</td>
<td class="nump">29<span></span>
</td>
<td class="nump">36<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investment in non-marketable securities ($0, $0, and ($7,630) in a related party)</a></td>
<td class="num">(1,191)<span></span>
</td>
<td class="num">(5,300)<span></span>
</td>
<td class="num">(7,630)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(4,858)<span></span>
</td>
<td class="num">(13,578)<span></span>
</td>
<td class="num">(21,422)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Financing activities:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from exercises of stock options</a></td>
<td class="nump">422<span></span>
</td>
<td class="nump">955<span></span>
</td>
<td class="nump">5,180<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Proceeds from issuance of common stock in connection with public offering</a></td>
<td class="nump">8,652<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfFinancingCosts', window );">Costs incurred in connection with issuance of common stock at public offering</a></td>
<td class="num">(503)<span></span>
</td>
<td class="num">(42)<span></span>
</td>
<td class="num">(207)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="num">(404)<span></span>
</td>
<td class="num">(1,488)<span></span>
</td>
<td class="num">(1,206)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by (used in) financing activities</a></td>
<td class="nump">8,167<span></span>
</td>
<td class="num">(575)<span></span>
</td>
<td class="nump">3,767<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net decrease in cash, cash equivalents and restricted cash</a></td>
<td class="num">(49,329)<span></span>
</td>
<td class="num">(2,869)<span></span>
</td>
<td class="num">(31,922)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash, cash equivalents and restricted cash at the beginning of the year</a></td>
<td class="nump">116,026<span></span>
</td>
<td class="nump">118,895<span></span>
</td>
<td class="nump">150,817<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash, cash equivalents and restricted cash at the end of the year</a></td>
<td class="nump">66,697<span></span>
</td>
<td class="nump">116,026<span></span>
</td>
<td class="nump">118,895<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest paid</a></td>
<td class="nump">44<span></span>
</td>
<td class="nump">34<span></span>
</td>
<td class="nump">14<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes</a></td>
<td class="nump">194<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="nump">102<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Supplemental non-cash investing and financing activities:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid', window );">Capital expenditures incurred but not yet paid</a></td>
<td class="nump">1,068<span></span>
</td>
<td class="nump">897<span></span>
</td>
<td class="nump">2,533<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">65,116<span></span>
</td>
<td class="nump">113,984<span></span>
</td>
<td class="nump">116,797<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndCashEquivalents', window );">Restricted cash, current and non-current</a></td>
<td class="nump">1,581<span></span>
</td>
<td class="nump">2,042<span></span>
</td>
<td class="nump">2,098<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Total cash, cash equivalents and restricted cash at the end of the period</a></td>
<td class="nump">$ 66,697<span></span>
</td>
<td class="nump">$ 116,026<span></span>
</td>
<td class="nump">$ 118,895<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AssetImpairmentAndOtherCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Impairment And Other Charges</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AssetImpairmentAndOtherCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481877/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="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_EquitySecuritiesFvNiUnrealizedGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(d)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss on investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount</td>
</tr>
<tr>
<td style="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_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482312/912-310-45-11<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInFinanceReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in outstanding loans including accrued interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInFinanceReceivables</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInOtherNoncurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in noncurrent operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-4<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-10<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483581/946-220-45-7<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-60B<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483499/205-20-50-7<br><br>Reference 35: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 38: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 39: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="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_OtherNoncashIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashIncome</td>
</tr>
<tr>
<td style="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_OtherOperatingActivitiesCashFlowStatement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Other cash or noncash adjustments to reconcile net income to cash provided by (used in) operating activities that are not separately disclosed in the statement of cash flows (for example, cash received or cash paid during the current period for miscellaneous operating activities, net change during the reporting period in other assets or other liabilities).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherOperatingActivitiesCashFlowStatement</td>
</tr>
<tr>
<td style="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_PaymentsOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for loan and debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfFinancingCosts</td>
</tr>
<tr>
<td style="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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="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_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ProceedsFromIssuanceOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="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_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestrictedCashAndCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents restricted as to withdrawal or usage. 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndCashEquivalents</td>
</tr>
<tr>
<td style="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_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>25
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206380608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncome', window );">Other noncash income</a></td>
<td class="nump">$ 213<span></span>
</td>
<td class="nump">$ 1,245<span></span>
</td>
<td class="nump">$ 1,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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss', window );">Unrealized gain on non-marketable securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">208<span></span>
</td>
<td class="nump">1,272<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="num">(19,848)<span></span>
</td>
<td class="nump">24,518<span></span>
</td>
<td class="nump">1,300<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="num">(1,191)<span></span>
</td>
<td class="num">(5,300)<span></span>
</td>
<td class="num">(7,630)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncome', window );">Other noncash income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,245<span></span>
</td>
<td class="nump">1,955<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss', window );">Unrealized gain on non-marketable securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(208)<span></span>
</td>
<td class="num">(983)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">245<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (7,630)<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_EquitySecuritiesFvNiUnrealizedGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(d)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482312/912-310-45-11<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OtherNoncashIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashIncome</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</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>26
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358208215280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of Business<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_NatureOfOperations', window );">Description of Business</a></td>
<td class="text">Description of Business <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In these notes to the consolidated financial statements, the &#8220;Company,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;we,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;us,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and &#8220;our</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> refers to Codexis, Inc. and its subsidiaries on a consolidated basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins leveraging our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">directed evolution technology platform. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our Chief Executive Officer (&#8220;CEO&#8221;), our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocates resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.</span></div><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_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//275/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NatureOfOperations</td>
</tr>
<tr>
<td style="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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="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>27
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358208215280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock', window );">Basis of Presentation and Summary of Significant Accounting Policies</a></td>
<td class="text">Basis of Presentation and Summary of Significant Accounting Policies<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) and the applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Foreign Currency Translation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. The majority of our contracts with customers typically contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a description of principal activities from which we generate revenue:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer typically upon shipment or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#8217;s use. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success. For licenses that have been previously sold to other customers, we use historical information to determine SSP.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Practical Expedients, Elections, and Exemptions</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to treat shipping and handling activities as fulfillment costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to record revenue net of sales and other similar taxes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Assets </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Costs</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $3.0&#160;million, and $1.8&#160;million for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Research and Development Services</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Advertising</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations. Advertising costs were $0.3 million for each of the years ended December 31, 2023, 2022 and 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restricted Stock Units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSUs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), Restricted Stock Awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs&#8221;) and performance-contingent restricted stock units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PSUs&#8221;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PBOs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash and Cash Equivalents</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Cash</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2016, we began the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations. This balance is recorded as current restricted cash on the consolidated balance sheets of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.5 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2023 and 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million and $1.5&#160;million as of&#160;December&#160;31, 2023 and 2022, respectively. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets. For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fair Value Measurements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#8217;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life. </span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#8217;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Credit Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2023, we h</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ad four customers that accounted for 58% of our ac</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">counts receivable balance. As of December&#160;31, 2022, two customers accounted for 63% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Financial Assets and Allowances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#8220;current expected credit loss model&#8221; or &#8220;CECL&#8221;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#8220;ACL&#8221;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unbilled Receivable</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Supply Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">-</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 8, &#8220;Balance Sheets Details&#8221; and Note 13, &#8220;Commitments and Contingencies.&#8221; No impairment charges for long-lived assets were recorded during the year ended December 31, 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in other income (expense), net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an "other-than-temporary&#8221; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 6, &#8220;Investments in Non-Marketable Securities.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment considering amongst other things, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$2.5&#160;million and $3.2&#160;million as of December&#160;31, 2023 and 2022, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative "Step 0" assessment based on reviewing relevant events and circumstances; or a quantitative "Step 1" assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. We recorded impairment charges related to goodwill of $0.8&#160;million, nil, and nil for the years ended December&#160;31, 2023, 2022, and 2021, respectively. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 8, &#8220;Balance Sheets Details.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease Accounting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. We have recorded a valuation allowance against these deferred tax assets in jurisdictions where ultimate realization of deferred tax assets is more likely than not to occur. As of December&#160;31, 2023 and 2022, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) 2009-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#8217;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#8220;NOL</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aside from those recently issued accounting pronouncements not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2023 that are of significance or potential significance to us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, the Financial Accounting Standards Board (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">FASB</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) issued ASU No. 2023-09,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to benefit investors by providing more detailed income tax disclosures that would be useful in making capital allocation decisions. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, FASB issued ASU No. 2023-07,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2023, FASB issued ASU No. 2023-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Disclosure Improvements: Codification Amendments in Response to the SEC&#8217;s Disclosure Update and Simplification Initiative</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the Accounting Standards Codification (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#8217;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the general note to the financial statements for the reporting entity which may include, descriptions of the basis of presentation, business description, significant accounting policies, consolidations, reclassifications, new pronouncements not yet adopted and changes in accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//235/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 275<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//275/tableOfContent<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//810/tableOfContent<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 250<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//250/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="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>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203492960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Disaggregation of Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disaggregated information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,657&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34,097&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">23,481&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,187&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,086&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For additional information regarding revenue disaggregated by geography, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Balances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">815&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,116&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,904&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,016&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract costs</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,761&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,609&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable when we have an unconditional right to recognize revenue and have issued an invoice to the customer. Our payment terms are generally between 30 and 90 days. We recognize unbilled receivables when we have an unconditional right to recognize revenue and have not issued an invoice to our customer. Unbilled receivables are transferred to accounts receivable on issuance of an invoice. Unbilled receivables are classified separately on the consolidated balance sheets as an asset. We maintain a valuation allowance on accounts receivables and unbilled receivables. As of December 31, 2023, we have $9.1 million of short-term unbilled receivables presented as unbilled receivables within current assets and $0.8 million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. As of December 31, 2022, we had $7.0 million of short-term unbilled receivables presented as unbilled receivables within current asset. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets represent our right to recognize revenue for custom products with no alternate use and under binding non-cancellable contracts and are largely related to our procurement of product. We recognize contract assets when we have a conditional right to recognize revenue. The transfer of control of certain products occurs in advance of the invoicing process, which generates contract assets. In addition, we recognize a contract asset related to milestones not eligible for royalty accounting when we assess it is probable of being achieved and there will be no significant reversal of cumulative revenues. Contract assets are classified separately on the consolidated balance sheets as an asset and transferred to accounts receivables when our rights to payment become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities, or deferred revenue, represent our obligation to transfer a product or service to the customer, and for which we have received consideration from the customer. We recognize a contract liability when we receive advance customer payments under development agreements for research and development services, upfront license payments, and from upfront customer payments received under product supply agreements. Contract liabilities are classified as a liability on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract costs relate to incremental costs of obtaining a contract with a customer. Contract costs are amortized along with the associated revenue over the term of the contract. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2023, 2022 and 2021, we had no asset impairment charges related to contract assets. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized the following revenues (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,937&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,038&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">279&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,041&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">136,273&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance Obligations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of December&#160;31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:32.964%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.624%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2026</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2027 and Thereafter</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,121&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">140&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">140&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">360&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,761&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-15<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>29
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203314176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Loss per Share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Net Loss per Share</a></td>
<td class="text">Net Loss per Share<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, diluted and basic net loss per share are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Anti-Dilutive Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plans and ESPP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,028&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,442&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,215&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Included 568,224 of anti-dilutive potential common shares from ESPP for the year ended December&#160;31, 2023.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>30
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203457328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentAbstract', window );"><strong>Research and Development [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementDisclosureTextBlock', window );">Collaborative Arrangements</a></td>
<td class="text">Collaborative Arrangements<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">GSK Platform Technology Transfer, Collaboration and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2014, we entered into a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Platform Technology Transfer, Collaboration and License agreement (the &#8220;GSK CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement&#8221;) with GSK. Pursuant to the terms of the agreement, we granted GSK a non-exclusive license to use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop novel enzymes for use in the manufacture of GSK's pharmaceutical and health care products. We completed the transfer of the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform to GSK in April 2016 and all revenues relating to the technology transfer have been recognized as of April 2016. Depending upon GSK's successful application of the licensed technology, we have the potential to receive additional contingent payments that range from $5.8 million to $38.5 million per project. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, we received a $2.0&#160;million milestone payment relating to the advancement of an enzyme developed by GSK using our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform. In 2021, we received two additional milestone payments from GSK under the agreement. In 2023, we received an additional milestone payment from GSK under the agreement. We recognized research and development revenue of $1.3&#160;million, nil, and $4.3 million in the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Merck Platform Technology Transfer and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2015, we entered into a CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform transfer collaboration and license agreement (the &#8220;Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement&#8221;) with Merck, Sharp &amp; Dohme (&#8220;Merck&#8221;) which allows Merck to use the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform in the field of human and animal healthcare. In 2016, we completed the final phase in the transfer of the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform to Merck under the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized research and development revenues of nil, $40 thousand, and $0.6 million in the years ended December 31, 2023, 2022 and 2021, respectively, for various research projects under our collaborative arrangement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have the potential to receive payments of up to a maximum of $15.0&#160;million for each commercial active pharmaceutical ingredient ("API") that is manufactured by Merck using one or more novel enzymes developed by Merck using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform. The API payments, which are currently not recognized in revenue, are based on the quantity of API developed and manufactured by Merck and will be recognized as usage-based royalties.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2018, we entered into an amendment to the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement which amended certain licensing provisions and one exhibit. In January 2019, we amended the Merck CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement to install certain CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform upgrades into Merck&#8217;s platform license installation and maintain those upgrades for a multi-year term that expired in January 2022. The license installation was completed in 2019. No research and development revenues were recognized in the years ended December 31, 2023 and 2022. We recognized $0.1 million in research and development revenues under the terms of the amendment in the year ended December 31, 2021. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Merck Sitagliptin Catalyst Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In February 2012, we entered into a five-year Sitagliptin Catalyst Supply Agreement (&#8220;Sitagliptin Supply Agreement&#8221;) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its options under the terms of the Sitagliptin Supply Agreement to extend the agreement for an additional five years through February 2022. In September 2021, the Sitagliptin Supply Agreement was amended to extend the agreement through December 2026. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized $4.4 million, $5.9 million and $9.8 million in product revenue under this agreement in the years ended December 31, 2023, 2022 and 2021, respectively. This represented 6%, 4%, and 9% of our total revenues in the years ended December 31, 2023, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, we recorded revenue of $0.7 million from sitagliptin enzyme sales that were recognized over time based on the progress of the manufacturing process. These products will be </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shipped within the three-month period following the end of 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2016, we entered into a supply agreement whereby our customer may purchase quantities of one of our proprietary enzymes for use in its commercial manufacture of a product. Pursuant to the supply agreement, we received an upfront payment in December 2016 which was recorded as deferred revenue.&#160;Such upfront payment will be recognized over the period of the supply agreement as the customer purchases our proprietary enzyme. We additionally have determined that the volume discounts under the supply agreement provide the customer material rights and we are recognizing revenues using the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">alternative method. In 2023, due to the early termination of the enzyme supply agreement with the customer, we recognized $3.2&#160;million of product revenue from the release of prior periods' product revenue deferrals and also recognized $1.3&#160;million of product revenue as settlement fee pursuant to the enzyme supply agreement with the same customer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023 and 2022, we had deferred revenue balances from the supply agreement of nil and $3.3 million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Commercial Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2019, we entered into </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a multi-year commercial agreement with Tate &amp; Lyle under which Tate &amp; Lyle has received an exclusive license to use a suite of Codexis novel performance enzymes in the manufacture of Tate &amp; Lyle&#8217;s zero-calorie stevia sweetener, TASTEVA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> M, and other stevia products. Under the agreement, we will supply Tate &amp; Lyle with its requirements for these enzymes over a multiple year period and receive royalties on stevia products. In November 2020, we amended the commercial agreement based on Tate &amp; Lyle's intent to use a specific Codexis novel performance enzyme in its production of TASTEVA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> M Stevia Sweetener and became eligible to receive milestone payments of up to $1.1 million. In the fourth quarter of 2020, we became eligible to receive a milestone payment of $0.4 million which we subsequently received in February 2021.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> The commercial agreement with Tate &amp; Lyle was terminated in 2023.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Global Development, Option and License Agreement and Strategic Collaboration Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2017, we entered into the Nestl&#233; License Agreement with Nestl&#233; Health Science and, solely for the purpose of the integration and the dispute resolution clauses of the Nestl&#233; License Agreement, Nestl&#233; Health Science S.A., to advance CDX-6114, our enzyme biotherapeutic product candidate for the potential treatment of PKU.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2019, we received notice from the U.S. Food and Drug Administration (&#8220;FDA&#8221;) that it had completed its review of our IND for CDX-6114 and concluded that we may proceed with the proposed Phase 1b multiple ascending dose study in healthy volunteers in the United States. In February 2019, Nestl&#233; Health Science exercised its option to obtain an exclusive, worldwide, royalty-bearing, sub-licensable license for the global development and commercialization of CDX-6114 for the management of PKU. Upon exercising its option, Nestl&#233; Health Science made an option payment and assumed all responsibilities for future clinical development and commercialization of CDX-61</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14. In October 2023, we provided notice pursuant to Nestl&#233; License Agreement of our intent to abandon or transfer to Nestl&#233; Health Science (at their option) the patents and patent applications related to CDX-6114 as of December 5, 2023, and Nestl&#233; Health Science notified us that they did not exercise their right to assume responsibility of such patents and patent applications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2017, we entered into the Nestl&#233; SCA pursuant to which we and Nestl&#233; Health Science are collaborating to leverage the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to develop novel enzymes for Nestl&#233; Health Science&#8217;s established Consumer Care and Medical Nutrition business areas. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The term of the Nestl&#233; SCA has expired in December 2023, as we opted out of a renewal period through December 2024. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2020, we entered into a development agreement with Nestl&#233; Health Science pursuant to which we and Nestl&#233; Health Science are collaborating to advance a lead candidate discovered through our Nestl&#233; SCA, CDX-7108, targeting exocrine pancreatic insufficiency, into preclinical and early clinical studies. We, together with Nestl&#233; Health Science, initiated a Phase 1 clinical trial of CDX-7108 in the fourth quarter of 2021, and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on February 23, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we and Nestl&#233; Health Science announced interim results. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced plans to discontinue our development support of CDX-7108.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Nestl&#233; SCA and the development agreement, we recognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$4.1&#160;million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $7.1&#160;million and $6.9&#160;million in research and development revenue in the years ended December&#160;31, 2023, 2022 and 2021, respectively. Both the Nestl&#233; SCA and the development agreement were terminated in January 2024</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Acquisition Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we entered into an acquisition agreement (the &#8220;Acquisition Agreement&#8221;) with Nestl&#233; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Health Science</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#233; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Health Science</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Under the terms of the Acquisition Agreement, Nestl&#233; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Health Science </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, and Codexis will receive upfront payment, future potential milestone payments and net-sales based royalties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized research and development revenue of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0&#160;million f</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023 related to the Acquisition Agreement. We received the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0&#160;million upfront fee in January 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2018, we entered into the Porton Agreement with Porton to license key elements of our biocatalyst technology for use in Porton&#8217;s global custom intermediate and API development and manufacturing business. Under the Porton Agreement, we are eligible to receive annual collaboration fees and research and development revenues. We received the initial collaboration payments of $0.5&#160;million and $0.5 million within 30 days of the effective date and on the first anniversary of the effective date of the Porton Agreement, respectively. We also received annual collaboration payments of $1.0&#160;million each during the first through fourth anniversaries of the effective date of the Porton Agreement. We completed the technical transfer in the fourth quarter of 2018 and recognized the related revenue in 2018. We recognized revenue related to the functional license provided to Porton at a point in time when control of the license was transferred to the customer. The initial term of the Porton Agreement expired in April 2023 and was not renewed for an extended term. We recognized research and development revenue related to the Porton Agreement of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nil</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $0.1 million and $1.1 million in the years ended December 31, 2023, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Platform Technology Transfer and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2019, we entered into the Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement with Novartis. The Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement allows Novartis to use our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to Novartis (the &#8220;Technology Transfer Period&#8221;). As a part of this technology transfer, we provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform at its designated laboratory.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the agreement, we received an upfront payment of $5.0&#160;million shortly after the effective date of the Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $4.0&#160;million. We have also received an aggregate of $5.0 million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#8220;Improvements Term&#8221;), Novartis will pay Codexis annual payments over four years which amount to an additional $8.0&#160;million in aggregate. We received an aggregate of $4.0&#160;million for the first two annual payments in 2022 and 2023. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized overtime based on hours incurred. Revenue allocated to improvements made during the Improvements Term is being recognized during the Improvements Term. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.1 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $1.0 million and $1.6 million in research and development revenue in the years ended December&#160;31, 2023, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In December 2019, we entered a license agreement with Roche Sequencing Solutions, Inc. (&#8220;Roche&#8221;) to provide Roche with our evolved T4 DNA ligase high-performance molecular diagnostic enzyme. The royalty bearing license grants Roche worldwide rights to include the evolved T4 DNA ligase in its nucleic acid sequencing products and workflows. Under the license agreement, we received an initial collaboration fee payment of $0.8 million within 45 days of the effective date of the agreement, and we received an additional $0.9 million milestone payment after the completion of technology transfer in October 202</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">0. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior agreement in December 2019 for our evolved T4 DNA ligase. We are eligible to receive an aggregate of mid-single digit millions in upfront and technical milestones payments. No</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"> research and development revenues were recognized in the years ended December 31, 2023 and 2022. We recognized research and development fees </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">of $0.9 million in the year ended December 31,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"> 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, we entered into a Strategic Collaboration and License Agreement (the &#8220;Takeda Agreement&#8221;) with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (&#8220;Takeda&#8221;), pursuant to which we have collaborated with Takeda to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $8.5&#160;million and we initiated activities under three program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the &#8220;Initial Programs&#8221;). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. We completed the research and development services relating to the fourth program with Takeda during the second quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the Takeda Agreement, we are eligible to receive other payments that include (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">i) clinical development and commercialization-based milestones, per target gene, of up to $104.0 million and (ii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits. Takeda announced in April 2023 the discontinuation of these development programs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $2.0 million, $4.9 million and $7.4 million in the years ended December 31, 2023, 2022, and 2021, respectively. As of December&#160;31, 2023 and 2022, we had deferred revenue balances of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nil</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and $0.9 million, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with Molecular Assemblies, Inc. (&#8220;MAI&#8221;) in which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. In connection with the June 2020, transaction, John Nicols, our former President and Chief Executive Officer, joined MAI&#8217;s board of directors. See Note 14, &#8220;Related Party Transactions&#8221; for additional information on our investment in MAI.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Concurrently with our initial equity investment, we entered into the MAI Agreement, pursuant to which we performed services utilizing our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which are valued based on the observed transaction price of similar securities of MAI issued to third parties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the MAI Agreement, we will have the right to use and sell the engineered enzymes to third parties for any purpose other than for the synthesis of native DNA. Under the MAI Agreement, we would make a $0.5&#160;million payment to MAI upon our achievement of a milestone of $5.0&#160;million in aggregate commercial sales to third parties of the engineered enzymes or any product incorporating or derived from the engineered enzymes for any purpose other than the synthesis of native DNA. As contemplated in the MAI Agreement, we executed the Commercial License and Enzyme Supply Agreement with MAI (&#8220;MAI Supply Agreement&#8221;) in July 2022 following the completion of certain timelines specified in the SOW.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of MAI Series B preferred stock. Upon execution of the MAI Supply Agreement in July 2022, we received the commercialization and enzyme supply agreement milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shares of MAI Series B preferred stock. Pursuant to the MAI Agreement, we recognized $1.2 million and $2.0 million in research and development revenue from transactions with MAI in the years ended December 31, 2022 and 2021, respectively. Payment for the services rendered was received in the form of additional MAI Series A and Series B preferred stock. We received an aggregate of 1,587,049 and 3,491,505 shares of MAI's Series A and B preferred stock in the years ended December 31, 2022 and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase (&#8220;TdT&#8221;) enzyme in MAI&#8217;s Fully Enzymatic Synthesis&#8482; (&#8220;FES&#8482;&#8221;) technology. We recognized </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.2&#160;million and $0.5&#160;million in product revenue in the years ended December&#160;31, 2023 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2022, respectively</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pfizer Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2021 and 2022, we received purchase orders from Pfizer, Inc. (&#8220;Pfizer&#8221;) for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID&#8482; (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a party to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#8220;Pfizer Supply Agreement&#8221;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $25.9&#160;million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, 90% of the fee ($23.3&#160;million) is creditable against (i) future orders of CDX-616 used to manufacture its PAXLOVID&#8482; with shipment dates prior to December 31, 2023, and (ii) fees associated with </span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $23.3&#160;million credit towards a license to develop future product candidates, for which we recognized $5.0&#160;million as non-cash research and development revenue in the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April 4, 2023. We also recognized $2.0&#160;million of non-cash research and development revenue, and credited against the $25.9&#160;million fee, for other services provided to Pfizer during the year ended December 31, 2023. Up to 50% of any portion of the $25.9&#160;million which has not been credited under items (i) and (ii) is creditable against future orders of CDX-616 used to manufacture PAXLOVID&#8482; with shipment dates in 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the fourth quarter of 2023, and pursuant to the Pfizer Supply Agreement, we released the prior year deferrals for the unused portion of the retainer fee that is not creditable beyond 2023 and we recognized product revenue of $8.2 million in the year ended December&#160;31, 2023. We recognized product revenue of $75.4 million and $34.5&#160;million in the years ended December 31, 2022 and 2021, respectively, from the sale of quantities of CDX-616 to Pfizer. Product revenues recognized by us from the Pfizer Supply Agreement represented 12%, 54%, and 33% of our total revenues for the years ended December&#160;31, 2023, 2022, and 2021 respectively.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div>As of December&#160;31, 2023 and 2022, we had $9.5&#160;million and $24.4&#160;million, respectively, in deferred revenue related to the $25.9&#160;million fee received from Pfizer.<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_CollaborativeArrangementDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for collaborative arrangements in which the entity is a participant, including a) information about the nature and purpose of such arrangements; b) its rights and obligations thereunder; c) the accounting policy for collaborative arrangements; and d) the income statement classification and amounts attributable to transactions arising from the collaborative arrangement between participants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 808<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 808<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 808<br> -Publisher FASB<br> -URI https://asc.fasb.org//808/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CollaborativeArrangementDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_ResearchAndDevelopmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentAbstract</td>
</tr>
<tr>
<td style="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>31
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206452800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract', window );"><strong>Investments, Debt and Equity Securities [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock', window );">Investments in Non-Marketable Securities</a></td>
<td class="text">Investments in Non-Marketable Securities<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Debt Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We classify non-marketable debt securities, which are accounted for as available-for-sale, within Level 3 in the fair value hierarchy because we estimate the fair value based on a qualitative analysis using the most recent observable transaction price and other significant unobservable inputs including volatility, rights, and obligations of the securities we hold.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine gains or losses on the sale or extinguishment of non-marketable debt securities using a specific identification method. Unrealized gains and losses from bifurcated embedded derivatives, which represent share-settled redemption features, are recorded as other expense, net, in the consolidated statements of operations. Unrealized gains and losses on non-marketable debt securities are recorded as a component of other comprehensive loss until realized. Realized gains or losses are recorded as a component of other income (expense), net. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2020, we purchased convertible subordinated notes issued by Arzeda Corp. (&#8220;Arzeda&#8221;), an early-stage computational protein design company, for $1.0&#160;million and the investment was classified as available-for-sale non-marketable interest-bearing debt securities. In July 2021, we converted the non-marketable debt security with a carrying value of $1.3 million into 207,070 shares of Series B-2 preferred stock of Arzeda. During the year ended December 31, 2021, we recognized $0.3 million in interest income from interest earned on our investment in this debt security.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no investments in non-marketable debt securities as of December&#160;31, 2023 and 2022.</span><span style="color:#008080;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in MAI, seqWell and Arzeda. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy when we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. The fair value of non-marketable equity securities are classified within Level 3 when we estimate fair value using unobservable inputs such as when we remeasure due to impairment and we use discount rates, market data of comparable companies, and rights and obligations of the securities the Company holds, among others. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component of other income (expense), net in the consolidated statements of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the 207,070 shares of Arzeda&#8217;s Series B preferred stock were converted into 41,414 common stock pursuant to the Stock Purchase Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2023, we purchased an additional</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 985,545 shares of Series B preferred stock for $0.8 million in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">MAI, a privately held life sciences company</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. As of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we held an aggregate of 19,277,914 shares of MAI's Series A and B preferred stock that we have earned or purchased from MAI. See Note 14, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Related Party Transactions&#8221; for additional information on our investment in MAI.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell Inc. (&#8220;seqWell&#8221;), a privately held life sciences company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#8220;seqWell Agreement&#8221;), pursuant to which we are providing research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional 88,256 shares of seqWell's Series C-1 preferred stock and 44,128 common stock warrants for $0.4 million. We received 205,279 shares of seqWell's common stock from research and development services with seqWell and we recognized $0.2&#160;million in research and development revenue from these services in the year ended December&#160;31, 2023. As of December&#160;31, 2023, we held an aggregate of 1,088,256 shares of Series C and C-1 preferred stock, 205,279 shares of common stock and 44,128 of common stock warrants that we have earned or purchased from seqWell.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2023, we recognized an impairment charge of $12.2 million and included this as adjustment to the carrying value of our investments in seqWell, Arzeda and MAI. This adjustment, which is presented within other income (expense), net in the consolidated statements of operations, included the write-down of the carrying value of our investment in seqWell by $3.0 million during the third quarter of 2023 to its estimated fair value as determined based on valuation methods using the recent transaction price of similar preferred stock securities issued by seqWell and adjusted for the rights and obligations of the preferred stock securities the Company holds. The $1.2 million of impairment charge on our investment in Arzeda is related to the write-down to its estimated fair value based on the latest observed transaction price of Arzeda's preferred stock securities issued during the fourth quarter of 2023 and the subsequent conversion of our existing Series B preferred stock into Arzeda's common stock during the fourth quarter of 2023. The other $8.0&#160;million of impairment charge represents the difference between the estimated fair value and carrying value of our investment in MAI as of December 31, 2023 based on quantitative and qualitative analysis. This analysis involved use of judgment, estimates and assumptions, such as the near-term prospects of the investee in the market in which it operates, evaluation of the investee&#8217;s financial condition in relation to its outstanding obligations, and probabilities of securing additional capital through various alternative scenarios.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December 31, 2022, we recogniz</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed a $0.2 million u</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nrealized gain in other income, net, and included as adjustment to the carrying value of our investment in MAI, for the remeasurement of the additional 1,587,049 shares of Series B preferred stock received as a milestone payment during the third quarter of 2022 based on the latest observed transaction price of MAI's preferred stock.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other than as disclosed above, there were no remeasurement events for our investments in non-marketable equity securities in 2023 and 2022</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We recognized no realized gains or losses during the years ended December&#160;31, 2023 and 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">MAI</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,693&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,921&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">seqWell</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,625&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Arzeda</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,289&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other investments in non-marketable equity securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,700&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,510&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><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_InvestmentsDebtAndEquitySecuritiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract</td>
</tr>
<tr>
<td style="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_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 13<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482477/820-10-65-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock</td>
</tr>
<tr>
<td style="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>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203495216">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementInputsDisclosureTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables present the financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:46.268%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:46.268%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;2</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;3</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div>During the years ended December&#160;31, 2023 and 2022, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities.<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_FairValueMeasurementInputsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of the fair value measurement of assets and liabilities, which includes financial instruments measured at fair value that are classified in shareholders' equity, which may be measured on a recurring or nonrecurring basis.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 820<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//820/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementInputsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206916544">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock', window );">Balance Sheet Details</a></td>
<td class="text">Balance Sheet Details <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Equivalents</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:46.268%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Money market funds are classified in cash and cash equivalents on our consolidated balance sheets. Average contractual maturities (in days) is not applicable.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the total cash and cash equivalents balance of $65.1 million consisted of money market funds of $56.4 million and cash of $8.7 million held w</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ith major financial institutions. As of December&#160;31, 2022, the total cash and cash equivalents balance of $114.0 million consisted of money market funds of $77.3 million and cash of $36.7 million held with major financial institutions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work in process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">91&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods </span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,570&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,830&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total inventories</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,685&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,029&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Prepaid expenses and other current assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, prepaid expenses and other current assets consists of prepaid expenses of $4.6 million and other current assets of $0.6 million.  As of December&#160;31, 2022, prepaid expenses and other current assets consists of prepaid expenses of $4.8 million and other current assets of $0.7 million.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment, net</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">37,216&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,679&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,912&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,633&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,565&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,039&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,469&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,345&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,739&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,798&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62,435&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,311)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,821)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,487&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,614&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $3.0 million and $1.5 million were retired during the years ended December&#160;31, 2023 and 2022, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. As part of this plan, we entered into agreements to sell certain laboratory equipment located in our San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos Space to Vaxcyte (see further discussion at Note 13, &#8220;Commitments and Contingencies&#8221;). These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based of Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeds fair value less costs to sell, which resulted in a write-down o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $1.5&#160;million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, the Company recorded a n</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on-cash impairment charge of $4.7 million associated with the San Carlos facility leasehold improvements. For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation expense</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,518&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,402&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,113&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(778)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill was previously allocated to each of the Company's reporting units. In July 2023, we announced a restructuring of our business and that we are discontinuing investment in certain development programs, primarily in Novel Biotherapeutics. As a result of this plan, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of $0.8 million to write off all of the associated goodwill. The impairment charge is recorded within the asset impairment and other charges in the condensed consolidated statements of operation in the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Goodwill had a carrying </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">value </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of $2.5 million and $3.2&#160;million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Accrued Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,330&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,495&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued purchases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,402&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,852&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,003&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">932&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other accrued liabilities</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,735&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,279&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><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_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_SupplementalBalanceSheetDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//210/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalBalanceSheetDisclosuresTextBlock</td>
</tr>
<tr>
<td style="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>34
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203208544">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-based Compensation</a></td>
<td class="text">Stock-based Compensation<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Incentive Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2023, our board of directors (the &#8220;Board&#8221;) approved the 2022 Employment Inducement Award Plan (the &#8220;2022 Inducement Plan&#8221;) which provides for the grant of non-qualified stock options, restricted stock awards (&#8220;RSAs&#8221;), restricted stock units (&#8220;RSUs&#8221;), performance awards, other stock awards and dividend equivalents to eligible employees with respect to an aggregate of up to 2,000,000 shares of our common stock. In June 2023, the 2022 Inducement Plan was terminated upon the approval of an amendment to the Company's 2019 Incentive Award Plan (the &#8220;2019 Plan&#8221;) at the annual meeting of the Company's stockholders (the &#8220;Annual Meeting&#8221;) in June 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Board and stockholders approved the 2019 Plan. The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the &#8220;2010 Plan&#8221;) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder. The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants. The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, RSA, RSUs, performance-contingent restricted stock units (&#8220;PSUs&#8221;), performance based options (&#8220;PBOs&#8221;), other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares of our common stock that were initially available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii)&#160;any shares subject to awards granted under the 2010 Plan that were outstanding as of April&#160;22, 2019 and thereafter terminate, expire, lapse or are forfeited. In June 2019, 8.1&#160;million shares authorized for issuance under the 2019 Plan were registered under the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;). In April 2023, the Board approved an amendment to the 2019 Plan (the &#8220;2019 Amended Plan&#8221;) which became effective upon stockholders' approval at the Annual Meeting in June 2023. The 2019 Amended Plan included the (i) increase in the number of shares available by 8,000,000 shares, such that an aggregate of 15,897,144 shares are reserved for issuance under the 2019 Amended Plan and any shares subject to awards granted under the 2010 Plan, and (ii) increase in the number of shares that may be granted as incentive stock options under the 2019 Amended Plan such that an aggregate of 22,000,000 shares of common stock may be granted as incentive stock options under the 2019 Amended Plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, total shares remaining available for issuance under the 2019 Plan were</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 9.1 million s</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">hares.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2023, the Board approved an employee stock purchase plan (the &#8220;ESPP&#8221;) which became effective upon approval at the Annual Meeting in June 2023. The ESPP allows eligible employees of the Company to purchase shares of our common stock through payroll deductions over 24-month offering periods. The per share purchase price will be the lower of 85% of the closing trading price per share of our common stock on the first trading date of an offering period in which a participant is enrolled or 85% of the closing trading price per share on the purchase date. Participant purchases are limited to a maximum of $25,000 of fair value of our stock per calendar year. The Company is authorized to grant up to 2,000,000 shares of common stock under the ESPP. The first offering period of the ESPP commenced in December 2023 and as of December&#160;31, 2023, the Company had not issued any shares of common stock under the ESPP. We recognized $25&#160;thousand of stock-based compensation expenses related to the ESPP in the year ended December&#160;31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock Options</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The option exercise price for incentive stock options must be at least 100% of the fair value of our common stock on the date of grant and the option exercise price for non-statutory stock options is at least 85% of the fair value of our common stock on the date of grant, as determined by the Board. If, at the time of a grant, the optionee directly or by attribution owns stock possessing more than 10% of the total combined voting power of all of our outstanding capital stock, the exercise price for these options must be at least 110% of the fair value of the underlying common stock. Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Stock Units (&#8220;RSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also grant employees RSUs, which generally vest over either a three year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four-year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee&#8217;s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance-contingent Restricted Stock Units (&#8220;PSUs&#8221;) and Performance Based Options (&#8220;PBOs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In prior years, the compensation committee of the Board approved grants of PBOs and PSUs to our executives, and solely in respect of non-executive employees, delegated to our CEO the authority to approve grants of PSUs. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement, as determined by the compensation committee of the Board, and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient&#8217;s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">No PSUs and PBOs were granted in 2023. In 2022, we awarded PSUs (&#8220;2022 PSUs&#8221;) and PBOs (&#8220;2022 PBOs&#8221;), each of which commence vesting based upon the achievement of various weighted performance go</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">als, including finance and corporate strategy, performance enzymes and biotherapeutics deliverables, research plans, and organizational development. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the first quarter of 2023, the compensation committee of the Board determined that the 2022 PSUs and 2022 PBOs performance goals had been achieved at</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 85.0% and 42.5% of the target level, respectively, and recognized stock-based compensation expenses accordingly. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, 50% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2023 and 50% of the shares underlying the 2022 PSUs and PBOs will vest in the first quarter of 2024, in each case, subject to the recipient&#8217;s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2021, we awarded PSUs (&#8220;2021 PBOs&#8221;) and PBOs (&#8220;2021 PBOs&#8221;), each of which commence vesting based upon the determination of the compensation committee of the Board of the achievement of various weighted performance goals, including total revenues, product revenue, performance enzymes pipeline advancements, biotherapeutics pipeline advancements, organization and infrastructure upgrades, and significant events that can be publicly announced. In the first quarter of 2022, we determined that the 2021 PSUs and 2021 PBOs performance goals had been achieved at 146% and 73% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2022 and 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2023, in each case, subject to the recipient&#8217;s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation Expense</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">354&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">224&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,631&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,907&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,663&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,986&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,706&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,593&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,962&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,167&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,764&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,807</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,768</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,649&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,333&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(112)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,289</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,728</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">ESPP</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,593&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the retirement of John Nicols, our former President and Chief Executive Officer, in August 2022, and the Transition and Separation Agreement between Mr. Nicols and the Company, certain supplementary modifications were made to Mr. Nicols' vested and unvested stock option and PBOs awards including voluntary forfeiture of certain unvested stock option and PBOs awards and the extension of the post-termination exercise period of certain vested stock option and PBOs awards. During the year ended December 31, 2022, we recorded a one-time, non-cash incremental compensation expense of $1.0 million, net of the required reversal of previously recognized stock-based compensation expenses attributed to unvested shares, in selling, general and administrative expenses related to these stock option award modifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Grant Award Activities:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock Option Awards</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of stock options using the Black-Scholes-Merton option-pricing model based on the date of grant. The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.7</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">66.2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52.5&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.8&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes the weighted-average assumptions used to estimate the fair value of 50,000, nil, and 9,000 shares of stock options granted to non-employees for services valued at $0.1&#160;million, nil, and $0.1 million during the years ended December&#160;31, 2023, 2022, and 2021 respectively:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.9&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of non-employee stock options granted respectively in 2023, 2022, and 2021 was $1.05, nil and $11.29, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s stock option activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,385&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">286&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26.85&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(664)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(72)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.99&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,935&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(410)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(275)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.01&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,250&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.88&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,046&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(283)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.97&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(839)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,174&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average Remaining Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,174&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.7</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,231&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.61&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.6</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">79&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,748&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.4</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of employee stock options granted in 2023, 2022, and 2021 were $3.31, $4.99 and $12.80, respectively. The total intrinsic value of options exercised in 2023, 2022, and 2021 were $0.7&#160;million, $3.1&#160;million and $14.9&#160;million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">re was $8.2 million of unrecognized stock-based compensation, net of expected forfeitures, related to unvested stock options, which we expect to recognize over a weighted average period of 2.9 years. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Awards (&#8220;RSAs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSA activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.44&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.91&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(62)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.53&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">159&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.53&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">181&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.45&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">277&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(133)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.04&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">325&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.48&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSAs vested in fiscal years 2023, 2022 and 2021</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> were $0.4 million, $0.5 million and $1.3 million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was $0.6 million of unrecognized stock-based compensation cost related to non-vested RSAs, which we expect to recognize over a weighted average period of 0.7 years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Units ("RSUs")</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">176&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26.59&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(70)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13.57&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(37)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">232&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.83&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(106)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.21&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.15&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,049&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.24&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(204)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(343)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,020&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.66&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSUs vested in fiscal years 2023, 2022 and 2021 were </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.1 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $1.8 million and $1.8 million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$4.1 million of unrecognized stock-based compensation cost related to non-vested RSUs, which we expect to recognize over a weighted average period of 2.0 years. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance-Contingent Restricted Stock Units (&#8220;PSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes PSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">131&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15.34&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26.16&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16.14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(19)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.38&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">128&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.24&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">686&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(107)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20.52&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">667&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.41&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.02&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.49&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">292&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of PSUs vested in the years ended December 31, 2023, 2022, and 2021 were $1.6 million, $2.1 million, and $1.3 million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was $0.2 million of unrecognized stock-based compensation cost related to non-vested PSUs, which we expect to recognize over a weighted average period of 0.2 years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance Based Options (&#8220;PBOs&#8221;) </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of PBOs using the Black-Scholes-Merton option-pricing model based on the date of grant. No PBOs were granted to employees for their services during the year ended December&#160;31, 2023. The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.5</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54.9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">51.9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.8&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarizes PBOs activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number<br/>of<br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,560&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.05&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">433&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(35)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.02&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(118)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,840&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(747)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.29&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,826&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.70&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(178)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.73&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,648&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.64&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Remaining<br/>Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,627&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.4</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,646&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.06&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value of e</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">xercised PBOs for 2023, 2022 and 2021, was nil, nil, and $0.3&#160;million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, there was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$15.9&#160;thousand</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of unrecognized stock-based compensation cost related to non-vested PBOs, which we expect to recognize over a weighted average period of 0.2 years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Employee Stock Purchase Plan (&#8220;ESPP&#8221;) </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.584%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:25.216%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.4</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">89.6&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><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_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//718/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203457328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Capital Stock<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Capital Stock</a></td>
<td class="text">Capital Stock<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Distribution Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we filed a Registration Statement on Form S-3 with the SEC, that automatically became effective upon its filing, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to that Registration Statement on Form S-3. Pursuant to that post-effective amendment, we registered an aggregate $200.0&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement ("EDA&#8221;) with Piper Sandler &amp; Co (&#8220;PSC&#8221;), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0&#160;million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an "at the market offering" as defined in Rule 415 under the Securities Act of 1933, as amended. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are not required to sell any shares at any time during the term of the EDA. The EDA will terminate upon the earlier of: (i) the issuance and sale of all shares through PSC on the terms and conditions of the EDA, or (ii) the termination of the EDA in accordance with its terms. Either party may terminate the EDA at any time upon written notification to the other party in accordance with the EDA, and upon such notification, the offering will terminate. Under no circumstances shall any shares be sold pursuant to the EDA after the date which is three years after the registration statement is first declared effective by the SEC. We agreed to pay PSC a commission of 3% of the gross sales price of any shares sold pursuant to the EDA. With the exception of certain expenses, we will pay PSC up to 8% of the gross sales price of the shares sold pursuant to the EDA for a combined amount of commission and reimbursement of PSC's expenses and fees. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA. During the year ended December&#160;31, 2023, we received gross proceeds of $8.7&#160;million or $7.9&#160;million in net proceeds after PSC's commissions and direct offering expenses of $0.7&#160;million. As of December&#160;31, 2023, $41.3 million of shares remained available for sale under the EDA. During the year ended December 31, 2022, no shares of our common stock were sold pursuant to the EDA.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481062/946-235-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481062/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480237/815-40-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//505/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203348576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>401(k) Plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">401(k) Plan</a></td>
<td class="text">401(k) Plan<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2005, we implemented a 401(k) Plan covering certain employees. Currently, all of our United States based employees over the age of 18 are eligible to participate in the 401(k) Plan. Under the 401(k) Plan, eligible employees may elect to reduce their current compensation up to a certain annual limit and contribute these amounts to the 401(k) Plan. We may make matching or other contributions to the 401(k) Plan on behalf of eligible employees. We recorded employer matching contributions expense o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $1.4 million,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $1.6 million, and $1.1 million in the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="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_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for retirement benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480794/715-70-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//715/tableOfContent<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480126/715-20-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480266/715-60-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203492960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text">Income Taxes<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our loss before provision for income taxes were as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,169)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,269)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,037)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(53)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,171)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,316)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,090)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax provision for the years ended December&#160;31, 2023 and 2022 consists primarily of current year state and foreign income taxes. The tax provision for the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 2021 consists primarily of taxes attributable to foreign operations. The components of the provision for income taxes are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current provision:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">141&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current provision </span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">283&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred benefit:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred benefit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">189&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax benefit at federal statutory rate</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15,995)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,996)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,429)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,208)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(494)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,235)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(925)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,793)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,132)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign operations taxed at different rates</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">239&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,698)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other nondeductible items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">438&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(238)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">711&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">152&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">257&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,640&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,635&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">189&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred income taxes reflect the net tax effects of (a)&#160;temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes, and (b)&#160;operating losses and tax credit carryforwards.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">72,586&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69,915&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,412&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,806&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenues</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">176&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,123&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,445&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserves and accruals</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,774&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">457&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">532&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">866&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capital losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">424&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">413&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D Capitalization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,821&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,502&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease liability</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,608&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,586&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,542&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax assets:</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">130,777&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">120,790&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(127,835)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(111,183)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,624)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(736)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(263)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax liabilities:</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,623)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net deferred tax liabilities</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(16)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(16)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:6pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC 740 requires that the tax benefit of NOLs, temporary differences and credit carryforwards be recorded as an asset to the extent that management assesses that realization is "more likely than not." Realization of the future tax benefits is dependent on our ability to generate sufficient taxable income within the carryforward period. Because of our history of operating losses, management believes that recognition of the deferred tax assets arising from the above-mentioned future tax benefits is currently not more likely than not to be realized and, accordingly, has provided a valuation allowance against our deferred tax assets. Accordingly, the net deferred tax assets in all our jurisdictions have been fully reserved by a valuation allowance. The net valuation allowance increased by</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $16.7 million d</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">uring the year ended December&#160;31, 2023, increased by $9.4&#160;million during the year ended December&#160;31, 2022, and increased by $9.6&#160;million during the year ended December&#160;31, 2021. At such time as it is determined that it is more likely than not that the deferred tax assets are realizable, the valuation allowance will be reduced.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2023 (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Expiration<br/>Years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">182,918&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026-2037</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,569&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">147,481&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028-2041</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,815&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2023-2041</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,223&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Current U.S. federal and California tax laws include substantial restrictions on the utilization of NOLs and tax credit carryforwards in the event of an ownership change of a corporation. Accordingly, the Company's ability to utilize NOLs and tax credit carryforwards may be limited as a result of such ownership changes</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We performed an analysis in 2023 and determined that there was not a limitation that would result in the expiration of carryforwards before they are utilized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense or benefit from continuing operations is generally determined without regard to other categories of earnings, such as discontinued operations and other comprehensive income. An exception is provided in ASC 740 when there is aggregate income from categories other than continuing operations and a loss from continuing operations in the current year. In this case, the tax benefit allocated to continuing operations is the amount by which the loss from continuing operations reduces the tax expenses recorded with respect to the other categories of earnings, even when a valuation allowance has been established against the deferred tax assets. In instances where a valuation allowance is established against current year losses, income from other sources is considered when determining whether sufficient future taxable income exists to realize the deferred tax assets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2014, we determined that the undistributed earnings o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f our India subsidiary will be repatriated to the United States, and accordingly, we have provided a deferred tax liability totaling $16&#160;thousand as of December&#160;31, 2023 and 2022, for local taxes that would be incurred upon repatriation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply the provisions of ASC 740 to account for uncertain income tax</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">es. A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,683&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions based on tax positions related to current year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,164&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,553&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,206&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions to tax position of prior years</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reductions to tax position of prior years</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(531)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(243)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,204&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize interest and penalties as a co</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mponent of our income tax expense. Total interest and penalties recognized in the consolidated statements of operations were $42 thousand, $42 thousand and $61 thousand in 2023, 2022 and 2021, respectively. Total penalties and interest recognized in the balance sheet was $0.6 million, $0.5 million and $0.5 million as of December&#160;31, 2023, 2022 and 2021, respectively. The total unrecognized tax benefits that, if recognized currently, would impact our company&#8217;s effective tax rate were $0.3 million as of December&#160;31, 2023, 2022 and 2021. We do not expect any material changes to our uncertain tax positions within the next 12 months. We are not subject t</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">o examination by United States federal or state tax authorities for years prior to 2002 and foreign tax authorities for years prior to 2014.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//740/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-21<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482526/740-270-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-17<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482603/740-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>38
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203116800">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text">Commitments and Contingencies<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Operating Leases</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park operated by Metropolitan Life Insurance Company (&#8220;MetLife&#8221;). Our lease agreement with MetLife (&#8220;RWC Lease&#8221;) includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#8220;200/220 Penobscot Space&#8221;) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#8220;400 Penobscot Space&#8221;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#8220;Penobscot Space&#8221;), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#8220;501 Chesapeake Space&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In February 2019, we entered into an Eighth Amendment to the Lease (the &#8220;Eighth Amendment&#8221;) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (5) years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of&#160;$1.1 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of&#160;December&#160;31, 2023 and 2022, and are recorded as non-current restricted cash on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (&#8220;ARE&#8221;) to lease a portion of a facility consisted of approximately 36,593 rentable square feet in San Carlos, California to serve as additional office and research and development laboratory space (the &#8220;San Carlos Space&#8221;). The lease had a 10-year term from the lease commencement date of November 30, 2021 with one option to extend the term for an additional period of 5 years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#8220;Assignment Agreement&#8221;) with Vaxcyte, Inc. (&#8220;Vaxcyte&#8221;) to assign to Vaxcyte all of the Company&#8217;s right, title and interest in, under and to the San Carlos Space and the Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE entered into a Consent to Assignment and First Amendment (the &#8220;Consent&#8221;) pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#8217;s interest as tenant in the lease and agreed to release the Company from all of its obligations under the lease that accrue from and after the assignment. Under the Assignment Agreement, the Company prepaid to ARE (i) the base rent, as defined in the lease agreement, and (ii) certain amounts payable to ARE in connection with tenant improvements completed by ARE pursuant to the lease, which a</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mounted to $3.1 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We provided ARE with a $0.5 million security deposit in the form of a letter of credit, which was released in November 2023 following the effectiveness of the lease assignment on October 1, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the Assignment Agreement, the Company remeasured the lease obligation for the San Carlos Space as $3.1 million, or the present value of the remaining lease payments, which consist of the remaining rent through the effectiveness of the lease assignment and certain amounts payable to ARE pursuant to the Assignment Agreement, and wrote off the remaining lease liability of $19.6 million and the corresponding right of use asset balance. Simultaneously, the Company determined that indicators of impairment existed because the lease assignment will impact the utilization of the related right of use assets and leasehold improvements in the San Carlos Space, and therefore performed a recoverability test by estimating future undiscounted net cash flows expected to be generated from the use of these assets. As there were no substantial future cash inflows associated with these assets, the carrying values of these assets were deemed unrecoverable. As a result, the Company recognized a non-cash impairment charge of $7.7 million, of which $4.7 million is related to leasehold improvements and $3.0 million for the right of use assets, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December&#160;31, 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2023 and the balance as of December&#160;31, 2023, including the changes during the period (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Right-of-use Assets - Operating Lease, net</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at January 1, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,263&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,405)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">898&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Remeasurement due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(19,622)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,997)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at December&#160;31, 2023</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,137&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div><span><br/></span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Lease Obligations - Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at January 1, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,638&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,897)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest accretion</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,905&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Remeasurement due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(19,622)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at December&#160;31, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to restore certain areas of the Redwood City facility that we are renting to its original form. We are expensing the asset retirement obligation over the term of the Redwood City lease. We review the estimated obligation each reporting period and make adjustments if our estimates change. As a result of the lease assignment for the San Carlos Space, discussed further above, we wrote off the related asset retirement obligation of $0.2 million in 2023. We recorded asset retirement obligations of $0.3&#160;million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and $0.5 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2023 and 2022, respectively, which are included in other liabilities on the consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the years ended December&#160;31, 2023 and 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease and other information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">106&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,321&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,396&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term lease costs</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,379&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,572&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="12" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> The Company had no variable lease costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amounts included in measurement of lease obligations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,897&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,197&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Non-cash activity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating Lease - Right-of-use assets obtained in exchange for lease liabilities</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,445&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Lease</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.8</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:82.379%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.421%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ending December 31,</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2024</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,727&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,868&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,014&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,533&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">760&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">318&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total minimum lease payments </span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,220&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,196&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reconciliation of operating lease liabilities as shown within the audited consolidated balance sheets:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,781&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,243&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Commitments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:58.987%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Payments Due by Period</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025 and Thereafter</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Facility maintenance agreement</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">701&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">701&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Credit Facility</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 30, 2017, we entered into a credit facility (the &#8220;Credit Facility&#8221;) with Western Alliance Bank consisting of term loans (&#8220;Term Debt&#8221;) up to $10.0 million, and advances (&#8220;Advances&#8221;) under a revolving line of credit (&#8220;Revolving Line of Credit&#8221;) up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2022. In March 2023, we terminated the Credit Facility with Western Alliance Bank. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024, we entered into the Loan Agreement with Innovatus. See further discussion at Note 18, &#8220;Subsequent Events.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Legal Proceedings</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we reached a settlement resolving a non-material dispute involving the Company's trademark. The terms of the settlement are not material to our business or the results of operations. We are currently not a party to any material pending litigation or other material proceedings.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Indemnifications</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482648/440-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//450/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480327/954-440-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482648/440-10-50-4<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>39
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203237408">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsDisclosureTextBlock', window );">Related Party Transactions</a></td>
<td class="text">Related Party Transactions <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Molecular Assemblies, Inc.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with MAI, a privately held life sciences company, pursuant to which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. Mr. Nicols, our former President and CEO until August 2022, also joined MAI&#8217;s board of directors in June 2020 and remained on MAI's board until September 2023. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the &#8220;MAI Agreement&#8221;), pursuant to which performed services utilizing our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock which are valued based on the observed transaction price of similar securities that MAI issued to third parties. We completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In addition to our initial equity investment and the shares we have received under the MAI Agreement, in April 2021, we purchased an additional 1,000,000 shares of MAI's Series A preferred stock for $0.6&#160;million and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in September 2021, we purchased 9,198,423 shares of MAI's Series B preferred stock for $7.0&#160;million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase (TdT) enzyme in MAI&#8217;s Fully Enzymatic Synthesis&#8482; (or FES&#8482;) technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues recognized from transactions with MAI in the year ended December 31, 2023, and subsequent to the related party period which ended in August 2022, are included in the consolidated statement of operations. We recogniz</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.2 million and $2.0&#160;million in research and development revenue pursuant to the MAI Agreement in the years ended December&#160;31, 2022 and 2021, respectively. We recognized $0.5&#160;million in product revenue from transactions with MAI in the year ended December&#160;31, 2022 and during the related party period.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481062/946-235-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481062/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483326/850-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(g)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//850/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483326/850-10-50-6<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483326/850-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483326/850-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>40
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203314176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment, Geographical and Other Revenue Information</a></td>
<td class="text">Segment, Geographical and Other Revenue Information<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocated resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Customers</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues<br/>For the Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:9pt;padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer F</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Geographical Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">23,481&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)(3)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,187&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(4)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,086&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> United States revenue was $13.7 million, $17.0 million, and $23.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Ireland revenue was $0.5 million, $37.2 million, and $1.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Switzerland revenue was $11.1 million, $9.2 million, and $10.1 million, for the for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> China revenue was $20.3 million, $48.6 million, and $43.5 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,624&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,877&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable goodwill was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(778)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-15<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//280/tableOfContent<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-26<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 34<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-34<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-21<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-21<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>41
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203243584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Allowance for Credit Losses<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesAbstract', window );"><strong>Receivables [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_CreditLossFinancialInstrumentTextBlock', window );">Allowance for Credit Losses</a></td>
<td class="text">Allowance for Credit Losses<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets allowance for credit losses (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">416&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">74&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">342&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Write-offs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(257)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Adjustment to existing allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(50)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">416&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize accounts receivable by aging category (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:18.487%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.719%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">91 Days and Over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total Balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,583&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">209&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">167&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">453&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,036&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:5pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">91 Days and Over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total Balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,896&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,747&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">469&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">792&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,008&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">31,904&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><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_CreditLossFinancialInstrumentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-42<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 44<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-44<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-21<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-11<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-7<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-8<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditLossFinancialInstrumentTextBlock</td>
</tr>
<tr>
<td style="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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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>42
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203267296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock', window );">Restructuring Charges</a></td>
<td class="text">Restructuring Charges<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, in alignment with our enhanced strategic focus, we announced a restructuring of our business, including a plan for a workforce reduction of approximately 25%. During the year ended December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, w</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e recorded a restructuring charge related to this workforce reduction of $3.1 million related to severance and related benefit costs. The plan was substantially completed in September 2023 and severance costs were paid through the fourth quarter of 2023. We do not expect to record any significant future charges related to the restructuring plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> In November 2022, we announced a plan for a workforce reduction of approximately 18% to realign and optimize our workforce requirements in alignment with our refined corporate strategy. The plan was substantially completed in December 2022 and severance costs were paid through the third quarter of 2023. During the years ended December&#160;31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we recorded restructuring charges of $0.2 million and $3.2 million, respectively, related to severance, bonus and other termination benefits in connection with the workforce reduction announced in November 2022. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We do not expect to record any future charges related to the restructuring plans initiated in 2023 and 2022.</span></div><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_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="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_RestructuringAndRelatedActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//420/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>43
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203299680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent Events<div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February&#160;13, 2024, we entered into a 5-year loan and security agreement (the &#8220;Loan Agreement&#8221;) with Innovatus Life Sciences Lending Fund I, LP (&#8220;Innovatus&#8221;), an affiliate of Innovatus Capital Partners, LLC, for an aggregate principal amount of up to $40.0 million (the &#8220;Term Loans&#8221;). The Term Loans consist of two tranches, of which the first tranche of $30.0 million was completed on February&#160;13, 2024. We will be eligible to draw on the second tranche of $10.0 million upon achievement of certain milestones including certain pre-specified revenue thresholds. The </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Term Loan carries an interest-only period of 36 months and will bear an interest at a floating rate of the sum of (a) the greater of (i) prime rate and (ii) 7.50%, plus (b) 3.25%. In connection with the Term Loans, we are required to issue to Innovatus a warrant to purchase an aggregate of 424,028 shares of the Company&#8217;s common stock at an exercise price of $2.83 per share. The Loan Agreement contains customary representations and warranties and covenants, subject to customary carve outs, and includes financial covenants related to liquidity and net product revenue, with the latter beginning with the period ending September 30, 2024.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>44
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201805008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
<td class="num">$ (21,279)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-11<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-4<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-10<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483581/946-220-45-7<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-60B<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483499/205-20-50-7<br><br>Reference 35: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 38: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 39: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206373728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</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="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<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="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<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="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<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="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</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_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</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_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</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_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</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_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</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>46
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200170976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation and Principles of Consolidation</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) and the applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency Translation</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Foreign Currency Translation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. The majority of our contracts with customers typically contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a description of principal activities from which we generate revenue:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer typically upon shipment or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#8217;s use. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success. For licenses that have been previously sold to other customers, we use historical information to determine SSP.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Practical Expedients, Elections, and Exemptions</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to treat shipping and handling activities as fulfillment costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to record revenue net of sales and other similar taxes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Assets </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Costs</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $3.0&#160;million, and $1.8&#160;million for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Research and Development Services</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Research and Development Expenses</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Advertising</span></div>Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restricted Stock Units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSUs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), Restricted Stock Awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs&#8221;) and performance-contingent restricted stock units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PSUs&#8221;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PBOs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy', window );">Cash and Cash Equivalents</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash and Cash Equivalents</span></div>We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy', window );">Restricted Cash</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Cash</span></div>In 2016, we began the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations.Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million and $1.5&#160;million as of&#160;December&#160;31, 2023 and 2022, respectively. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value Measurements</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fair Value Measurements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#8217;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life. </span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#8217;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentrations of Credit Risk</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Credit Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2023, we h</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ad four customers that accounted for 58% of our ac</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">counts receivable balance. As of December&#160;31, 2022, two customers accounted for 63% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Financial Assets and Allowances</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Financial Assets and Allowances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#8220;current expected credit loss model&#8221; or &#8220;CECL&#8221;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#8220;ACL&#8221;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy', window );">Unbilled Receivable</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unbilled Receivable</span></div>The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.</span></div><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="Show.showAR( this, 'defref_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock', window );">Concentrations of Supply Risk</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Supply Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">-</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock', window );">Impairment of Long-Lived Assets</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span>ee Note 8, &#8220;Balance Sheets Details&#8221; and Note 13, &#8220;Commitments and Contingencies.&#8221;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentPolicyTextBlock', window );">Investment in Non-Marketable Equity Securities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in other income (expense), net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an "other-than-temporary&#8221; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div>The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment considering amongst other things, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$2.5&#160;million and $3.2&#160;million as of December&#160;31, 2023 and 2022, respectively. </span></div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative "Step 0" assessment based on reviewing relevant events and circumstances; or a quantitative "Step 1" assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. We recorded impairment charges related to goodwill of $0.8&#160;million, nil, and nil for the years ended December&#160;31, 2023, 2022, and 2021, respectively. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span>ee Note 8, &#8220;Balance Sheets Details.&#8221;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Lease Accounting</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease Accounting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. We have recorded a valuation allowance against these deferred tax assets in jurisdictions where ultimate realization of deferred tax assets is more likely than not to occur. As of December&#160;31, 2023 and 2022, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) 2009-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#8217;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#8220;NOL</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Accounting Pronouncements</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aside from those recently issued accounting pronouncements not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2023 that are of significance or potential significance to us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, the Financial Accounting Standards Board (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">FASB</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) issued ASU No. 2023-09,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to benefit investors by providing more detailed income tax disclosures that would be useful in making capital allocation decisions. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, FASB issued ASU No. 2023-07,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2023, FASB issued ASU No. 2023-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Disclosure Improvements: Codification Amendments in Response to the SEC&#8217;s Disclosure Update and Simplification Initiative</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the Accounting Standards Codification (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#8217;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingPolicyPolicyTextBlock', window );">Segment Reporting</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocated resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Concentration Risk, Supply Risk [Policy Text Block]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for basis of accounting, or basis of presentation, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents with respect to unrestricted balances.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480981/942-825-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 60<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 820<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482053/820-10-60-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//830/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="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_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.CC)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480091/360-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482338/360-10-05-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-25<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-28<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-19<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483489/210-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482105/912-330-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//330/tableOfContent<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483080/330-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482989/270-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InvestmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for investment in financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 12<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 19<br> -Subparagraph (2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-19<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentPolicyTextBlock</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480321/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480321/958-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483044/730-10-05-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-18<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SegmentReportingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for segment reporting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-29<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-29<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-29<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-29<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-29<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-29<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//718/tableOfContent<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for treatment of receivables that are billable but have not been billed as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//310/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy</td>
</tr>
<tr>
<td style="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_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="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>47
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203289088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of Estimated Ranges of Useful Lives of Property and Equipment</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">37,216&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,679&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,912&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,633&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,565&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,039&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,469&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,345&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,739&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,798&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62,435&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,311)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,821)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,487&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,614&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $3.0 million and $1.5 million were retired during the years ended December&#160;31, 2023 and 2022, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation expense</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,518&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,402&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,113&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="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>48
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201347968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disaggregated information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,657&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34,097&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">23,481&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,187&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,086&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">815&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,116&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,904&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,016&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract costs</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,761&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,609&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized the following revenues (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,937&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,038&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">279&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,041&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">136,273&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock', window );">Performance Obligation, Expected Timing of Satisfaction</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:32.964%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.624%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2026</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2027 and Thereafter</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,121&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">140&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">140&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">360&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,761&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of expected timing for satisfying remaining performance obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock</td>
</tr>
<tr>
<td style="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>49
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203166912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Loss per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock', window );">Shares Not Included in Computation of Diluted Net Loss Per Share</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plans and ESPP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,028&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,442&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,215&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Included 568,224 of anti-dilutive potential common shares from ESPP for the year ended December&#160;31, 2023.</span></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="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>50
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203495216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract', window );"><strong>Investments, Debt and Equity Securities [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock', window );">Carrying Value of Non-marketable Equity Securities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">MAI</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,693&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,921&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">seqWell</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,625&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Arzeda</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,289&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other investments in non-marketable equity securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">300&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,700&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,510&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><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_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock</td>
</tr>
<tr>
<td style="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_InvestmentsDebtAndEquitySecuritiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract</td>
</tr>
<tr>
<td style="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>51
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200881760">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock', window );">Summary of Financial Instruments Measured at Fair Value on a Recurring Basis</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables present the financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:46.268%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:46.268%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;2</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level&#160;3</span></div></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><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_FairValueAssetsMeasuredOnRecurringBasisTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>52
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206190880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock', window );">Schedule of Cash and Cash Equivalents</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:46.268%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77,309&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Money market funds are classified in cash and cash equivalents on our consolidated balance sheets. Average contractual maturities (in days) is not applicable.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Schedule of Inventory Components</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work in process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">91&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods </span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,570&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,830&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total inventories</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,685&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,029&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Property and Equipment, Net</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">37,216&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,679&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,912&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,633&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,565&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,039&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,469&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,345&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,739&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,798&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62,435&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,311)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,821)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,487&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,614&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $3.0 million and $1.5 million were retired during the years ended December&#160;31, 2023 and 2022, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation expense</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,518&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,402&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,113&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Schedule of Goodwill</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(778)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Liabilities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,330&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,495&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued purchases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,402&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,852&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,003&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">932&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other accrued liabilities</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,735&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,279&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><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_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfCashAndCashEquivalentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of cash and cash equivalents.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="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>53
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206595568">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of Stock-based Compensation Expense</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">354&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">224&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,631&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,907&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,663&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,986&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,706&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,593&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,962&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,167&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,764&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,807</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,768</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,649&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,333&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(112)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,289</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,728</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">ESPP</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,593&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Assumptions Used to Estimate the Fair Value of Option Grants</a></td>
<td class="text">The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.7</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">66.2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52.5&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.8&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes the weighted-average assumptions used to estimate the fair value of 50,000, nil, and 9,000 shares of stock options granted to non-employees for services valued at $0.1&#160;million, nil, and $0.1 million during the years ended December&#160;31, 2023, 2022, and 2021 respectively:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.9&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div>The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.5</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54.9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">51.9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.8&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of Share-based Compensation, Stock Options, Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s stock option activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,385&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">286&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26.85&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(664)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(72)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.99&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,935&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(410)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(275)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.01&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,250&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.88&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,046&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(283)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.97&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(839)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,174&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average Remaining Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,174&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.7</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,231&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.61&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.6</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">79&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,748&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.4</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">170&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock', window );">Schedule of Share-based Compensation, RSA Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSA activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.44&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.91&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(62)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.53&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">159&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.53&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">181&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.45&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">277&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(133)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.04&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">325&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.48&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of Share-based Compensation, RSU Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">176&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26.59&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(70)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13.57&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(37)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">232&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.83&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(106)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.21&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.15&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,049&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.24&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(204)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(343)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,020&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.66&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock', window );">Share-based Compensation, Performance Shares Award Outstanding Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes PSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">131&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15.34&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26.16&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16.14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(19)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.38&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">128&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.24&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">686&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(107)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20.52&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">667&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.41&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.02&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.49&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">292&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarizes PBOs activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number<br/>of<br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2020</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,560&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.05&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">433&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(35)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.02&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(118)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,840&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(747)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.29&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,826&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.70&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(178)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.73&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,648&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.64&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Remaining<br/>Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,627&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.4</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,646&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.06&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock', window );">Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.584%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:25.216%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.4</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">89.6&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Subparagraph (c)<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock</td>
</tr>
<tr>
<td style="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>54
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200273168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Schedule of Loss Before Income Taxes, Domestic and Foreign</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our loss before provision for income taxes were as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,169)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,269)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,037)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(53)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,171)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,316)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,090)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Components of Provision for Income Taxes</a></td>
<td class="text">The components of the provision for income taxes are as follows (in thousands):&#160;<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current provision:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">141&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current provision </span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">283&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">198&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred benefit:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred benefit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">189&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Reconciliation of Provision for Income Taxes Calculated at the Statutory Rate to Provision for Income Taxes</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax benefit at federal statutory rate</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15,995)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,996)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,429)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,208)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(494)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,235)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(925)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,793)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,132)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign operations taxed at different rates</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">239&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,698)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other nondeductible items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">438&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(238)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">711&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">152&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">257&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,640&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,635&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">189&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Significant Components of Deferred Tax Assets and Liabilities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">72,586&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69,915&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,412&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,806&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenues</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">176&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,123&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,445&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserves and accruals</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,774&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">457&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">532&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">866&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capital losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">424&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">413&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D Capitalization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,821&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,502&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease liability</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,608&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,586&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,542&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax assets:</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">130,777&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">120,790&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(127,835)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(111,183)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,624)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(736)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(263)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax liabilities:</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,623)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net deferred tax liabilities</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(16)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(16)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:6pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock', window );">Summary of Federal, State and Foreign NOL Carryforwards and Federal Research and Development Tax Credits</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2023 (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Expiration<br/>Years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">182,918&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026-2037</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118,569&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">147,481&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028-2041</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,815&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2023-2041</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,223&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Reconciliation of the Beginning and Ending Amount of Unrecognized Tax Benefits</a></td>
<td class="text">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,683&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions based on tax positions related to current year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,164&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,553&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,206&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions to tax position of prior years</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reductions to tax position of prior years</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(531)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(243)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,204&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Paragraph 9<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Paragraph 12<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of income before income tax between domestic and foreign jurisdictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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_SummaryOfOperatingLossCarryforwardsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock</td>
</tr>
<tr>
<td style="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>55
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201284656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="Show.showAR( this, 'defref_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock', window );">Schedule of Right-of-use Assets and Lease Obligations</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2023 and the balance as of December&#160;31, 2023, including the changes during the period (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Right-of-use Assets - Operating Lease, net</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at January 1, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39,263&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,405)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">898&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Remeasurement due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(19,622)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,997)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at December&#160;31, 2023</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,137&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div><span><br/></span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Lease Obligations - Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at January 1, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,638&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,897)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest accretion</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,905&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Remeasurement due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(19,622)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at December&#160;31, 2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Lease Cost</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">106&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,321&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,396&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term lease costs</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,379&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,572&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="12" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> The Company had no variable lease costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amounts included in measurement of lease obligations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,897&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,197&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Non-cash activity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating Lease - Right-of-use assets obtained in exchange for lease liabilities</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25,445&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Lease</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.8</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Operating Lease Maturity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:82.379%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.421%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ending December 31,</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2024</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,727&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,868&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,014&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,533&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">760&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">318&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total minimum lease payments </span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,220&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,196&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reconciliation of operating lease liabilities as shown within the audited consolidated balance sheets:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,781&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,243&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplyCommitmentTableTextBlock', window );">Schedule of Supply Commitment</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:58.987%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.623%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Payments Due by Period</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025 and Thereafter</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Facility maintenance agreement</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">701&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">701&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Schedule Of Right-of-use Assets And Lease Obligations</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplyCommitmentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of arrangements in which the entity has committed resources to supply goods or services to a customer. May include identification of the goods or services to be furnished, identity of the purchasing party, pricing, effects on pricing for failing to deliver the [minimum] quantities required to be furnished, cancellation rights, and termination provisions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplyCommitmentTableTextBlock</td>
</tr>
<tr>
<td style="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>56
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201775472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock', window );">Schedule of Customers That Contributed 10% or More of Total Accounts Receivable</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues<br/>For the Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:9pt;padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer F</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock', window );">Schedule of Revenues by Geographical Area</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">23,481&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)(3)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,187&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(4)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,086&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,754&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> United States revenue was $13.7 million, $17.0 million, and $23.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Ireland revenue was $0.5 million, $37.2 million, and $1.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Switzerland revenue was $11.1 million, $9.2 million, and $10.1 million, for the for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> China revenue was $20.3 million, $48.6 million, and $43.5 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock', window );">Schedule of Long-lived Assets by Geographical Area</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,624&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61,877&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock', window );">Schedule of Intangible Assets and Goodwill</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable goodwill was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(778)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><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_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of all significant reconciling items in the reconciliation of total revenues from reportable segments to the entity's consolidated revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock</td>
</tr>
<tr>
<td style="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_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-16<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock</td>
</tr>
<tr>
<td style="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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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>57
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358204921696">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Allowance for Credit Losses (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesAbstract', window );"><strong>Receivables [Abstract]</strong></a></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="Show.showAR( this, 'defref_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock', window );">Analysis of Allowance for Credit Losses</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets allowance for credit losses (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">416&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">74&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">342&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Write-offs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(257)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Adjustment to existing allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(50)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">416&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PastDueFinancingReceivablesTableTextBlock', window );">Summary of Accounts Receivable by Aging</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize accounts receivable by aging category (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:18.487%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.719%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">91 Days and Over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total Balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,583&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">209&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">77&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">167&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">453&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,036&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:5pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">91 Days and Over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total Balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,896&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,747&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">469&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">792&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,008&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">31,904&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><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_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allowance for credit loss on financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-11B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock</td>
</tr>
<tr>
<td style="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_PastDueFinancingReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of aging analysis for financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 80<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479294/326-20-55-80<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-7<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PastDueFinancingReceivablesTableTextBlock</td>
</tr>
<tr>
<td style="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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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>58
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358207988032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of Business (Details) - segment<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<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_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="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:integerItemType</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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="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>59
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200464704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [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="Show.showAR( this, 'defref_cdxs_ShippingAndDistributionCost', window );">Shipping and distribution cost</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="nump">$ 1,800<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising expense</a></td>
<td class="nump">300<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="nump">300<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashCurrent', window );">Current restricted cash</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">500<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="Show.showAR( this, 'defref_us-gaap_RestrictedCashNoncurrent', window );">Restricted cash</a></td>
<td class="nump">1,062<span></span>
</td>
<td class="nump">1,521<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="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse', window );">Impairment of long-lived assets held-for-use</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<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="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">3,241<span></span>
</td>
<td class="nump">3,241<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">778<span></span>
</td>
<td class="nump">0<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="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember', window );">Novel Biotherapeutics</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">$ 800<span></span>
</td>
<td class="nump">$ 0<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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_FourCustomersMember', window );">Four Customers | Accounts Receivable | Customer Concentration Risk</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">58.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_TwoCustomersMember', window );">Two Customers | Accounts Receivable | Customer Concentration Risk</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63.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="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_LetterOfCreditMember', window );">Letter of Credit | Cash Deposit</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashNoncurrent', window );">Restricted cash</a></td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="nump">$ 1,500<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_cdxs_AccountingPoliciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounting Policies</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AccountingPoliciesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_ShippingAndDistributionCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shipping And Distribution Cost</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShippingAndDistributionCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingExpense</td>
</tr>
<tr>
<td style="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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="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_ImpairmentOfLongLivedAssetsHeldForUse">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLongLivedAssetsHeldForUse</td>
</tr>
<tr>
<td style="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_RestrictedCashCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage, classified as current. 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashCurrent</td>
</tr>
<tr>
<td style="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_RestrictedCashNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage, classified as noncurrent. 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 210<br> -Topic 954<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480632/954-210-45-5<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashNoncurrent</td>
</tr>
<tr>
<td style="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_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember</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=cdxs_FourCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_FourCustomersMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_TwoCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_TwoCustomersMember</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_CreditFacilityAxis=us-gaap_LetterOfCreditMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CreditFacilityAxis=us-gaap_LetterOfCreditMember</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_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=cdxs_CashDepositMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=cdxs_CashDepositMember</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>60
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206599008">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Laboratory equipment</a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_ComputerEquipmentAndSoftwareMember', window );">Computer equipment and software</a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">3 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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember', window );">Office equipment and furniture</a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<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_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=cdxs_ComputerEquipmentAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=cdxs_ComputerEquipmentAndSoftwareMember</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_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember</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>61
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206783216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">13,733<span></span>
</td>
<td class="nump">17,000<span></span>
</td>
<td class="nump">23,481<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">EMEA</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">22,907<span></span>
</td>
<td class="nump">56,540<span></span>
</td>
<td class="nump">20,187<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">APAC</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">33,503<span></span>
</td>
<td class="nump">65,050<span></span>
</td>
<td class="nump">61,086<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">42,906<span></span>
</td>
<td class="nump">116,676<span></span>
</td>
<td class="nump">70,657<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 27,237<span></span>
</td>
<td class="nump">$ 21,914<span></span>
</td>
<td class="nump">$ 34,097<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_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_srt_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=us-gaap_EMEAMember</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=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AsiaPacificMember</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_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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>62
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201354560">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Contracts with Customer (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetGrossCurrent', window );">Contract assets</a></td>
<td class="nump">$ 815<span></span>
</td>
<td class="nump">$ 2,116<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledContractsReceivable', window );">Unbilled receivables</a></td>
<td class="nump">9,904<span></span>
</td>
<td class="nump">7,016<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostNetCurrent', window );">Contract costs</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">19<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<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_CapitalizedContractCostNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer; classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479483/340-40-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalizedContractCostNetCurrent</td>
</tr>
<tr>
<td style="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_ContractWithCustomerAssetGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetGrossCurrent</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_UnbilledContractsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482312/912-310-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledContractsReceivable</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206558688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetCreditLossExpense', window );">Impairment charges related to contract assets</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<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="Show.showAR( this, 'defref_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_ShortTermUnbilledReceivablesMember', window );">Short-Term Unbilled Receivables</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate', window );">Unbilled receivables, not billable</a></td>
<td class="nump">9,100,000<span></span>
</td>
<td class="nump">$ 7,000,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="Show.showAR( this, 'defref_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_LongTermUnbilledReceivablesMember', window );">Long-Term Unbilled Receivables</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate', window );">Unbilled receivables, not billable</a></td>
<td class="nump">$ 800,000<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="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum | Accounts Receivable</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_cdxs_RevenueFromContractWithCustomerPaymentTerms', window );">Payment terms</a></td>
<td class="text">30 days<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="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum | Accounts Receivable</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_cdxs_RevenueFromContractWithCustomerPaymentTerms', window );">Payment terms</a></td>
<td class="text">90 days<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_cdxs_RevenueFromContractWithCustomerPaymentTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue From Contract With Customer, Payment Terms</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueFromContractWithCustomerPaymentTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_ContractWithCustomerAssetCreditLossExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetCreditLossExpense</td>
</tr>
<tr>
<td style="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_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_UnbilledReceivablesNotBillableAtBalanceSheetDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unbilled receivables under long-term contracts that have not been billed and were not billable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 910<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482546/910-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate</td>
</tr>
<tr>
<td style="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_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_ShortTermUnbilledReceivablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_ShortTermUnbilledReceivablesMember</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_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_LongTermUnbilledReceivablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_LongTermUnbilledReceivablesMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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>64
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358205064560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Revenue Recognized (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract', window );"><strong>Amounts included in contract liabilities at the beginning of the period:</strong></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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="nump">$ 2,038<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ChangeInContractWithCustomerLiabilityAbstract', window );"><strong>Changes in the period:</strong></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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice', window );">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</a></td>
<td class="nump">4,165<span></span>
</td>
<td class="nump">279<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="Show.showAR( this, 'defref_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition', window );">Performance obligations satisfied from new activities in the period - contract revenue</a></td>
<td class="nump">48,041<span></span>
</td>
<td class="nump">136,273<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized', window );">Total revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_ChangeInContractWithCustomerAssetAndLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract</td>
</tr>
<tr>
<td style="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_ChangeInContractWithCustomerLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInContractWithCustomerLiabilityAbstract</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in estimate of transaction price which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due. Includes, but is not limited to, change in assessment of whether estimate of variable consideration is constrained.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206534320">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Performance Obligation (Details) - Product revenue<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2023 </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="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 10,761<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01</a></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="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 10,121<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01</a></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="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 140<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-01-01</a></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="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 140<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-01-01</a></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="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 360<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<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_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="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_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-01</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01</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>66
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200832352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Loss per Share (Details) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember', window );">Shares issuable under the Equity Incentive Plans and ESPP</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total shares excluded as anti-dilutive (in shares)</a></td>
<td class="nump">9,028,000<span></span>
</td>
<td class="nump">7,442,000<span></span>
</td>
<td class="nump">5,215,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="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockMember', window );">ESPP</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total shares excluded as anti-dilutive (in shares)</a></td>
<td class="nump">568,224<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockMember</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>67
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358196534176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - GSK Platform Technology Transfer, Collaboration and License Agreement (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="4">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jul. 31, 2014 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>payment</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="nump">$ 2,038<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_GSKMember', window );">GSK Platform</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,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="Show.showAR( this, 'defref_cdxs_CollaborativeArrangementNumberOfMilestonePayments', window );">Additional milestone payments | payment</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_GSKMember', window );">GSK Platform | Research and development revenue</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</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">$ 1,300<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 4,300<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_GSKMember', window );">GSK Platform | Minimum</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RevenueFromCollaborativeArrangementContingentAmounts', window );">Additional contingent payments</a></td>
<td class="nump">$ 5,800<span></span>
</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>
<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_GSKMember', window );">GSK Platform | Maximum</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RevenueFromCollaborativeArrangementContingentAmounts', window );">Additional contingent payments</a></td>
<td class="nump">$ 38,500<span></span>
</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>
<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_cdxs_CollaborativeArrangementNumberOfMilestonePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Collaborative Arrangement, Number Of Milestone Payments</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CollaborativeArrangementNumberOfMilestonePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</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_cdxs_RevenueFromCollaborativeArrangementContingentAmounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue From Collaborative Arrangement, Contingent Amounts</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueFromCollaborativeArrangementContingentAmounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_GSKMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_GSKMember</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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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>68
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200313552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Merck Platform Technology Transfer and License Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Aug. 31, 2015</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="nump">$ 2,038<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Technology Transfer and License Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 40<span></span>
</td>
<td class="nump">$ 600<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15,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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Technology Transfer and License Agreement | Research and development revenue</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 100<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_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_MerckMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_MerckMember</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_TypeOfArrangementAxis=cdxs_TechnologyTransferCollaborationandLicenseAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_TechnologyTransferCollaborationandLicenseAgreementMember</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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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>69
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201220160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Merck Sitagliptin Catalyst Supply Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2015</div></th>
<th class="th"><div>Feb. 29, 2012</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="nump">$ 2,038<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="nump">$ 42,906<span></span>
</td>
<td class="nump">$ 116,676<span></span>
</td>
<td class="nump">$ 70,657<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_SitagliptinEnzymeMember', window );">Sitagliptin Enzyme | Revenue Benchmark | Collaborative Arrangement Concentration Risk</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</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>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">9.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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Sitagliptin Enzyme</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="nump">$ 700<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Supply Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement', window );">Term of collaborative research and development agreement</a></td>
<td class="text">5 years<span></span>
</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>
<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Supply Agreement | Product revenue</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</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>
<td class="nump">$ 4,400<span></span>
</td>
<td class="nump">$ 5,900<span></span>
</td>
<td class="nump">$ 9,800<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of collaborative research and development agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_ProductOrServiceAxis=cdxs_SitagliptinEnzymeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_SitagliptinEnzymeMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CollaborativeArrangementConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CollaborativeArrangementConcentrationRiskMember</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_CounterpartyNameAxis=cdxs_MerckMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_MerckMember</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_TypeOfArrangementAxis=cdxs_SupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_SupplyAgreementMember</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>70
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201019184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Enzyme Supply Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">10,761<span></span>
</td>
<td class="nump">30,609<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="Show.showAR( this, 'defref_us-gaap_TypeOfArrangementAxis=cdxs_SupplyAgreementMember', window );">Supply Agreement</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,300<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="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">42,906<span></span>
</td>
<td class="nump">$ 116,676<span></span>
</td>
<td class="nump">$ 70,657<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue | Enzyme Supply Agreement</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">3,200<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="Show.showAR( this, 'defref_cdxs_RevenueFromContractWithCustomerSettlementFee', window );">Revenue from contract with customer, settlement fee</a></td>
<td class="nump">$ 1,300<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_cdxs_RevenueFromContractWithCustomerSettlementFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue From Contract With Customer, Settlement Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueFromContractWithCustomerSettlementFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_TypeOfArrangementAxis=cdxs_SupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_SupplyAgreementMember</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_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_TypeOfArrangementAxis=cdxs_EnzymeSupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_EnzymeSupplyAgreementMember</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>71
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206529424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Commercial Agreement (Details) - Tate &amp; Lyle - Commercial Agreement - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Nov. 30, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.1<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="Show.showAR( this, 'defref_cdxs_ReceivableFromCollaborativeArrangement', window );">Milestone payment amount</a></td>
<td class="nump">$ 0.4<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_cdxs_ReceivableFromCollaborativeArrangement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Receivable From Collaborative Arrangement</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ReceivableFromCollaborativeArrangement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_TateLyleMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_TateLyleMember</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_TypeOfArrangementAxis=cdxs_CommercialAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CommercialAgreementMember</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>72
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358204879472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Global Development, Option and License Agreement and Strategic Collaboration Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NestecLtd.NestleHealthSciencesMember', window );">Nestec Ltd. (Nestle Health Sciences) | Strategic Collaboration Agreement</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 4,100<span></span>
</td>
<td class="nump">$ 7,100<span></span>
</td>
<td class="nump">$ 6,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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_NestecLtd.NestleHealthSciencesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_NestecLtd.NestleHealthSciencesMember</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_TypeOfArrangementAxis=cdxs_StrategicCollaborationAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_StrategicCollaborationAgreementMember</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>73
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201049472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Acquisition Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NestleHealthScienceMember', window );">Nestl&#233; Health Science | Acquisition Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NestleHealthScienceMember', window );">Nestl&#233; Health Science | Acquisition Agreement | Subsequent Event</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_CollaborativeArrangementUpfrontFeeAmount', window );">Collaborative arrangement, upfront fee amount</a></td>
<td class="nump">$ 5,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>
<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_cdxs_CollaborativeArrangementUpfrontFeeAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Collaborative Arrangement, Upfront Fee Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CollaborativeArrangementUpfrontFeeAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_NestleHealthScienceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_NestleHealthScienceMember</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_TypeOfArrangementAxis=cdxs_AcquisitionAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_AcquisitionAgreementMember</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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</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>74
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206270656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Strategic Collaboration Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Apr. 30, 2018</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70,143<span></span>
</td>
<td class="nump">138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PortonMember', window );">Porton</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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromCollaborators', window );">Collaboration payment</a></td>
<td class="nump">$ 1,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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 100<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PortonMember', window );">Porton | Milestone One</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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">$ 500<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment', window );">Number of days for payment</a></td>
<td class="text">30 days<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PortonMember', window );">Porton | Milestone Two</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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="nump">$ 500<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_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Milestone Revenue, Number Of Days For Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ProceedsFromCollaborators">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash received from collaborators during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromCollaborators</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_PortonMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_PortonMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember</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>75
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200818608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Platform Technology Transfer and License Agreement (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>May 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>payment</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>payment</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<span></span>
</td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="nump">2,038<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">$ 5,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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</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">1,100<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">$ 1,600<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis | Computer equipment and software</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm', window );">Contingent annual payments, term</a></td>
<td class="text">4 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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease', window );">Contingent annual receivable increase</a></td>
<td class="nump">$ 8,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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionAnnualPayment', window );">Revenue recognition, annual payment</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">$ 4,000<span></span>
</td>
<td class="nump">$ 4,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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionNumberOfAnnualPayment', window );">Revenue recognition, number of annual payment | payment</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">2<span></span>
</td>
<td class="nump">2<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis | Milestone One</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis | Milestone Two</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<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_cdxs_RevenueRecognitionAnnualPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Annual Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionAnnualPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Annual Payments, Term</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentAnnualPaymentsTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Annual Receivable Increase</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentAnnualReceivableIncrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionNumberOfAnnualPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Number Of Annual Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionNumberOfAnnualPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_NovartisMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_NovartisMember</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=cdxs_ComputerEquipmentAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_ComputerEquipmentAndSoftwareMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember</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>76
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200972112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - License Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Oct. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<span></span>
</td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="nump">$ 2,038<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_RocheMember', window );">Roche</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</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">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 900<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_RocheMember', window );">Roche | Milestone One</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">$ 800<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment', window );">Number of days for payment</a></td>
<td class="text">45 days<span></span>
</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>
<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_RocheMember', window );">Roche | Milestone Two</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 900<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Milestone Revenue, Number Of Days For Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_CounterpartyNameAxis=cdxs_RocheMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_RocheMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember</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>77
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358196523040">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Strategic Collaboration and License Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">$ 10,761<span></span>
</td>
<td class="nump">$ 30,609<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="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestonePaymentPerTargetGeneMember', window );">Milestone Payment Per Target Gene</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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</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">$ 104,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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember', window );">Takeda</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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">900<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="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance', window );">Revenue recognized, including opening balance</a></td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="nump">$ 4,900<span></span>
</td>
<td class="nump">$ 7,400<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember', window );">Takeda | Up-front Payment</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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</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">$ 8,500<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with Customer, Liability, Revenue Recognized, Including Opening Balance</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestonePaymentPerTargetGeneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestonePaymentPerTargetGeneMember</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_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember</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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_UpFrontPaymentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_UpFrontPaymentMember</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>78
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206614304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Jun. 30, 2020</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</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">$ 1,191<span></span>
</td>
<td class="nump">$ 5,300<span></span>
</td>
<td class="nump">$ 7,630<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</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">10,761<span></span>
</td>
<td class="nump">30,609<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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</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">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">7,630<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Commercialization And Enzyme Supply Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_ContractWithCustomerSalesMilestone', window );">Aggregate commercial sales, milestone</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Master Collaboration &amp; Research Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized', window );">Revenue recognized from transactions</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>
<td class="nump">1,200<span></span>
</td>
<td class="nump">$ 2,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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Revenue sharing arrangement | Commercialization And Enzyme Supply Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Product revenue | Master Collaboration &amp; Research Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized', window );">Revenue recognized from transactions</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">$ 200<span></span>
</td>
<td class="nump">$ 500<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series A Preferred Stock</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,050<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series B Preferred Stock | Related Party</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived', window );">Milestone payments received (in shares)</a></td>
<td class="nump">1,587,049<span></span>
</td>
<td class="nump">1,587,049<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series A and B Preferred Stock | Master Collaboration &amp; Research Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,491,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="nump">3,491,505<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MAIAgreementMember', window );">MAI Agreement | Related Party</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_RelatedPartyTransactionMilestonePaymentReceived', window );">MAI agreement milestone payment received</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,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>
<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_cdxs_ContractWithCustomerSalesMilestone">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Sales Milestone</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerSalesMilestone</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_RelatedPartyTransactionMilestonePaymentReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Related Party Transaction, Milestone Payment Received</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RelatedPartyTransactionMilestonePaymentReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InvestmentOwnedBalanceShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of investment owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480493/946-210-55-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentOwnedBalanceShares</td>
</tr>
<tr>
<td style="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_NonmonetaryTransactionGrossOperatingRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of gross operating revenue recognized in a nonmonetary transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 845<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482864/845-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</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_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember</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_RelatedPartyTransactionAxis=cdxs_CommercializationAndEnzymeSupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionAxis=cdxs_CommercializationAndEnzymeSupplyAgreementMember</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_RelatedPartyTransactionAxis=cdxs_MasterCollaborationResearchAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionAxis=cdxs_MasterCollaborationResearchAgreementMember</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_ProductOrServiceAxis=us-gaap_RoyaltyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_RoyaltyMember</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_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=us-gaap_ProductMember</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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</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_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember</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_CounterpartyNameAxis=cdxs_MAIAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_MAIAgreementMember</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>79
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200191072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Pfizer Enzyme Supply Agreement (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Aug. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,038<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,761<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,609<span></span>
</td>
<td class="nump">10,761<span></span>
</td>
<td class="nump">30,609<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="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27,237<span></span>
</td>
<td class="nump">21,914<span></span>
</td>
<td class="nump">34,097<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PfizerMember', window );">Pfizer | Enzyme Product</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRetainerFee', window );">Contract with customer, liability, retainer fee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 25,900<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage', window );">Contract with customer, liability, retainer fee, creditable percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">90.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee', window );">Contract with customer, liability, portion of retainer fee</a></td>
<td class="nump">$ 23,300<span></span>
</td>
<td class="nump">$ 23,300<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage', window );">Contract with customer, liability, retainer fee, non-creditable percentage</a></td>
<td class="nump">50.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,200<span></span>
</td>
<td class="nump">75,400<span></span>
</td>
<td class="nump">$ 34,500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 24,400<span></span>
</td>
<td class="nump">$ 9,500<span></span>
</td>
<td class="nump">$ 24,400<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PfizerMember', window );">Pfizer | Enzyme Product | Revenue from Contract with Customer Benchmark | Customer Concentration Risk</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">54.00%<span></span>
</td>
<td class="nump">33.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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PfizerMember', window );">Pfizer | Research and development revenue</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>
<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="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,000<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_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Portion Of Retainer Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_ContractWithCustomerLiabilityRetainerFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Retainer Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRetainerFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Retainer Fee, Creditable Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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_CounterpartyNameAxis=cdxs_PfizerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_PfizerMember</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_ProductOrServiceAxis=cdxs_EnzymeProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_EnzymeProductMember</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_RevenueFromContractWithCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RevenueFromContractWithCustomerMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358194196400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="5">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Nov. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Nov. 30, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Available-for-sale non-marketable interest-bearing debt securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</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>
<td class="nump">$ 1,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConvertibleDebt', window );">Non-marketable debt security at carrying value</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>
<td class="nump">$ 1,300<span></span>
</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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentIncomeAmortizationOfDiscount', window );">Interest income from amortization of discount</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>
<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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300<span></span>
</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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,191<span></span>
</td>
<td class="nump">5,300<span></span>
</td>
<td class="nump">7,630<span></span>
</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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,700<span></span>
</td>
<td class="nump">20,510<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70,143<span></span>
</td>
<td class="nump">138,590<span></span>
</td>
<td class="nump">104,754<span></span>
</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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,215<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount', window );">Equity securities without readily determinable fair value, upward price adjustment, annual amount</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount', window );">Equity securities without readily determinable fair value, upward (downward) price adjustment, annual amount</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</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>
<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="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27,237<span></span>
</td>
<td class="nump">21,914<span></span>
</td>
<td class="nump">34,097<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_SeqWellMember', window );">seqWell | Research and development revenue</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember', window );">Common Stock | seqWell</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices', window );">Stock issued during period, shares, issued for services (in shares)</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">205,279<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember', window );">seqWell</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</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>
<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>
<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>
<td class="nump">1,000,000<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,625<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,625<span></span>
</td>
<td class="nump">5,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>
<td class="nump">$ 5,000<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,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>
<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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember', window );">Arzeda</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">82<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">82<span></span>
</td>
<td class="nump">1,289<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,200<span></span>
</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>
<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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">7,630<span></span>
</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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">13,921<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party | Research and development revenue</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 1,245<span></span>
</td>
<td class="nump">$ 1,955<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesB2PreferredStockMember', window );">Series B-2 Preferred Stock</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_DebtConversionConvertedInstrumentSharesIssued1', window );">Non-marketable debt security (in shares)</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>
<td class="nump">207,070<span></span>
</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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Series B Preferred Stock | MAI | Related Party</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived', window );">Milestone payments received (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="nump">1,587,049<span></span>
</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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Series B Preferred Stock | Arzeda</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</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>
<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">207,070<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Series B Preferred Stock | MAI</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</a></td>
<td class="nump">985,545<span></span>
</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>
<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,198,423<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember', window );">Common Stock | seqWell</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">205,279<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">205,279<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember', window );">Common Stock | Arzeda</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion', window );">Convertible preferred stock, shares issued upon conversion (in shares)</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>
<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">41,414<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember', window );">Series A and B Preferred Stock | MAI | Related Party</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1', window );">Noncash or part noncash acquisition, noncash financial or equity instrument consideration, shares issued (in shares)</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,277,914<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesC1PreferredStockMember', window );">Series C-1 Preferred Stock | seqWell</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">88,256<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_CommonStockWarrantsMember', window );">Common Stock Warrants | seqWell</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">44,128<span></span>
</td>
<td class="nump">44,128<span></span>
</td>
<td class="nump">44,128<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesCAndC1PreferredStockMember', window );">Series C And C-1 Preferred Stock | seqWell</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>
<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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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>
<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>
<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>
<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="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,088,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,088,256<span></span>
</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>
<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_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Shares</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481830/320-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="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_ConvertibleDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Including the current and noncurrent portions, carrying amount of debt identified as being convertible into another form of financial instrument (typically the entity's common stock) as of the balance sheet date, which originally required full repayment more than twelve months after issuance or greater than the normal operating cycle of the company.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConvertibleDebt</td>
</tr>
<tr>
<td style="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_ConvertiblePreferredStockSharesIssuedUponConversion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued for each share of convertible preferred stock that is converted.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-3<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion</td>
</tr>
<tr>
<td style="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_DebtConversionConvertedInstrumentSharesIssued1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares issued in exchange for the original debt being converted in a noncash (or part noncash) transaction. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or payments in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-3<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtConversionConvertedInstrumentSharesIssued1</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss on investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain from upward price adjustment on investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount</td>
</tr>
<tr>
<td style="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_InvestmentIncomeAmortizationOfDiscount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accretion of purchase discount on nonoperating securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.8)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeAmortizationOfDiscount</td>
</tr>
<tr>
<td style="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_InvestmentOwnedBalanceShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of investment owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480493/946-210-55-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentOwnedBalanceShares</td>
</tr>
<tr>
<td style="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_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares issued as [noncash or part noncash] consideration for a business or asset acquired. Noncash is defined as transactions during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodSharesIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</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_dei_LegalEntityAxis=cdxs_SeqWellMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=cdxs_SeqWellMember</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_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember</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_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember</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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</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_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember</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_StatementClassOfStockAxis=cdxs_SeriesB2PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=cdxs_SeriesB2PreferredStockMember</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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</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_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember</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_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_ArzedaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_ArzedaMember</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_StatementClassOfStockAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=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_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember</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_StatementClassOfStockAxis=cdxs_SeriesC1PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=cdxs_SeriesC1PreferredStockMember</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_StatementClassOfStockAxis=cdxs_CommonStockWarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=cdxs_CommonStockWarrantsMember</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_StatementClassOfStockAxis=cdxs_SeriesCAndC1PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=cdxs_SeriesCAndC1PreferredStockMember</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>81
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358192753296">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</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="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</a></td>
<td class="nump">$ 9,700<span></span>
</td>
<td class="nump">$ 20,510<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="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_MolecularAssembliesIncMember', window );">MAI</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</a></td>
<td class="nump">6,693<span></span>
</td>
<td class="nump">13,921<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="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember', window );">seqWell</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</a></td>
<td class="nump">2,625<span></span>
</td>
<td class="nump">5,000<span></span>
</td>
<td class="nump">$ 5,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="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember', window );">Arzeda</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</a></td>
<td class="nump">82<span></span>
</td>
<td class="nump">1,289<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="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_OtherAggregatedInvestmentsMember', window );">Other investments in non-marketable equity securities</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities ($0 and $13,921 with a related party)</a></td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 300<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_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="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_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems</td>
</tr>
<tr>
<td style="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_MolecularAssembliesIncMember</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_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember</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_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember</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_SecurityOwnedNotReadilyMarketableAxis=us-gaap_OtherAggregatedInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=us-gaap_OtherAggregatedInvestmentsMember</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>82
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201399280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_ConvertibleDebtMember', window );">Convertible Debt</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="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract', window );"><strong>Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]</strong></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="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff', window );">Credit losses</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss', window );">Other-than-temporary impairment losses</a></td>
<td class="nump">0<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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember', window );">Money market funds</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="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract', window );"><strong>Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]</strong></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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Money market funds</a></td>
<td class="nump">56,374,000<span></span>
</td>
<td class="nump">77,309,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="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Level 1 | Money market funds</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="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract', window );"><strong>Financial Instruments, Financial Assets, Balance Sheet Groupings [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Money market funds</a></td>
<td class="nump">56,374,000<span></span>
</td>
<td class="nump">77,309,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="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Level 2 | Money market funds</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="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract', window );"><strong>Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]</strong></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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Money market funds</a></td>
<td class="nump">0<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="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Level&#160;3 | Money market funds</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="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract', window );"><strong>Financial Instruments, Financial Assets, Balance Sheet Groupings [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Money market funds</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 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_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsFairValueDisclosure</td>
</tr>
<tr>
<td style="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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of writeoff of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff</td>
</tr>
<tr>
<td style="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_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract</td>
</tr>
<tr>
<td style="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_SecurityOwnedNotReadilyMarketableAxis=us-gaap_ConvertibleDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SecurityOwnedNotReadilyMarketableAxis=us-gaap_ConvertibleDebtMember</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_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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>83
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200402768">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Details - Cash and Cash Equivalents (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Adjusted Cost</a></td>
<td class="nump">$ 65,116<span></span>
</td>
<td class="nump">$ 113,984<span></span>
</td>
<td class="nump">$ 116,797<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember', window );">Money market funds</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Adjusted Cost</a></td>
<td class="nump">56,374<span></span>
</td>
<td class="nump">77,309<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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Estimated Fair Value</a></td>
<td class="nump">$ 56,374<span></span>
</td>
<td class="nump">$ 77,309<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_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CashAndCashEquivalentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsFairValueDisclosure</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsLineItems</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember</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>84
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358204802000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Adjusted Cost</a></td>
<td class="nump">$ 65,116<span></span>
</td>
<td class="nump">$ 113,984<span></span>
</td>
<td class="nump">$ 116,797<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expense, current</a></td>
<td class="nump">4,600<span></span>
</td>
<td class="nump">4,800<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="Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other assets, current</a></td>
<td class="nump">600<span></span>
</td>
<td class="nump">700<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="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment charges</a></td>
<td class="nump">1,500<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="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">778<span></span>
</td>
<td class="nump">0<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="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">3,241<span></span>
</td>
<td class="nump">$ 3,241<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember', window );">San Carlos</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment charges</a></td>
<td class="nump">7,700<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="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLeasehold', window );">Impairment of leasehold</a></td>
<td class="nump">4,700<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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember', window );">Money market funds</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Adjusted Cost</a></td>
<td class="nump">56,374<span></span>
</td>
<td class="nump">77,309<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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Estimated Fair Value</a></td>
<td class="nump">56,374<span></span>
</td>
<td class="nump">77,309<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="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAxis=us-gaap_CashMember', window );">Cash</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Adjusted Cost</a></td>
<td class="nump">$ 8,700<span></span>
</td>
<td class="nump">$ 36,700<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_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CashAndCashEquivalentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsFairValueDisclosure</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsLineItems</td>
</tr>
<tr>
<td style="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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="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_ImpairmentOfLeasehold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The adjustment to reduce the value of existing agreements that specify the lessee's rights to use the leased property. This expense is charged when the estimates of future profits generated by the leased property are reduced.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLeasehold</td>
</tr>
<tr>
<td style="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_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="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_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482955/340-10-05-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483032/340-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="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_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember</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_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CashAndCashEquivalentsAxis=us-gaap_MoneyMarketFundsMember</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_CashAndCashEquivalentsAxis=us-gaap_CashMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CashAndCashEquivalentsAxis=us-gaap_CashMember</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>85
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201191232">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Details - Schedule of Inventory Components (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_InventoryNetAbstract', window );"><strong>Schedule of Inventory Components</strong></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="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterials', window );">Raw materials</a></td>
<td class="nump">$ 108<span></span>
</td>
<td class="nump">$ 108<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcess', window );">Work in process</a></td>
<td class="nump">7<span></span>
</td>
<td class="nump">91<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Finished goods</a></td>
<td class="nump">2,570<span></span>
</td>
<td class="nump">1,830<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Total inventories</a></td>
<td class="nump">$ 2,685<span></span>
</td>
<td class="nump">$ 2,029<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_InventoryFinishedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InventoryNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNetAbstract</td>
</tr>
<tr>
<td style="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_InventoryRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InventoryWorkInProcess">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcess</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206838768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details - Property and Equipment, net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment</a></td>
<td class="nump">$ 54,798<span></span>
</td>
<td class="nump">$ 62,435<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="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation and amortization</a></td>
<td class="num">(39,311)<span></span>
</td>
<td class="num">(39,821)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">15,487<span></span>
</td>
<td class="nump">22,614<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="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation expense</a></td>
<td class="nump">5,518<span></span>
</td>
<td class="nump">5,402<span></span>
</td>
<td class="nump">$ 3,113<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_LaboratoryEquipmentMember', window );">Laboratory equipment</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment</a></td>
<td class="nump">37,216<span></span>
</td>
<td class="nump">39,679<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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisposals', window );">Equipment retired during period</a></td>
<td class="nump">3,000<span></span>
</td>
<td class="nump">1,500<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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold improvements</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment</a></td>
<td class="nump">11,912<span></span>
</td>
<td class="nump">16,633<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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember', window );">Computer equipment and software</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment</a></td>
<td class="nump">2,565<span></span>
</td>
<td class="nump">3,039<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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember', window );">Office equipment and furniture</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment</a></td>
<td class="nump">1,469<span></span>
</td>
<td class="nump">1,345<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="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember', window );">Construction in progress</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment</a></td>
<td class="nump">$ 1,636<span></span>
</td>
<td class="nump">$ 1,739<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentDisposals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of divestiture of long-lived, physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisposals</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480842/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_PropertyPlantAndEquipmentNetByTypeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentByTypeAxis=cdxs_LaboratoryEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=cdxs_LaboratoryEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember</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>87
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206876464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details - Schedule of Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></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="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, beginning balance</a></td>
<td class="nump">$ 3,241<span></span>
</td>
<td class="nump">$ 3,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="num">(778)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending balance</a></td>
<td class="nump">$ 2,463<span></span>
</td>
<td class="nump">$ 3,241<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="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_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="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>88
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201805168">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Details - Other Accrued Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent', window );">Accrued professional and outside service fees</a></td>
<td class="nump">$ 2,330<span></span>
</td>
<td class="nump">$ 3,495<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseObligation', window );">Accrued purchases</a></td>
<td class="nump">1,402<span></span>
</td>
<td class="nump">10,852<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent', window );">Other</a></td>
<td class="nump">1,003<span></span>
</td>
<td class="nump">932<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Total other accrued liabilities</a></td>
<td class="nump">$ 4,735<span></span>
</td>
<td class="nump">$ 15,279<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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AccruedProfessionalFeesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="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_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_OtherAccruedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="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_PurchaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PurchaseObligation</td>
</tr>
<tr>
<td style="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>89
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358192475360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Narrative (Details)<br></strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 30, 2023 </div>
<div>shares</div>
</th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>installment </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2023 </div>
<div>shares</div>
</th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 30, 2019 </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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based payment arrangement, expense | $</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>
<td class="nump">$ 1,000,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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares) | shares</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>
<td class="nump">2,046,000<span></span>
</td>
<td class="nump">2,000,000<span></span>
</td>
<td class="nump">286,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of options exercised | $</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>
<td class="nump">$ 700,000<span></span>
</td>
<td class="nump">$ 3,100,000<span></span>
</td>
<td class="nump">$ 14,900,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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted average grant date fair value (in dollars per share) | $ / shares</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>
<td class="nump">$ 3.31<span></span>
</td>
<td class="nump">$ 4.99<span></span>
</td>
<td class="nump">$ 12.80<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="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Unrecognized compensation cost, options | $</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>
<td class="nump">$ 8,200,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>
<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="Show.showAR( this, 'defref_us-gaap_GranteeStatusAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember', window );">Nonemployee Awards</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares) | shares</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>
<td class="nump">50,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">9,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of options exercised | $</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>
<td class="nump">$ 100,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 100,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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted average grant date fair value (in dollars per share) | $ / shares</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>
<td class="nump">$ 1.05<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 11.29<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember', window );">ESPP</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares) | shares</a></td>
<td class="nump">2,000,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>
<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>
<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="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod', window );">Share-based compensation arrangement by share-based payment award, consecutive offering period</a></td>
<td class="text">24 months<span></span>
</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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent', window );">Option price as a percent of common stock</a></td>
<td class="nump">85.00%<span></span>
</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>
<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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount', window );">Share-based compensation arrangement by share-based payment award, maximum employee subscription amount | $</a></td>
<td class="nump">$ 25,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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based payment arrangement, expense | $</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>
<td class="nump">$ 25,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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_IncentiveStockOptionsMember', window );">Incentive Stock Options</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent', window );">Option price as a percent of common stock</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>
<td class="nump">100.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_NonStatutoryStockOptionsMember', window );">Non-Statutory Stock Options</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent', window );">Option price as a percent of common stock</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>
<td class="nump">85.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice', window );">Percent of voting interests</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>
<td class="nump">10.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent', window );">Purchase price of common stock when voting percent is above minimum threshold</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>
<td class="nump">110.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Expiration period</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>
<td class="text">10 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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</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>
<td class="text">4 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>
<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="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService', window );">Expiration period of options upon employee's termination of service</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>
<td class="text">3 months<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</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>
<td class="text">2 years 10 months 24 days<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options | Tranche One</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</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>
<td class="text">1 year<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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>
<td class="nump">25.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options | Tranche Two</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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>
<td class="nump">75.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</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>
<td class="nump">1,049,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
<td class="nump">163,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</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>
<td class="text">2 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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Equity instruments other than options, aggregate intrinsic value, vested | $</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>
<td class="nump">$ 1,100,000<span></span>
</td>
<td class="nump">$ 1,800,000<span></span>
</td>
<td class="nump">$ 1,800,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</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>
<td class="nump">$ 4,100,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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs | Tranche One</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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>
<td class="nump">33.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs | Tranche Two</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</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>
<td class="text">4 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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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>
<td class="nump">25.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments', window );">Share-based compensation arrangement by share-based payment award, number of installments | installment</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>
<td class="nump">2<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier', window );">Threshold level multiplier</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>
<td class="nump">0<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | Tranche One</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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>
<td class="nump">50.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | Tranche Two</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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>
<td class="nump">50.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceShareUnitsPSUsMember', window );">Performance Share Units (PSUs)</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier', window );">Share-based compensation arrangement by share-based payment award, performance goals achieved, superior level, shares eligible to vest, multiplier</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>
<td class="nump">200.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</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>
<td class="nump">0<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</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>
<td class="nump">0<span></span>
</td>
<td class="nump">733,000<span></span>
</td>
<td class="nump">433,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of options exercised | $</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>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 300,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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</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>
<td class="text">2 months 12 days<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</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>
<td class="nump">$ 15,900<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</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>
<td class="nump">277,000<span></span>
</td>
<td class="nump">159,000<span></span>
</td>
<td class="nump">46,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</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>
<td class="text">8 months 12 days<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Equity instruments other than options, aggregate intrinsic value, vested | $</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>
<td class="nump">$ 400,000<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="nump">$ 1,300,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</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>
<td class="nump">$ 600,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>
<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember', window );">PSUs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">686,000<span></span>
</td>
<td class="nump">82,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</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>
<td class="text">2 months 12 days<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Equity instruments other than options, aggregate intrinsic value, vested | $</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>
<td class="nump">$ 1,600,000<span></span>
</td>
<td class="nump">$ 2,100,000<span></span>
</td>
<td class="nump">$ 1,300,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</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>
<td class="nump">$ 200,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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2022InducementPlanMember', window );">2022 Inducement Plan</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares) | shares</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,000,000<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2019PlanMember', window );">2019 Plan</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares) | shares</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>
<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>
<td class="nump">8,100,000<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Total shares remaining available for issuance (in shares) | shares</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>
<td class="nump">9,100,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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,897,144<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2019AmendedPlanMember', window );">2019 Amended Plan</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,897,144<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized', window );">Share-based compensation arrangement by share-based payment ward, number of additional shares authorized (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,000,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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Shares reserved for future issuance (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,000,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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2022PSUMember', window );">2022 PSU | PBOs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate', window );">Estimated performance goal achievement rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">85.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2022PBOMember', window );">2022 PBO | PBOs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate', window );">Estimated performance goal achievement rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">42.50%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2022PSUAnd2022PBOMember', window );">2022 PSU And 2022 PBO | PBOs | Tranche One</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2022PSUAnd2022PBOMember', window );">2022 PSU And 2022 PBO | PBOs | Tranche Two</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2021PSUMember', window );">2021 PSU | PBOs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate', window );">Estimated performance goal achievement rate</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">146.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2021PBOMember', window );">2021 PBO | PBOs</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate', window );">Estimated performance goal achievement rate</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">73.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2021PSUAnd2021PBOMember', window );">2021 PSU And 2021 PBO | PBOs | Tranche One</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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">50.00%<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2021PSUAnd2021PBOMember', window );">2021 PSU And 2021 PBO | PBOs | Tranche Two</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>
<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>
<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="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>
<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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</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">50.00%<span></span>
</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>
<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_cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percent Of Voting Interests Threshold To Trigger Higher Exercise Price</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</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_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</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_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate number of common shares reserved for future issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions</td>
</tr>
<tr>
<td style="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of additional shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of vesting of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Purchase price of common stock expressed as a percentage of its fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent</td>
</tr>
<tr>
<td style="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_GranteeStatusAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_GranteeStatusAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember</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_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_EmployeeStockMember</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=cdxs_IncentiveStockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_IncentiveStockOptionsMember</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=cdxs_NonStatutoryStockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_NonStatutoryStockOptionsMember</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_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheOneMember</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_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheTwoMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PerformanceSharesMember</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=cdxs_PerformanceShareUnitsPSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceShareUnitsPSUsMember</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=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceBasedOptionsPBOsMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceStockUnitsMember</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=cdxs_A2022InducementPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2022InducementPlanMember</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=cdxs_A2019PlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2019PlanMember</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=cdxs_A2019AmendedPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2019AmendedPlanMember</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=cdxs_A2022PSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2022PSUMember</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=cdxs_A2022PBOMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2022PBOMember</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=cdxs_A2022PSUAnd2022PBOMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2022PSUAnd2022PBOMember</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=cdxs_A2021PSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2021PSUMember</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=cdxs_A2021PBOMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2021PBOMember</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=cdxs_A2021PSUAnd2021PBOMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_A2021PSUAnd2021PBOMember</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>90
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358194101568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Stock-Based Compensation Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">$ 9,971<span></span>
</td>
<td class="nump">$ 14,531<span></span>
</td>
<td class="nump">$ 11,593<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">3,962<span></span>
</td>
<td class="nump">4,167<span></span>
</td>
<td class="nump">2,764<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_RSUsAndRSAsMember', window );">RSUs and RSAs</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">4,447<span></span>
</td>
<td class="nump">4,807<span></span>
</td>
<td class="nump">2,768<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember', window );">PSUs</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">1,649<span></span>
</td>
<td class="nump">3,268<span></span>
</td>
<td class="nump">2,333<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="num">(112)<span></span>
</td>
<td class="nump">2,289<span></span>
</td>
<td class="nump">3,728<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember', window );">ESPP</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">25<span></span>
</td>
<td class="nump">0<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="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember', window );">Costs of product revenue</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">354<span></span>
</td>
<td class="nump">452<span></span>
</td>
<td class="nump">224<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and development</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">2,631<span></span>
</td>
<td class="nump">3,907<span></span>
</td>
<td class="nump">2,663<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember', window );">Selling, general and administrative</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract', window );"><strong>Schedule of stock-based compensation expense</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">$ 6,986<span></span>
</td>
<td class="nump">$ 10,172<span></span>
</td>
<td class="nump">$ 8,706<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_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_RSUsAndRSAsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_RSUsAndRSAsMember</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=cdxs_PerformanceStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceStockUnitsMember</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=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceBasedOptionsPBOsMember</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_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_EmployeeStockMember</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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</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_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</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>91
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200093520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Assumptions Used (Details)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">5 years 9 months 18 days<span></span>
</td>
<td class="text">5 years 8 months 12 days<span></span>
</td>
<td class="text">5 years 7 months 6 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="nump">66.20%<span></span>
</td>
<td class="nump">62.10%<span></span>
</td>
<td class="nump">52.50%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">3.10%<span></span>
</td>
<td class="nump">0.80%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember', window );">Nonemployee Awards</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">5 years 9 months 18 days<span></span>
</td>
<td class="text">0 years<span></span>
</td>
<td class="text">5 years 7 months 6 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="nump">70.10%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">54.10%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">4.70%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.90%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years 7 months 6 days<span></span>
</td>
<td class="text">5 years 6 months<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54.90%<span></span>
</td>
<td class="nump">51.90%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.80%<span></span>
</td>
<td class="nump">0.70%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember', window );">ESPP</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">4 months 24 days<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="nump">89.60%<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">5.30%<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ShareBasedPaymentArrangementNonemployeeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ShareBasedPaymentArrangementNonemployeeMember</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=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceBasedOptionsPBOsMember</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_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_EmployeeStockMember</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>92
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206292464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Option Activity (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, beginning of period (in shares)</a></td>
<td class="nump">4,250<span></span>
</td>
<td class="nump">2,935<span></span>
</td>
<td class="nump">3,385<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares)</a></td>
<td class="nump">2,046<span></span>
</td>
<td class="nump">2,000<span></span>
</td>
<td class="nump">286<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised (in shares)</a></td>
<td class="num">(283)<span></span>
</td>
<td class="num">(410)<span></span>
</td>
<td class="num">(664)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(839)<span></span>
</td>
<td class="num">(275)<span></span>
</td>
<td class="num">(72)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end of period (in shares)</a></td>
<td class="nump">5,174<span></span>
</td>
<td class="nump">4,250<span></span>
</td>
<td class="nump">2,935<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable (in shares)</a></td>
<td class="nump">2,231<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested and expected to vest (in shares)</a></td>
<td class="nump">4,748<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price Per Share</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 8.88<span></span>
</td>
<td class="nump">$ 8.90<span></span>
</td>
<td class="nump">$ 7.19<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted (in dollars per share)</a></td>
<td class="nump">5.23<span></span>
</td>
<td class="nump">8.90<span></span>
</td>
<td class="nump">26.85<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised (in dollars per share)</a></td>
<td class="nump">1.97<span></span>
</td>
<td class="nump">2.33<span></span>
</td>
<td class="nump">6.96<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">12.08<span></span>
</td>
<td class="nump">19.01<span></span>
</td>
<td class="nump">17.99<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, end of period (in dollars per share)</a></td>
<td class="nump">7.31<span></span>
</td>
<td class="nump">$ 8.88<span></span>
</td>
<td class="nump">$ 8.90<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable (in dollars per share)</a></td>
<td class="nump">8.61<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 7.42<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional Disclosures</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted average remaining contractual terms</a></td>
<td class="text">6 years 8 months 12 days<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, exercisable options</a></td>
<td class="text">3 years 7 months 6 days<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, vested and expected to vest options</a></td>
<td class="text">6 years 4 months 24 days<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate intrinsic value, outstanding</a></td>
<td class="nump">$ 198<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value, exercisable options</a></td>
<td class="nump">79<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, options vested and expected to vest</a></td>
<td class="nump">$ 170<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For presentations that combine terminations, 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 or that expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price of options that were either forfeited or expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358197138976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Award Activity (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract', window );"><strong>Exercisable and Expected to Vest</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable (in shares)</a></td>
<td class="nump">2,231,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested and expected to vest (in shares)</a></td>
<td class="nump">4,748,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable (in dollars per share)</a></td>
<td class="nump">$ 8.61<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 7.42<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, exercisable options</a></td>
<td class="text">3 years 7 months 6 days<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, vested and expected to vest options</a></td>
<td class="text">6 years 4 months 24 days<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value, exercisable options</a></td>
<td class="nump">$ 79<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, options vested and expected to vest</a></td>
<td class="nump">$ 170<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">RSAs</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">181,000<span></span>
</td>
<td class="nump">80,000<span></span>
</td>
<td class="nump">96,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="nump">277,000<span></span>
</td>
<td class="nump">159,000<span></span>
</td>
<td class="nump">46,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="num">(133,000)<span></span>
</td>
<td class="num">(58,000)<span></span>
</td>
<td class="num">(62,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">325,000<span></span>
</td>
<td class="nump">181,000<span></span>
</td>
<td class="nump">80,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 8.45<span></span>
</td>
<td class="nump">$ 17.53<span></span>
</td>
<td class="nump">$ 11.44<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="nump">2.89<span></span>
</td>
<td class="nump">7.53<span></span>
</td>
<td class="nump">21.91<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="nump">9.04<span></span>
</td>
<td class="nump">18.42<span></span>
</td>
<td class="nump">11.31<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 3.48<span></span>
</td>
<td class="nump">$ 8.45<span></span>
</td>
<td class="nump">$ 17.53<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">518,000<span></span>
</td>
<td class="nump">232,000<span></span>
</td>
<td class="nump">176,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="nump">1,049,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
<td class="nump">163,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="num">(204,000)<span></span>
</td>
<td class="num">(106,000)<span></span>
</td>
<td class="num">(70,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(343,000)<span></span>
</td>
<td class="num">(126,000)<span></span>
</td>
<td class="num">(37,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">1,020,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
<td class="nump">232,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 18.15<span></span>
</td>
<td class="nump">$ 21.83<span></span>
</td>
<td class="nump">$ 14.17<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="nump">5.24<span></span>
</td>
<td class="nump">17.46<span></span>
</td>
<td class="nump">26.59<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="nump">18.42<span></span>
</td>
<td class="nump">21.21<span></span>
</td>
<td class="nump">13.57<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">9.71<span></span>
</td>
<td class="nump">19.55<span></span>
</td>
<td class="nump">21.89<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 7.66<span></span>
</td>
<td class="nump">$ 18.15<span></span>
</td>
<td class="nump">$ 21.83<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember', window );">PSUs</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">667,000<span></span>
</td>
<td class="nump">128,000<span></span>
</td>
<td class="nump">131,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">686,000<span></span>
</td>
<td class="nump">82,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="num">(315,000)<span></span>
</td>
<td class="num">(107,000)<span></span>
</td>
<td class="num">(66,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(75,000)<span></span>
</td>
<td class="num">(40,000)<span></span>
</td>
<td class="num">(19,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="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod', window );">Other (in shares)</a></td>
<td class="nump">15,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">292,000<span></span>
</td>
<td class="nump">667,000<span></span>
</td>
<td class="nump">128,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 9.41<span></span>
</td>
<td class="nump">$ 21.24<span></span>
</td>
<td class="nump">$ 15.34<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9.55<span></span>
</td>
<td class="nump">26.16<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="nump">11.02<span></span>
</td>
<td class="nump">20.52<span></span>
</td>
<td class="nump">16.14<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">12.49<span></span>
</td>
<td class="nump">19.93<span></span>
</td>
<td class="nump">19.38<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="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue', window );">Other (in dollars per share)</a></td>
<td class="nump">25.05<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 7.69<span></span>
</td>
<td class="nump">$ 9.41<span></span>
</td>
<td class="nump">$ 21.24<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">1,826,000<span></span>
</td>
<td class="nump">1,840,000<span></span>
</td>
<td class="nump">1,560,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">733,000<span></span>
</td>
<td class="nump">433,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(178,000)<span></span>
</td>
<td class="num">(747,000)<span></span>
</td>
<td class="num">(118,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">1,648,000<span></span>
</td>
<td class="nump">1,826,000<span></span>
</td>
<td class="nump">1,840,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 4.70<span></span>
</td>
<td class="nump">$ 4.11<span></span>
</td>
<td class="nump">$ 5.05<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9.89<span></span>
</td>
<td class="nump">12.23<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">9.73<span></span>
</td>
<td class="nump">8.29<span></span>
</td>
<td class="nump">12.23<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 5.64<span></span>
</td>
<td class="nump">$ 4.70<span></span>
</td>
<td class="nump">$ 4.11<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract', window );"><strong>Exercisable and Expected to Vest</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable (in shares)</a></td>
<td class="nump">1,627,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested and expected to vest (in shares)</a></td>
<td class="nump">1,646,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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable (in dollars per share)</a></td>
<td class="nump">$ 10.96<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 11.06<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, exercisable options</a></td>
<td class="text">4 years 4 months 24 days<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, vested and expected to vest options</a></td>
<td class="text">4 years 6 months<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="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value, exercisable options</a></td>
<td class="nump">$ 0<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="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, options vested and expected to vest</a></td>
<td class="nump">$ 0<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="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised', window );">Exercised (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(35,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue', window );">Exercised (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9.02<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period, Weighted Average Grant Date Fair Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Exercised, Weighted Average Grant Date Fair Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of non-option equity instruments exercised by participants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceStockUnitsMember</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=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_PerformanceBasedOptionsPBOsMember</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_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_PerformanceSharesMember</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>94
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201736640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Capital Stock (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>May 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Feb. 27, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [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="Show.showAR( this, 'defref_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount', window );">Sale of stock, securities registered aggregate amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,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="Show.showAR( this, 'defref_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross', window );">Gross proceeds from public offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,700<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="Show.showAR( this, 'defref_us-gaap_SaleOfStockConsiderationReceivedOnTransaction', window );">Proceeds from public offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,900<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="Show.showAR( this, 'defref_us-gaap_PaymentsOfStockIssuanceCosts', window );">Costs incurred in connection with offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">721<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="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_PiperSandlerCoMember', window );">PSC</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [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="Show.showAR( this, 'defref_cdxs_SaleOfStockPeriod', window );">Sale of stock, period</a></td>
<td class="text">3 years<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="Show.showAR( this, 'defref_cdxs_SaleOfStockValueOfSharesForIssuance', window );">Sale of stock, value of shares for issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 41,300<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="Show.showAR( this, 'defref_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice', window );">Sale of stock, commissions, percentage of gross sales price</a></td>
<td class="nump">3.00%<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="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock, net of issuance costs (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,079,421<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="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_PiperSandlerCoMember', window );">PSC | Maximum</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [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="Show.showAR( this, 'defref_cdxs_SaleOfStockValueOfSharesForIssuance', window );">Sale of stock, value of shares for issuance</a></td>
<td class="nump">$ 50,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="Show.showAR( this, 'defref_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice', window );">Sale of stock, commissions and reimbursements, percentage of gross sales price</a></td>
<td class="nump">8.00%<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_cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Commissions, Percentage Of Gross Sales Price</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale of Stock, Consideration Received on Transaction, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockConsiderationReceivedOnTransactionGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_SaleOfStockPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Securities Registered Aggregate Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_SaleOfStockValueOfSharesForIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Value Of Shares For Issuance</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockValueOfSharesForIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_ClassOfStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483014/272-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482987/272-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-14<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-18<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfStockLineItems</td>
</tr>
<tr>
<td style="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_PaymentsOfStockIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for cost incurred directly with the issuance of an equity security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfStockIssuanceCosts</td>
</tr>
<tr>
<td style="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_SaleOfStockConsiderationReceivedOnTransaction">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash received on stock transaction after deduction of issuance costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SaleOfStockConsiderationReceivedOnTransaction</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="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_dei_LegalEntityAxis=cdxs_PiperSandlerCoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=cdxs_PiperSandlerCoMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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>95
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206894336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>401(k) Plan (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Defined contribution plan, cost</a></td>
<td class="nump">$ 1.4<span></span>
</td>
<td class="nump">$ 1.6<span></span>
</td>
<td class="nump">$ 1.1<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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="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_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480794/715-70-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="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>96
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201805168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Components of Loss Before Provision for Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="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>
<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="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">United States</a></td>
<td class="num">$ (76,169)<span></span>
</td>
<td class="num">$ (33,269)<span></span>
</td>
<td class="num">$ (21,037)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign</a></td>
<td class="num">(2)<span></span>
</td>
<td class="num">(47)<span></span>
</td>
<td class="num">(53)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">$ (76,171)<span></span>
</td>
<td class="num">$ (33,316)<span></span>
</td>
<td class="num">$ (21,090)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="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_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200154592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Components of Provision for Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current provision:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">$ 27<span></span>
</td>
<td class="nump">$ 141<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">42<span></span>
</td>
<td class="nump">142<span></span>
</td>
<td class="nump">198<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Total current provision</a></td>
<td class="nump">69<span></span>
</td>
<td class="nump">283<span></span>
</td>
<td class="nump">198<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred benefit:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(7)<span></span>
</td>
<td class="num">(9)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Total deferred benefit</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(7)<span></span>
</td>
<td class="num">(9)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">$ 69<span></span>
</td>
<td class="nump">$ 276<span></span>
</td>
<td class="nump">$ 189<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_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482659/740-20-45-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>98
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200462928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Tax Rate Reconciliation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract', window );"><strong>Income Tax Rate Reconciliation</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Tax benefit at federal statutory rate</a></td>
<td class="num">$ (15,995)<span></span>
</td>
<td class="num">$ (6,996)<span></span>
</td>
<td class="num">$ (4,429)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes', window );">State taxes</a></td>
<td class="num">(2,208)<span></span>
</td>
<td class="num">(494)<span></span>
</td>
<td class="num">(2,235)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">Research and development credits</a></td>
<td class="num">(925)<span></span>
</td>
<td class="num">(1,793)<span></span>
</td>
<td class="num">(1,132)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Foreign operations taxed at different rates</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">78<span></span>
</td>
<td class="nump">80<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Stock-based compensation</a></td>
<td class="nump">1,967<span></span>
</td>
<td class="nump">239<span></span>
</td>
<td class="num">(2,698)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther', window );">Other nondeductible items</a></td>
<td class="nump">438<span></span>
</td>
<td class="num">(238)<span></span>
</td>
<td class="nump">711<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="Show.showAR( this, 'defref_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation', window );">Executive compensation</a></td>
<td class="nump">152<span></span>
</td>
<td class="nump">80<span></span>
</td>
<td class="nump">257<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">16,640<span></span>
</td>
<td class="nump">9,400<span></span>
</td>
<td class="nump">9,635<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">$ 69<span></span>
</td>
<td class="nump">$ 276<span></span>
</td>
<td class="nump">$ 189<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-8<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482659/740-20-45-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationNondeductibleExpenseOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200406000">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Components of Deferred Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGrossAbstract', window );"><strong>Deferred tax 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net operating losses</a></td>
<td class="nump">$ 72,586<span></span>
</td>
<td class="nump">$ 69,915<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards', window );">Credits</a></td>
<td class="nump">16,412<span></span>
</td>
<td class="nump">14,806<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsDeferredIncome', window );">Deferred revenues</a></td>
<td class="nump">176<span></span>
</td>
<td class="nump">1,123<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation</a></td>
<td class="nump">4,445<span></span>
</td>
<td class="nump">4,967<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals', window );">Reserves and accruals</a></td>
<td class="nump">2,774<span></span>
</td>
<td class="nump">2,487<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment', window );">Property and Equipment</a></td>
<td class="nump">457<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangible assets</a></td>
<td class="nump">532<span></span>
</td>
<td class="nump">866<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards', window );">Capital losses</a></td>
<td class="nump">424<span></span>
</td>
<td class="nump">413<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment', window );">R&amp;D Capitalization</a></td>
<td class="nump">26,821<span></span>
</td>
<td class="nump">16,502<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="Show.showAR( this, 'defref_cdxs_DeferredTaxAssetsLeaseLiability', window );">Lease liability</a></td>
<td class="nump">3,608<span></span>
</td>
<td class="nump">9,586<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOther', window );">Other assets</a></td>
<td class="nump">2,542<span></span>
</td>
<td class="nump">125<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Total deferred tax assets:</a></td>
<td class="nump">130,777<span></span>
</td>
<td class="nump">120,790<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(127,835)<span></span>
</td>
<td class="num">(111,183)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesAbstract', window );"><strong>Deferred tax liabilities:</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="Show.showAR( this, 'defref_cdxs_DeferredTaxLiabilitiesRightOfUseAssets', window );">Right-of-use assets</a></td>
<td class="num">(2,958)<span></span>
</td>
<td class="num">(8,624)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Property and Equipment</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(736)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Deferred Tax Liabilities, Other</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(263)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Total deferred tax liabilities:</a></td>
<td class="num">(2,958)<span></span>
</td>
<td class="num">(9,623)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Net deferred tax liabilities</a></td>
<td class="num">$ (16)<span></span>
</td>
<td class="num">$ (16)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DeferredTaxAssetsLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Lease Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DeferredTaxAssetsLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_DeferredTaxLiabilitiesRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Right-of-use Assets</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DeferredTaxLiabilitiesRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsCapitalLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible capital loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsCapitalLossCarryforwards</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsDeferredIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsDeferredIncome</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsGoodwillAndIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsGrossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGrossAbstract</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsInProcessResearchAndDevelopment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from in-process research and development costs expensed in connection with a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxCreditCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwards</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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>100
<FILENAME>R85.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201047056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_ValuationAllowanceLineItems', window );"><strong>Income Taxes [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount', window );">Increase (decrease) in deferred tax asset valuation allowance</a></td>
<td class="nump">$ 16,700<span></span>
</td>
<td class="nump">$ 9,400<span></span>
</td>
<td class="nump">$ 9,600<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Interest and penalties recognize in income tax expense</a></td>
<td class="nump">42<span></span>
</td>
<td class="nump">42<span></span>
</td>
<td class="nump">61<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties recognized on the balance sheet</a></td>
<td class="nump">600<span></span>
</td>
<td class="nump">500<span></span>
</td>
<td class="nump">500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate', window );">Unrecognized tax benefits that would impact effective tax rate</a></td>
<td class="nump">300<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_IN', window );">India</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowanceLineItems', window );"><strong>Income Taxes [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings', window );">Deferred tax liability from undistributed foreign earnings</a></td>
<td class="nump">$ 16<span></span>
</td>
<td class="nump">$ 16<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_DeferredTaxLiabilitiesUndistributedForeignEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from undistributed earnings of subsidiary and other recognized entity not within country of domicile. Includes, but is not limited to, other basis differences.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</td>
</tr>
<tr>
<td style="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_ValuationAllowanceDeferredTaxAssetChangeInAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount</td>
</tr>
<tr>
<td style="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_ValuationAllowanceLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowanceLineItems</td>
</tr>
<tr>
<td style="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_srt_StatementGeographicalAxis=country_IN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=country_IN</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>101
<FILENAME>R86.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200489616">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal</a></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="Show.showAR( this, 'defref_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems', window );"><strong>Operating Loss and Tax Credit Carryforwards [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating losses, amount</a></td>
<td class="nump">$ 182,918<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration', window );">Net operating losses, not subject to expiration, amount</a></td>
<td class="nump">118,569<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAmount', window );">Tax credits, amount</a></td>
<td class="nump">17,815<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State</a></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="Show.showAR( this, 'defref_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems', window );"><strong>Operating Loss and Tax Credit Carryforwards [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating losses, amount</a></td>
<td class="nump">147,481<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAmount', window );">Tax credits, amount</a></td>
<td class="nump">$ 19,223<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>[Line Items] for Operating Loss and Tax Credit Carryforwards [Table]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are not subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration</td>
</tr>
<tr>
<td style="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_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="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_TaxCreditCarryforwardAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAmount</td>
</tr>
<tr>
<td style="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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</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>102
<FILENAME>R87.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201077808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance at beginning of year</a></td>
<td class="nump">$ 18,571<span></span>
</td>
<td class="nump">$ 15,261<span></span>
</td>
<td class="nump">$ 12,683<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Additions based on tax positions related to current year</a></td>
<td class="nump">2,164<span></span>
</td>
<td class="nump">3,553<span></span>
</td>
<td class="nump">2,206<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions to tax position of prior years</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">372<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions to tax position of prior years</a></td>
<td class="num">(531)<span></span>
</td>
<td class="num">(243)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance at end of year</a></td>
<td class="nump">$ 20,204<span></span>
</td>
<td class="nump">$ 18,571<span></span>
</td>
<td class="nump">$ 15,261<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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-10B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>103
<FILENAME>R88.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358201532768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Narrative (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Oct. 01, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2017 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>ft&#178; </div>
<div>renewal_option</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>ft&#178; </div>
<div>option</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">77,300<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 16,024<span></span>
</td>
<td class="nump">$ 43,638<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="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Operating lease, write-off due to lease modification</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,622<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="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease, impairment loss</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,997<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="Show.showAR( this, 'defref_cdxs_AssetRetirementObligationWriteoff', window );">Asset retirement obligation, writeoff</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<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="Show.showAR( this, 'defref_us-gaap_AssetRetirementObligation', window );">Asset retirement obligation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="nump">500<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="Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_IndemnificationGuaranteeMember', window );">Indemnification agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_LossContingencyAccrualCarryingValueCurrent', window );">Accruals for expenses related to indemnification issues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<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="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=cdxs_TermLoanMember', window );">Term Loan</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Current borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,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>
<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="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Current borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,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>
<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="Show.showAR( this, 'defref_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage', window );">Accounts receivable borrowing base percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">80.00%<span></span>
</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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=us-gaap_DemandDepositsMember', window );">Demand deposits</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndInvestmentsNoncurrent', window );">Restricted cash and investments, noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="nump">$ 1,100<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="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember', window );">200-220 Penobscot</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,200<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="Show.showAR( this, 'defref_cdxs_LesseeOperatingLeaseOptionToExtendNumber', window );">Number of options to extend lease term | renewal_option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRenewalTerm', window );">Renewal term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A400PenoscotMember', window );">400 Penoscot</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">37,900<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="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember', window );">501 Chesapeake</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,200<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="Show.showAR( this, 'defref_cdxs_LesseeOperatingLeaseOptionToExtendNumber', window );">Number of options to extend lease term | renewal_option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRenewalTerm', window );">Renewal term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember', window );">San Carlos</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>
<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="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [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>
<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="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">36,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="Show.showAR( this, 'defref_cdxs_LesseeOperatingLeaseOptionToExtendNumber', window );">Number of options to extend lease term | option</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1', window );">Lease term</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1', window );">Lease renewal term</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Lease obligations</a></td>
<td class="nump">$ 3,100<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_SecurityDeposit', window );">Security deposit</a></td>
<td class="nump">500<span></span>
</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>
<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="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Operating lease, write-off due to lease modification</a></td>
<td class="nump">$ 19,600<span></span>
</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>
<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="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,700<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="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLeasehold', window );">Impairment of leasehold</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,700<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease, impairment loss</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AssetRetirementObligationWriteoff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Retirement Obligation, Writeoff</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AssetRetirementObligationWriteoff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_LesseeOperatingLeaseOptionToExtendNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Option To Extend, Number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_LesseeOperatingLeaseOptionToExtendNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</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_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cdxs_OperatingLeaseWriteOffDueToLeaseModification">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Write-off Due To Lease Modification</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseWriteOffDueToLeaseModification</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_AreaOfRealEstateProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area of a real estate property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AreaOfRealEstateProperty</td>
</tr>
<tr>
<td style="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:areaItemType</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_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="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_AssetRetirementObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 410<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481999/410-20-25-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 410<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481850/410-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetRetirementObligation</td>
</tr>
<tr>
<td style="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_ImpairmentOfLeasehold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The adjustment to reduce the value of existing agreements that specify the lessee's rights to use the leased property. This expense is charged when the estimates of future profits generated by the leased property are reduced.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLeasehold</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal for lease not yet commenced, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease not yet commenced, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRenewalTerm</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityCurrentBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity</td>
</tr>
<tr>
<td style="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_LongTermPurchaseCommitmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermPurchaseCommitmentLineItems</td>
</tr>
<tr>
<td style="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_LossContingencyAccrualCarryingValueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyAccrualCarryingValueCurrent</td>
</tr>
<tr>
<td style="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_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from impairment of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479365/842-20-25-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestrictedCashAndInvestmentsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The noncurrent cash, cash equivalents and investments that is restricted as to withdrawal or usage. Restrictions may include legally restricted deposits held as compensating balances against borrowing arrangements, contracts entered into with others, or entity statements of intention with regard to particular deposits classified as long-term; that is not expected to be released from such existing restrictions within one year of the balance sheet date or operating cycle, whichever is longer. Excludes compensating balance arrangements that are not agreements which legally restrict the use of cash amounts shown on the balance sheet. Includes noncurrent cash equivalents and investments that are similarly restricted as to withdrawal, usage or disposal.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480632/954-210-45-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480602/954-210-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndInvestmentsNoncurrent</td>
</tr>
<tr>
<td style="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_SecurityDeposit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of an asset, typically cash, provided to a counterparty to provide certain assurance of performance by the entity pursuant to the terms of a written or oral agreement, such as a lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityDeposit</td>
</tr>
<tr>
<td style="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_LossContingenciesByNatureOfContingencyAxis=us-gaap_IndemnificationGuaranteeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_LossContingenciesByNatureOfContingencyAxis=us-gaap_IndemnificationGuaranteeMember</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_CreditFacilityAxis=cdxs_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CreditFacilityAxis=cdxs_TermLoanMember</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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</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_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=us-gaap_DemandDepositsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=us-gaap_DemandDepositsMember</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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember</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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A400PenoscotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A400PenoscotMember</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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember</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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember</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>104
<FILENAME>R89.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358204608464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitment and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_cdxs_OperatingLeaseRightOfUseAssetRollForward', window );"><strong>Operating Lease, Right-of-Use Asset [Roll Forward]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Beginning balance, right-of-use assets - operation leases, net</a></td>
<td class="nump">$ 39,263<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Amortization of right-of-use assets</a></td>
<td class="num">(4,405)<span></span>
</td>
<td class="num">$ (4,849)<span></span>
</td>
<td class="num">$ (2,834)<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="Show.showAR( this, 'defref_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset', window );">Additions</a></td>
<td class="nump">898<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="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Remeasurement due to lease modification</a></td>
<td class="num">(19,622)<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Impairment</a></td>
<td class="num">(2,997)<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Ending balance, right-of-use assets - operation leases, net</a></td>
<td class="nump">13,137<span></span>
</td>
<td class="nump">39,263<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="Show.showAR( this, 'defref_cdxs_OperatingLeaseLiabilityRollForward', window );"><strong>Operating Lease, Liability [Roll Forward]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Beginning balance, lease obligations - operating leases, net</a></td>
<td class="nump">43,638<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="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Lease payments</a></td>
<td class="num">(9,897)<span></span>
</td>
<td class="num">(6,506)<span></span>
</td>
<td class="num">$ (4,197)<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="Show.showAR( this, 'defref_cdxs_OperatingLeaseInterestAccretion', window );">Interest accretion</a></td>
<td class="nump">1,905<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="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Remeasurement due to lease modification</a></td>
<td class="num">(19,622)<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Ending balance, lease obligations - operating leases, net</a></td>
<td class="nump">$ 16,024<span></span>
</td>
<td class="nump">$ 43,638<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_cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (Decrease) In Operating Lease, Right-of-Use Asset</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_OperatingLeaseInterestAccretion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Interest Accretion</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseInterestAccretion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_OperatingLeaseLiabilityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseLiabilityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_OperatingLeaseRightOfUseAssetRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Right-of-Use Asset</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseRightOfUseAssetRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_OperatingLeaseWriteOffDueToLeaseModification">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Write-off Due To Lease Modification</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseWriteOffDueToLeaseModification</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from impairment of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479365/842-20-25-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="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>105
<FILENAME>R90.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206856352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Lease Costs (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</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="Show.showAR( this, 'defref_cdxs_FinanceLeaseCost', window );">Finance lease costs</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 18<span></span>
</td>
<td class="nump">$ 106<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">6,310<span></span>
</td>
<td class="nump">7,321<span></span>
</td>
<td class="nump">4,396<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term lease costs</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">40<span></span>
</td>
<td class="nump">70<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Total lease cost</a></td>
<td class="nump">6,310<span></span>
</td>
<td class="nump">7,379<span></span>
</td>
<td class="nump">4,572<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_VariableLeaseCost', window );">Variable lease, cost</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_FinanceLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finance Lease, Cost</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_FinanceLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableLeaseCost</td>
</tr>
<tr>
<td style="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>106
<FILENAME>R91.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358205250832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Other Lease Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_cdxs_CashPaidAbstract', window );"><strong>Cash paid:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating cash flows from operating leases</a></td>
<td class="nump">$ 9,897<span></span>
</td>
<td class="nump">$ 6,506<span></span>
</td>
<td class="nump">$ 4,197<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_NoncashActivityAbstract', window );"><strong>Non-cash activity:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Operating Lease - Right-of-use assets obtained in exchange for lease liabilities</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 25,445<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OtherInformationAbstract', window );"><strong>Other information:</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating lease, weighted-average remaining lease term</a></td>
<td class="text">3 years 9 months 18 days<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Operating leases, weighted-average discount rate</a></td>
<td class="nump">6.60%<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_cdxs_CashPaidAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash Paid</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CashPaidAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_NoncashActivityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Noncash Activity</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_NoncashActivityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_OtherInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Other Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OtherInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>107
<FILENAME>R92.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200302384">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Maturity Analysis of Operating Lease (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract', window );"><strong>Operating 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2024</a></td>
<td class="nump">$ 4,727<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2025</a></td>
<td class="nump">4,868<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2026</a></td>
<td class="nump">5,014<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2027</a></td>
<td class="nump">2,533<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2028</a></td>
<td class="nump">760<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">318<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total minimum lease payments</a></td>
<td class="nump">18,220<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="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">2,196<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="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Lease obligations</a></td>
<td class="nump">16,024<span></span>
</td>
<td class="nump">$ 43,638<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current portion of lease obligations - Operating leases</a></td>
<td class="nump">10,121<span></span>
</td>
<td class="nump">13,728<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term lease obligations - Operating leases</a></td>
<td class="nump">$ 12,243<span></span>
</td>
<td class="nump">$ 38,278<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_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeaseLiabilitiesPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>108
<FILENAME>R93.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206894464">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Other Commitments (Details) - Facility maintenance agreement<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2023 </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="Show.showAR( this, 'defref_us-gaap_OtherCommitmentsLineItems', window );"><strong>Other Commitments [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCommitment', window );">Total</a></td>
<td class="nump">$ 701<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCommitmentDueInNextTwelveMonths', window );">2024</a></td>
<td class="nump">701<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCommitmentDueInSecondYear', window );">2025 and Thereafter</a></td>
<td class="nump">$ 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_OtherCommitment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherCommitment</td>
</tr>
<tr>
<td style="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_OtherCommitmentDueInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of commitment classified as other 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherCommitmentDueInNextTwelveMonths</td>
</tr>
<tr>
<td style="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_OtherCommitmentDueInSecondYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of commitment classified as other 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherCommitmentDueInSecondYear</td>
</tr>
<tr>
<td style="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_OtherCommitmentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherCommitmentsLineItems</td>
</tr>
<tr>
<td style="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_OtherCommitmentsAxis=cdxs_FacilityMaintenanceAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_OtherCommitmentsAxis=cdxs_FacilityMaintenanceAgreementMember</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>109
<FILENAME>R94.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358197043824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Related Party Transactions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="4">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Apr. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2020</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [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>
<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</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>
<td class="nump">$ 1,191<span></span>
</td>
<td class="nump">$ 5,300<span></span>
</td>
<td class="nump">$ 7,630<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="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Master Collaboration &amp; Research Agreement</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>
<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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [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>
<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="Show.showAR( this, 'defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized', window );">Revenue recognized from transactions</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="nump">$ 2,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="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Series A Preferred Stock | MAI</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>
<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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</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">1,587,050<span></span>
</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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</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">$ 1,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>
<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="Show.showAR( this, 'defref_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series A Preferred Stock</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>
<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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,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>
<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="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600<span></span>
</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>
<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="Show.showAR( this, 'defref_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series B Preferred Stock</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>
<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="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [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>
<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="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</a></td>
<td class="nump">985,545<span></span>
</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,198,423<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="nump">$ 800<span></span>
</td>
<td class="nump">$ 7,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>
<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_InvestmentOwnedBalanceShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of investment owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480493/946-210-55-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentOwnedBalanceShares</td>
</tr>
<tr>
<td style="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_NonmonetaryTransactionGrossOperatingRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of gross operating revenue recognized in a nonmonetary transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 845<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482864/845-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="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_RelatedPartyTransactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(g)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionLineItems</td>
</tr>
<tr>
<td style="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_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember</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_RelatedPartyTransactionAxis=cdxs_MasterCollaborationResearchAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RelatedPartyTransactionAxis=cdxs_MasterCollaborationResearchAgreementMember</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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember</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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</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>110
<FILENAME>R95.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358208063600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Narrative (Details) - segment<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</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="Show.showAR( this, 'defref_cdxs_NumberOfBusinessSegments', window );">Number of business segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<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="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_NumberOfBusinessSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number Of Business Segments</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_NumberOfBusinessSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</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_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="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:integerItemType</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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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>111
<FILENAME>R96.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358194182416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Concentration Risk (Details) - Customer Concentration Risk<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerAMember', window );">Customer A | Revenue, Product and Service Benchmark</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">22.00%<span></span>
</td>
<td class="nump">56.00%<span></span>
</td>
<td class="nump">33.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerAMember', window );">Customer A | Accounts Receivable</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">53.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerBMember', window );">Customer B | Revenue, Product and Service Benchmark</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">13.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerBMember', window );">Customer B | Accounts Receivable</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerCMember', window );">Customer C | Revenue, Product and Service Benchmark</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerCMember', window );">Customer C | Accounts Receivable</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">12.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerDMember', window );">Customer D | Accounts Receivable</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">21.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerEMember', window );">Customer E | Accounts Receivable</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">13.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="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerFMember', window );">Customer F | Accounts Receivable</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">12.00%<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_ConcentrationRiskLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481027/954-310-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskLineItems</td>
</tr>
<tr>
<td style="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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_srt_MajorCustomersAxis=cdxs_CustomerAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CustomerAMember</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_SalesRevenueProductLineMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SalesRevenueProductLineMember</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_MajorCustomersAxis=cdxs_CustomerBMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CustomerBMember</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=cdxs_CustomerCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CustomerCMember</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=cdxs_CustomerDMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CustomerDMember</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=cdxs_CustomerEMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CustomerEMember</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=cdxs_CustomerFMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cdxs_CustomerFMember</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>112
<FILENAME>R97.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358207844384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Revenues (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="nump">$ 104,754<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">13,733<span></span>
</td>
<td class="nump">17,000<span></span>
</td>
<td class="nump">23,481<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">EMEA</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">22,907<span></span>
</td>
<td class="nump">56,540<span></span>
</td>
<td class="nump">20,187<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">APAC</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">33,503<span></span>
</td>
<td class="nump">65,050<span></span>
</td>
<td class="nump">61,086<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">13,700<span></span>
</td>
<td class="nump">17,000<span></span>
</td>
<td class="nump">23,400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">28,624<span></span>
</td>
<td class="nump">61,877<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="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_IE', window );">IRELAND</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">37,200<span></span>
</td>
<td class="nump">1,400<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CH', window );">SWITZERLAND</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">11,100<span></span>
</td>
<td class="nump">9,200<span></span>
</td>
<td class="nump">10,100<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CN', window );">CHINA</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 20,300<span></span>
</td>
<td class="nump">$ 48,600<span></span>
</td>
<td class="nump">$ 43,500<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_NoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncurrentAssets</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RevenuesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesAbstract</td>
</tr>
<tr>
<td style="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_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_srt_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=us-gaap_EMEAMember</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=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AsiaPacificMember</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=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=country_US</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=country_IE">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=country_IE</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=country_CH">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=country_CH</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=country_CN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=country_CN</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>113
<FILENAME>R98.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358203251248">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></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="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, beginning balance</a></td>
<td class="nump">$ 3,241<span></span>
</td>
<td class="nump">$ 3,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="num">(778)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending balance</a></td>
<td class="nump">$ 2,463<span></span>
</td>
<td class="nump">$ 3,241<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="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_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="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>114
<FILENAME>R99.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358207802528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward', window );"><strong>Financing Receivable, Allowance for Credit Loss [Roll Forward]</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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForNotesAndLoansReceivableCurrent', window );">Balance at beginning of period</a></td>
<td class="nump">$ 163<span></span>
</td>
<td class="nump">$ 416<span></span>
</td>
<td class="nump">$ 74<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForLoanLossesExpensed', window );">Provision for credit losses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">54<span></span>
</td>
<td class="nump">342<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="Show.showAR( this, 'defref_cdxs_AllowanceForCreditLossWriteOff', window );">Write-offs</a></td>
<td class="num">(33)<span></span>
</td>
<td class="num">(257)<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="Show.showAR( this, 'defref_cdxs_AllowanceForCreditLossAdjustment', window );">Adjustment to existing allowance</a></td>
<td class="num">(65)<span></span>
</td>
<td class="num">(50)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForNotesAndLoansReceivableCurrent', window );">Balance at end of period</a></td>
<td class="nump">$ 65<span></span>
</td>
<td class="nump">$ 163<span></span>
</td>
<td class="nump">$ 416<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AllowanceForCreditLossAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Allowance For Credit Loss, Adjustment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AllowanceForCreditLossAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_AllowanceForCreditLossWriteOff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Allowance For Credit Loss, Write Off</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AllowanceForCreditLossWriteOff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_AllowanceForNotesAndLoansReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on financing receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForNotesAndLoansReceivableCurrent</td>
</tr>
<tr>
<td style="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_FinancingReceivableAllowanceForCreditLossesRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward</td>
</tr>
<tr>
<td style="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_ProvisionForLoanLossesExpensed">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of credit loss expense (reversal of expense) for financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForLoanLossesExpensed</td>
</tr>
<tr>
<td style="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>115
<FILENAME>R100.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200245392">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Allowance for Credit Losses - Summary of Accounts Receivable by Aging Category (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems', window );"><strong>Financing Receivable, Allowance for Credit Loss [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGross', window );">Accounts receivable</a></td>
<td class="nump">$ 10,036<span></span>
</td>
<td class="nump">$ 31,904<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancialAssetNotPastDueMember', window );">Current</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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems', window );"><strong>Financing Receivable, Allowance for Credit Loss [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGross', window );">Accounts receivable</a></td>
<td class="nump">9,583<span></span>
</td>
<td class="nump">28,896<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables30To59DaysPastDueMember', window );">31-60 Days</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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems', window );"><strong>Financing Receivable, Allowance for Credit Loss [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGross', window );">Accounts receivable</a></td>
<td class="nump">209<span></span>
</td>
<td class="nump">1,747<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables60To89DaysPastDueMember', window );">61-90 Days</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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems', window );"><strong>Financing Receivable, Allowance for Credit Loss [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGross', window );">Accounts receivable</a></td>
<td class="nump">77<span></span>
</td>
<td class="nump">469<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember', window );">91 Days and Over</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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems', window );"><strong>Financing Receivable, Allowance for Credit Loss [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGross', window );">Accounts receivable</a></td>
<td class="nump">167<span></span>
</td>
<td class="nump">792<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivablesPeriodPastDueAxis=cdxs_FinancialReceivablesPastDueMember', window );">Total over 31 Days</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="Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems', window );"><strong>Financing Receivable, Allowance for Credit Loss [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGross', window );">Accounts receivable</a></td>
<td class="nump">$ 453<span></span>
</td>
<td class="nump">$ 3,008<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_AccountsReceivableGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableGross</td>
</tr>
<tr>
<td style="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_FinancingReceivableAllowanceForCreditLossesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1405<br> -Paragraph c<br> -Publisher SEC<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems</td>
</tr>
<tr>
<td style="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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancialAssetNotPastDueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancialAssetNotPastDueMember</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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables30To59DaysPastDueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables30To59DaysPastDueMember</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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables60To89DaysPastDueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables60To89DaysPastDueMember</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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember</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_FinancingReceivablesPeriodPastDueAxis=cdxs_FinancialReceivablesPastDueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_FinancingReceivablesPeriodPastDueAxis=cdxs_FinancialReceivablesPastDueMember</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>116
<FILENAME>R101.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358206316160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Nov. 30, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 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="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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>
<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="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,284<span></span>
</td>
<td class="nump">$ 3,167<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="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits</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>
<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="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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>
<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="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent', window );">Restructuring and related cost, number of positions eliminated, period percent</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="nump">18.00%<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="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="nump">$ 3,200<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="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember', window );">Employee Severance</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>
<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="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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>
<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="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,100<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_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of positions eliminated during the period as a percentage of total positions eliminated during the period in connection with the restructuring plan(s).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent</td>
</tr>
<tr>
<td style="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_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="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_RestructuringCostAndReserveLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveLineItems</td>
</tr>
<tr>
<td style="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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember</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_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember</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>117
<FILENAME>R102.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140358200288880">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events (Details) - Subsequent Event<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th">
<div>Feb. 13, 2024 </div>
<div>USD ($) </div>
<div>tranche </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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [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="Show.showAR( this, 'defref_cdxs_DebtInstrumentNumberOfTranches', window );">Debt instrument, number of tranches | tranche</a></td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoansMember', window );">Term Loans</a></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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentTerm', window );">Debt instrument, term</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt instrument, face amount</a></td>
<td class="nump">$ 40.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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoansFirstTrancheMember', window );">Term Loans - First Tranche</a></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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt instrument, face amount</a></td>
<td class="nump">30.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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoansSecondTrancheMember', window );">Term Loans - Second Tranche</a></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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt instrument, face amount</a></td>
<td class="nump">$ 10.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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember', window );">Term Loan</a></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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></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="Show.showAR( this, 'defref_cdxs_DebtInstrumentInterestPeriod', window );">Debt instrument, interest period</a></td>
<td class="text">36 months<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember', window );">Term Loan | Common Stock</a></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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights', window );">Class of warrant or right, number of securities called by warrants or rights (in shares) | shares</a></td>
<td class="nump">424,028<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Class of warrant or right, exercise price of warrants or rights (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 2.83<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember', window );">Term Loan | Prime Rate</a></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="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></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="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Interest rate, stated percentage</a></td>
<td class="nump">7.50%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Basis spread on variable rate</a></td>
<td class="nump">3.25%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentInterestPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Interest Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentInterestPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</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_cdxs_DebtInstrumentNumberOfTranches">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Number of Tranches</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentNumberOfTranches</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</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_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Exercise price per share or per unit of warrants or rights outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1</td>
</tr>
<tr>
<td style="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_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="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_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482900/835-30-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69B<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69C<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-2<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482949/835-30-55-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="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_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateStatedPercentage</td>
</tr>
<tr>
<td style="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_DebtInstrumentTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period of time between issuance and maturity of debt instrument, 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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentTerm</td>
</tr>
<tr>
<td style="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_SubsequentEventLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481674/830-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventLineItems</td>
</tr>
<tr>
<td style="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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</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_DebtInstrumentAxis=cdxs_TermLoansMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_DebtInstrumentAxis=cdxs_TermLoansMember</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_DebtInstrumentAxis=cdxs_TermLoansFirstTrancheMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_DebtInstrumentAxis=cdxs_TermLoansFirstTrancheMember</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_DebtInstrumentAxis=cdxs_TermLoansSecondTrancheMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_DebtInstrumentAxis=cdxs_TermLoansSecondTrancheMember</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_DebtInstrumentAxis=cdxs_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_DebtInstrumentAxis=cdxs_TermLoanMember</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_StatementClassOfStockAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementClassOfStockAxis=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_VariableRateAxis=us-gaap_PrimeRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_VariableRateAxis=us-gaap_PrimeRateMember</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>EXCEL
<SEQUENCE>119
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
MO8#%(ON+MOFQEWX'!:F0+"F"H05)1//_^+4 <1!P[30$>$6 ]R; '30$^$6
M?VK H @89&3R2\DX3+#$][><;1%71X.:^I#!S*+A\B.J[OM<<O@V@CAY/V8O
MA*,9W&+41;_-)^C]NP_H'8HH^A3%,=P9<=N7<!YU=#\H-!]R3:]!T_70)T;E
M6J!'&I*P+M"'!I:M]/:M?/",BA,2])#O7B#/\7Q-@\;F\">RZ"'/S\('FO")
M.?Q?*86S.[JSUZ[&+YG[F9YO9/[7:"$DAW[_7QWA7&&@5U"3P4>QP0&YZ\!H
M%X2_D,[]]]^Y5\X/.CHVQ2:6Q&KD!B6Y@4G]?L*"%"8=B;[L-D2'S1SN.MV?
M=7R,46WY6!*K\;DL^5R>QF=$:8IC]$PVC$L=*+..Y*D.[]@8U1:4);$:J*L2
MU-5IH&:$1RQ4$Q6"^5/;IXXH[:>FQKG)&-\6FB6Q&K1A"6UHO-1QRKEB]A2)
M #K75X*Y$9Q9K=MUO:[OZH@9 ]L2LR16(W9=$KL^<;[B&%*E+--I'I-FK26.
MA790&L/:TK(D5J-U4]*Z,5[A(Y61W$'WB@GZG"8+PG64S!J.XW;]P="YU)$R
MAK8E94FL1LIUJK3-.875,UE%*HN +O89)]I1>$1HS$+R&HF+O&U3&O1TY,PB
M;='94JNS.TAYW5/8P;4R#F,1JV%Y@>82IC'$.!JSE$J^0XJ,%JA9??*H!6@,
M:@W0DEH=H%<!]$X!^ 6_HFD(TUNTC(*,HF'8'I$<NEWG>NC=W-QHZ1F#6].S
MI%:G5V7_KC%%WM,;A2&HBXO]!_0+'(=^I?H^9Y8$EP^9#&4+$3"))ARLM!:C
M52-@2ZV.L;("KCF9?XMQK+9@^'YA6ZI%:)9[)N&602:H9+3LK)H$6VIU=I5-
M<,WY_5MVY=PWX^PEHH&^#YHUQR,M-JN6P99:'5ME&EQSKO\6VXP)"8GP?Z)-
M\\/"K'@S<*ZTIL$<UYK;.6R#6_D&]XAQR*AQ@ILQF06N+ATM)*M&P99:'5)E
M%5QS?O\+4Z9JMF;4E/T>$1EX;O?:=?2TK!H%6VIU6I55<,UY_I=(@DM@2^1Z
M[Q<?T)P$*=?/W ]'E,8L22!SF4L6?+M &_"T+SA."7KG]!QP$VA#.!)KS/5/
M5*N6PI9:?8VU\A2>V0J 20TCND+S7;)@L0[E$8'QY,^Y=G76JGNPI5:G5+D'
MSYS?[[L:>GP-UIBN2*/S.B+T>32?C/ZMY675+-A2J_.JS()WDEGX@\1Q]QN%
MY P&*Q8PRX5H*D2JG^:.:'YF6FQ678(MM3JVRB5X)[F$WUD,;A3S?%F$:]_&
M'%%J@&75"]A2J\.JO(!WDA?8+U#F2VS95 :);:J'9E;\2G118W-4:VKG< %>
MY0*\DUS E$K"\_>O:BD7[S%JJ9D5FZA9-0&VU.K4*A/@G60"LN&(QN";5HQK
M\XXC.J,@(" ! F$NIB5GU0;84JN3JVR 9\[B"W+S!,<Q>D@%?"WT8].LT_1V
MRAS6&M8Y[(!7V0'/G,D7L!X3PE=J)OL1%.0:#%2RP53?W_[A^P-S7&MLY_ %
M7N4+/',V/QT_/:-1&D:2<322DH!#SU8FGV*\TE(SZS7V-:N)ORVU>CE"E?C[
MYKR]?$WU%%%,@PA\:+8BE.U[Y#Q;%(=G0EZJ\Y="J2]:,)^FL0>:XUH7*)S#
M'_B5/_!/>KLP7T/":QJN1V2:85DU![;4ZK J<^"?9 YFZ2*. ABC#&O3#K-*
MZW(8JSZA4+O,U%29W<N]ZWF]P6W_18?FH$CH) -07YZ8JX4(@7Y-)<QK5+EU
M+2Z[U4.YVM7!!0X=W_&O_)OR&@L4YW !?N4"?'/.OI_&Q,&K/4BN%NHUZ9)
M2JM?USZB.E-6@E&A%IODFB!>OG+]_KMKSQW^(-"$+",:90GTC+/7W<'L*1E:
M$+2$_"Y$VP@>X$I"W=-(9*63FY2+%.<'/I-5&N=/*W<P4C5X :.TF'7+8,WY
M55G;ON3G$R&9\X'69GUFS>(0?"-ZKV([V9%OVMCY<%%KID@7@OR=%JU78:%Z
M.[ &@FQY@: #0M/J?/F>+WP#,3/,)9I.ISFR2!2&K(?F:; VT=I&,&?^/Z]B
MR26"G@^=OEIX.>!(F43 #E)R"=\AUW.@U3LX?IGO(XIE$*?9P<UW<IF7MNQ4
M:0M1Q8O0VH"HQ=BR_+"GSD\V,F\>].,-W"%%*J)Y&:XZ@]J9O16-XYV15LY'
ME; B59UVD35,=Y<0'*8N,B2P&=9N&!9JV5*6M$LU[:M\<W=O/?N=P\+ZE87U
M3[*P8P#$X;Y-X9:]HI^)_H%KEE*+O9[C^$-MZ8@YN#6U<UA8O[*P_A'K"1TJ
MS!.^AJSXB$!S<F+5K]I2JV.J_*IO]ID':7%5\/8$.[6F]8A84W6@.:PUL7.8
M5K\RK?Z)]6X%L:*ZLIF96>[IJY:85;]J2RTGUC^HQ%?./?M%@X!G3TIE7I1?
M[BU_-3'*?BO0KP[/?W+Q"2OC+U!,EA#J](8P9_#\5PSYAF2;K*Y_P:1D2?9Q
M33 \[-4!\/V2,;G?4"<H?TMR_S]02P,$%     @ I81<6'LW#H0V @  M 4
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
M='=@U+9]E7NCC%%5^W$C!8BW ?#[6@']^@/[=GC_OP&6_P)02P,$%     @
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
M   8    >&PO=V]R:W-H965T<R]S:&5E=#DN>&ULK9IO;]LX$H>_BN!;'#9
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
M/I/JG],@A$?BB1G !G9C;G8[%E<VS;X]509M *Y;0-9.(DR-7-1U__CWN53
M"ON'JLS!$C@)$@Q5;[,9;#4L^6\>9Z5.DV/E ^ Q-^#=B$;I(P*H=[*;_*;"
MR6ADZB3U"/N%OGERB5D%YK,'S&B\D3D.P>CII9O[OF4_N=YEE<6AHO</K)I-
M)O5BH%3%7P^]>'<@G#UG$G^6S!!@@[V**1C%NM@LB:@9]2=6/S; 'WO[F:.#
M===(P42UV@=7,8G,_2=B-1]ON'JIMA5;3F$N&Q"-N1%-*RUX+O4#HC:]0?5E
MIUT/Y1-@3=T?B$'95++,=0+H[U'!&+HES$26&\R.VD<BF!DCR=2*QP9V8VYV
MNSE9I9[&L'/U'OAC6==ZR"')]0<O/)-H"&P:([#*4/-0"+6+X\0:=\0N]&,R
M-?(#X3$WX;T_!EP?3+RAWF:P*(H2*^5M,RQ(*6IW%*1C\0/3L=B)//?[W:XK
M6EGE%6635Z+9RZZ(:\7K"CR6=7<)"VH]?E_#R8WOOK!Q3F_IN;P=QW= 2N8^
MG;NM%==9U*X;:.R0!Y;6(H ]LC0SQ+8A$P^=@P'F C?,W=:PDG-/Z94/O79B
M8Q9)S-YC1M:>!36:*&_!P&L!.3V[A^<TP[;E<#7@!.@/G&SXWBP_J[?T7-Z.
MXSS08? &'6:[4H>X/5LO2@459 2+#WL%P5=0*Z>G08"<U?F1N4-$K&*SIJ:(
M$0W9Q*6%8,"_P(U_[95!G3#F2H'*L7DL"J&RFWJPLSUF/<9-4;MHF4RL?<'H
M2IF;[[X>+W"P#.HAZY]!MQ.F>X]JM$&,A.9CCQO$BOH6LJ-6R<315#! 7>"&
MNF]"9^7I*(<L\#O8L0@\9;O?7KZQQ"-FZ!*/VB%+_&)T(7;+Y6-[L;CQVH=
MW<W2PZ>'R\N?VBN[QN>?R<>TNX(\N.EN1/^>28"\QJOX&ESZ'Y;0-=E=,N[>
M*+%KK]T^"*7$MGVYX5G!I3: []="J-<W^@<.5[U7_P=02P,$%     @ I81<
M6$((%)I; P  00P  !D   !X;"]W;W)K<VAE971S+W-H965T,3 N>&ULM9==
M;]LV%(;_"J$50PLLD2A_9[:!QEK17A0+DF6[9J1CBXA$>B1MM_OU.Z041;9H
M)</2&TNDWO.2#RD>'<\/4CWJ',"0;V4A]"+(C=E>A:%.<RB9OI1;$/AD+57)
M##;5)M1;!2QS0641QE$T#DO&1;"<N[X;M9S+G2FX@!M%]*XLF?I^#84\+ (:
M/'7<\DUN;$>XG&_9!N[ W&]O%+;"QB7C)0C-I2 *UHO@([U*J MPBC\Y''3K
MGEB4!RD?;>-+M@@B.R,H(#76@N%E#RLH"NN$\_B[-@V:,6U@^_[)_9.#1Y@'
MIF$EB[]X9O)%, U(!FNV*\RM/'R&&FAD_5)9:/=+#I5V,@M(NM-&EG4PSJ#D
MHKJR;_5"M +H^$Q 7 ?$IP'#,P&#.F#PVH!A'3!T*U.AN'5(F&'+N9('HJP:
MW>R-6TP7C?A<V'V_,PJ?<HPSRY446A8\8P8R<F?P@IMJ-)%KLF(Z)Y_PQ=#D
M_0U3V)V#X2DK/I +<G^7D/?O/I!WA OR1RYWFHE,ST.#<[+.85J/?UV-'Y\9
MG\;DJT1G37X3&63'!B'"-$3Q$]%UW.N80'I)!O07$D?QP#.AU>O#8T]X\OIP
MVD,S:/9GX/R&9_Q^QT571$B1VMW@(I4E^%:Y<IDX%WO6]\N8(OV^#=[5T'@X
M.A8E'M%L]"PZ@A@V$,->B'N!*:G@_^ KML%41/"\(]$%)II',.RA *(AW2EN
M.'A?H<I]W)I3=(+65<31](2LJZ'Q)/:3C1JR42]9 FM0"KD4[$'LO%LSZHQ[
M06?3X<GT5ET9;@X]A>BJZ""*_!#C!F+<"_%%[$&;ZMSS_[@U8P\<G=$3-H]J
MU)YVQ>913<:#,W"3!F[2"W<+A<MMF,',=Q]!;[C][%[I+4MA$>!W58/:0[#\
M^2<ZCG[UY9:W-$O>R.QHV:;-LDW?).],7SR:784GZWA$9[/.K$&8_="L,WL1
MK:NXZ*8=CV@V'?C1:/3\V8[^=^*I+?H(7I8D'DE[_X[GWRH[Z _+.;7UI(_K
M14GBD?C23=BJK4I0&U>C:I+*G3!54=+T-G7P1U?]G?1?V_K8U6S/-E5Q_96I
M#1>:%+!&R^AR@DE>5?5JU3!RZRJX!VFP'G2W.=;XH*P GZ^E-$\-.T#SKV'Y
M+U!+ P04    " "EA%Q8>_03OF\%  #D#   &0   'AL+W=O<FMS:&5E=',O
M<VAE970Q,2YX;6R=5UMOVS84_BN$"[0;8/B6]((F,9 X*98"78-V71^&/=#2
MD41$(E62LI/^^GV'I!1[=8)U+[%$G<MWOG/AR>G6V%M7$7EQU]3:G8TJ[]NW
MTZG+*FJDFYB6-+X4QC;2X]664]=:DGE0:NKI8C9[-6VDTJ/E:3B[L<M3T_E:
M:;JQPG5-(^W]!=5F>S::C_J#3ZJL/!],EZ>M+.DS^2_MC<7;=+"2JX:T4T8+
M2\79Z'S^]N*8Y8/ GXJV;N=9<"1K8V[YY3H_&\T8$-64>;8@\;.A%=4U&P*,
M;\GF:'#)BKO/O?5W(7;$LI:.5J;^JG)?G8W>C$1.A>QJ_\EL?Z,4STNVEYG:
MA;]BFV1G(Y%USILF*0-!HW3\E7>)A_^BL$@*BX [.@HH+Z67RU-KML*R-*SQ
M0P@U: .<TIR4S][BJX*>7UZ2RZQJ T.F$!>=@X!SIU,/XRPRS9*ABVAH\8BA
M^4)\,-I73ESIG/)] U.@&J M>F@7BR<M7E(V$4?SL5C,%D=/V#L:0CT*]HX>
ML??1EE*K[Y)C'8N5T<[4*I>Q.'0N;BPYTE[V7+Q36NI,R5I\QB&A$KT3?YVO
MG;>HI;\/410!'!\&P/WUUK4RH[-1R[[LAD;+Y\_FKV8G3X1W/(1W_)3UG\GD
M_S(DKK7P%6 +;3PYX0V_BFS@D7)1#)2Y@;)Q$'O^[,UB,3M9F::5^GX<W^<G
M_?F6?CCJW,,1IR<=F\X.QVA@L@')RN1TIZ!QK5$T+*Z0+->MG<J5M IX.<O[
M:-'-RDW$5Q*Y<IG9D!VCH3<85.U8D*X0"F"QL<PT#5D.3'WG^"$S%A4:7K1D
MPV2$*%2^WS?PQ!H&05N1U=(Y]EV(UH(UI9VHX<'*4NE2<"PX;X'/8R*&**XV
MIH8 8IR_/CX!,HOY!;"$\R[DQ%-6:5.;\EZTM?3L/@2!FMHHT[GZ'@-"8Z+F
MP<&ZSY\$4UOS\.ZH3 FZV0GB:B>(WSE0<:%",+(E^,] V&5G&3VGM8 '7XEO
MG;0>H!$G-^M8; D8<E0'2"P?B@6MTV6^L\22#,[L]*10FO.CT[S>*AAF);1*
M4@N<%?M1^4IZ=B>U-AT"R-G,^PXD1"1*9W67]WA#HK57NAO:7.D-'# 3 0!9
MCZNLKX-PC!255C8@"IG"U:5@'"(!QCXW ZSQ3J4E/[A';7@);+#R)\JWQN1B
MI3PZ8H7B0A:TDJ+"[9HH=;$ ^21#?!YLY%T@:,(->8 O-.@NJZ$7>]93.AB=
M!:VMT8&9/DM;LBEO0%AA_.PQK5Q?5^/P$09P]:%2+.>H-=8'\@$:3D%1P)V,
MK"I%A;BZHZSC6UA\+ H%JL4O_5RX^IB:^M=Q4,B"0N(,$'/*5%@$&GG+?1KZ
MBEMKMP'9(UR;3/*  CY8R@@5>PZ4"2^G(K(TD!';,#;/S_7"#L"^FR*)&!AK
ML!;X,/ -"LNZITFN\9CD)^*J*"B+I&3>K$%*NO+BX$P3\X7;+2 9\A1[G,$-
M]*<^ YV/S[L_DL#/4!@VGYQM_C#S^S+8*_$PD-94*[11;-$]SO')\[Q R9=Z
MJ)D==PR#[M)Q:3@N--XMEM2PQBG/$YU[T.8P@Z\9-E(/^*(QX(:XO!3W;C T
M,/Q88TS$%QT,52ARC57R7X(/'(=4]VIISAV>M48?RG?X4@CL-M1PKOO]9A(3
MS?1M>)0K8SDO"N.!9U9M'/RE:8=KKXZ7 B=CJ%P>[GT5O@ Y<6/GGJGDAK-!
MO$9OE(MU@B2R1"P9A!U3TP^V Y5Z:$>9[FR>N"'+L%_#%H^JN(0.I\,*?QXW
MUP?QN/]_D+:,]V,!U=GD]<N1L'&GCB_>M&&/71N/K3@\\E@DRP+X7AC<L.F%
M'0S_V"S_ 5!+ P04    " "EA%Q8NQ,Q^D I   8A@  &0   'AL+W=O<FMS
M:&5E=',O<VAE970Q,BYX;6SM/=N.VT:6OT+TS$YL0-UVMY-,UG8,M!UGUD N
M1CH9/RSVH426),84J;#(;BM?O^=:=8JDVDXPN]B'?9A,6R*K3ITZ]YN>WW7]
M^[#S?B@^[)LV?'VV&X;#TT>/0KGS>Q<NNH-OX9M-U^_= /_LMX_"H?>NHI?V
MS:.KQX^_?+1W=7OVXCE]]K9_\;P;AZ9N_=N^".-^[_KC2]]T=U^?79[I!S_5
MV]V 'SQZ\?S@MO[&#[\<WO;PKT=QE:K>^S;475OT?O/UV?7ETY>?X_/TP#]K
M?Q?,WP6>9-UU[_$?;ZJOSQXC0+[QY8 K./B_6__*-PTN!&#\)FN>Q2WQ1?NW
MKOXMG1W.LG;!O^J:=W4U[+X^^^JLJ/S&C<WP4W?W'U[.\P6N5W9-H/\6=_SL
ME_]^5I1C&+J]O P0[.N6_]]]$#R8%[YZ?.*%*WGABN#FC0C*;]S@7CSON[NB
MQZ=A-?R#CDIO W!UBY=R,_3P;0WO#2]>NE"'HML4;WL??#LXQE5;%3=\3?C=
M3;UMZTU=NG8HKLNR&]NA;K?%VZZIR]J'YX\&@ 37>U3*KB]YUZL3NUY>%=]W
M[; +Q>NV\E6^P",X0CS'E9[CY=6]*W[CRXOBR>6JN'I\]>2>]9Y$O#RA]9Z<
M6&_AF,5_7J_#T ,=_=?2B7F]SY?70]YZ&@ZN]%^?'1#3_:T_>_&WOUQ^^?C9
M/=!^'J']_+[5_\=N\7]^U^+T(F_[NBWK0^/IZU==&^"=BK__>>>!H<MN?W#M
M$=<KX]>^*C9UZ^!5UQ0!UO,@0X90[-RM+];>MP5<P,'U\%S=TB)]!4][8+QA
M5VQ]ZWO7-$?\QA]P-9>@/B20X-T!@/BEK?&9&]R'X+S>^QY.6SSXVU^^NKIZ
M_.P?U]=OZ<_+9P_I6/B6.QS@^&[=^*(?<37\HO?;L:'CT4+XW(TOQ[X>:GGB
M]8=RY]JM!V3L]W4@P:C[W+Q^E6T#@#9CY7D[/H'@L?(?ZK JWK3 ,?0D?'&W
MZ^#,Y]U="X<)XSK45>UZV/>"4/UQ[/[+MKMN&EAL\+U<+LC<!J^',0#LUP97
M,I+2C?JF!ME(T,&]E)94+HI?@D=(7H>AWM,MX8F8!IB8X,MN[#_ID/@0:L)Z
M.#*]X/7"S?TVUD"^Q1B*H0/Q_-X77K=;%;^.U987P".X  KPP"<8=FZ QX'8
M-AM04X0] *SKB>[V$8OPCA]@I:9VZ[HA@E@5N.EP7,$+M[X=!4'^ ZCK$"FJ
MH<-4=2B;+HP](0*.@,0, ,FZ]*Q9^J)XYX4:>V0$>"@@K,"?Z5APAW6Y0XX
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
M[+M R*UO^)GW-85=9K;0U!*H,:I2$6<'9$^\@RF7XX6-AP,Z$]$89X\E6&?
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
ME^I#YOD]82-3OL95%!>YK6;H/:78%3ZR9@(HRQB&TOB2WG0"];/ K7M18;O
M02LNNCD%M%RGBDS%H>6HB^+[A! >;N1CCU56\#1!@JE=X$J2O1]2-3 (CFX,
M3 R %*SMHLXV_.,UG!MNF4R!=Z94#%.C&+H&OF]J>*:RHU+8,H"SCU2K'/44
M""3O)1"GB;ML#@Z*0+5&F:ZITLPG( Q\TZ\R%QF_Z[ E\=#!M3% :]>^9RK%
M$4!'5;;H'2],0"E/[D.-;'7+T64]ZZ]H1<9Q1[4TKDJI.9UP,I?H&P8M1#,*
MBQR6%\#&'.XWFJ0(X*FQ9UV@D1$M"9.3Y[81X>Y-"V[+Y9?<UN^W+M9V<Y7L
M1B[4L4H'2^P-:&[7IFEG8F)BKJ&!.]RZ:.WS[7,YHZQ!$S!EII$.&6/<<50\
M+OI98$SK;"$*J\9&&F8O:J1PLB>8J&"'<EI(IE'@B@F'^3B#'1F8LK;A<<P+
M2*37F')*0#,_,QM]1.@"1_*+Z$@Z^FCF,JJS> 56VJ1_ATUK21(TWF75'G1)
MFLB ;S%*SFUA@,]ZX)#.@ XSYX>.#+B2?9QQA&!>7EPF,#F(^NEP3^.E$L0Q
MFP4S[VZ2X;31]#^.8ZZ$,?UCIK02##*@@!\ZD!V7X)>+E?LJMOEKCZY8ZS@-
MZT*MWV]1@_V3--CW:8)+X,]C=6#E-X3[V,Q*.0C*Y5-FRG8Q49P5@SK:V4!E
M(+4DY34\%E.;1Z%Q:A)JCEE"3TLE1$91,0FV/TN##=5.FK$S;,M-9@@E%<T%
MJM*6D ;'<5WL;Z,&CO;N _C OWOKLZ>Y'0#M812,X@[3)\=V_JS0.#62PBFZ
M$&IJ5.,"BZA-N*ZXY[2&D#9ZL)H\8%VG5G(Z%VJ#OB?/R,P<S*6H.+)9(G8B
MT5=I\&-*_)L/P<V43]IJ>43?)%8.\"4@@S 7(F(^."TE#OF1&G/(73^H^HR3
M+(W!!?9+CP&]HY3);\$VV=%*3#0/+A\N$$XVOU'"@#ZS8.@- ,HED<-UZV!5
M'C 8ALD%F6WU8';9["4_N,+_EW1O[([&*5EV>YZ[\L=A)!RB<94-<3&C75B8
MU'TY[GG.!D"Z0)@/[\&IF!'&8EGWG:O8:4MQ(=R(DO?8ZP^V8"]QFK'E:BL
M^+>Q,^W5M4YREG.SHN3N.ZI-YSPC*<]4^_#@._(5+],(UJ:[F^\Y9SUY\8D<
ME4_"9U!J7#P^SYK#V0MKQ#P.OW[*@O7+9X4 \Q1$#?-WC#?'4Z_^)<<^*>-R
M2*[FD$BW41H\Q./F9F.(8MXPBNHDE]5S!A7&I<_8!\QV7N*1$R#&4"M9M=IP
M+QA/ BFR!HYA0>(?2*9L9D=\\A0LQP7)JN?%9 1GK]=HBP]#0U&4ME-@)9]S
M3.%^>LUDL$5*YRY=1,W\;EIM^.C]!LO$C/,3CY6[0#2SS2UQO%9XC#Q"4:-+
M)R[F)%F\ZBC@W:=(ZRM6(S^A&OEV22,P+@X=JB8IU)1@#MNI%D/E;'FKI=3Q
M2/W?]_D/B]J&(U@M'+.A2K!8?K8R)? R2Y>&F!(BZ<T01RVO-'EF+2SQF+2S
MC\M_Q2 G3MS+/!--F@#V6QIM0 E;=.J8F7G\"E7#+#I0IQTSSH;*2LI;R1OC
M=-T?<)[H+?)*+HH;Z^SPTUP\! BFA*!,->!Y1>+AD-]$_+:O=?KE*RFOV3E&
M4@K25*FJ3,:.RNS'N.U]UYU5IG;MMB,+A*G'1ULL>@!:-P7N4,)(#)Y2]@U[
M76!OC]-H8U1,)O2(:^7,5&"ZY:H;U\-F;!+M93K5],1/)U*AIY\@41J4$ASW
MGB3\K#83]V]Q#@Y/2#=AL+7#'.2:TJBQS"AVSA%:[D"<[60Z,I7_LN< #@6.
MN2VQOI4([GK99R%C%_LFX."C;4!FV9<U+W[QU;_%82UE,>=*L==.[05N$4!K
M>^RRU;]\8E:_9_%W:-0T&)1BN7?Z6=-UT+A^BS+6-E@+=TOMT:2 VTBLE2D]
MBZU\IN4N-U/U)E=25! &)1.-FVDP,\G9ZU0T=9W&4[\KO%XGE34#:7&;>S"R
M$T<\Y%.72*-BO!)_V ,_"5(,QREODB<ZQP^(IR%5&/V.H/JWQP$^@@7VNE,T
MNYWX&-D8L&5>I)''TQ7S[O&.QF57L=<VN>OL1;G4Y^(PJ6ZO*[8V(B5AA?QA
M2'.1,"(]Y1Z48YVH8A8E(F0^'&B">C:R5071/1(H?+9T:IGX(][XLBZ;UG:#
MP5I)-W]*5/^)(<5YM>J2$C75N;JY^)I)-"Y-3N=B<L:7R/@8MZZ!TNJ>>\ H
MM?W@?<O^#-&8Q!RBE(J2-*W&[VG<H>MCG.+UJ^]B9G VHS4F[9DK3?8X78:H
M<F[.S :W.C(F-:6R!!5;V:8%M;7Q,UXQ%L'')"&*4*GUU )!U@6:&.8&L25_
M>F;(G+)Y4A?"-.)_&D *G\<</IME\!%L!](),%J:LD@>3FRJV&G@N^T;^[@
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
M':-@B<W6;H,&+S +O64C7_[-<EWGD 2X+RZ3$Q$>M&"1LQ$RRH^GW>H$?FD
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
M5%G5ELV7@FWD%[?* ;A('VJJOFDG<1\9'ROHWK8XGPWG)NI2 [(6,,6Y5CU
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
MO[+$E[4B8>A_Q7RZ2YS8J%-9W)1F;7&PAT 1.I- /GG,*O?-(PV=C5:,0_?
M2C&$X0"X?>/')&@FD# IRI[X87)A:W96V4T5FS4S\([TZ*Y=T%]W%'F!(,&,
M&%CM<#D8'C$X(!5)8:.DZ0Q2;^M^)4P/LRHZ(\>ZR&00JOU>OGY]&PA;&$GO
M*' 01EOE-V5NVD./C2%R%KD=F= C##SU3.-GC[2-'>+L@&-*XZ-XQ(?U8!+/
M_/S5 .7S9FA_3K<#=7B.=:H[2!-<TOX1-8XBS*.:58>]:(9;W<.FNMMM8OVE
M6=?.@*N->2>=F-?4I$G3@HY2W_R]2;B,VKN8*)3>ST2  AU+BC"&ZV/H-4-A
M SGN[T#?TMK,0Q Q=V&/"R;A=@-]UE'T(7YN!#>TEW!#PG:AFXJ.6&EWQ6T[
M$\Z$KZIJT=QSOEPL*R3)J[5.06Q34I<Y&Y&N]4(.,$6Q&7Z@"CY]DLF-C:-C
M!&$< (Z"=W2SD/'([>YP+FP4[6J>J=@^8]U?1'Y/%<^WLD&>^!8!';A3RE37
MN!I.F2GJ93@<H&X5+C6^0<A5C)(;J,:?HD8^E8_]HRLV1/=V%M%(WX%"PI55
M%8+@=][M<1_>W.X&>6H%4T9=OD5C(HU^GW60IO<X,@4C6X9'38(XUNE:SV$&
MTX X"9M1^6"?9.8Q\E-;79>/Q;'ZTB#UI#M,/6 :5K(> %]#.&$!C\>@>M((
MI-A%I5I32K+^$)O(-6FJ"3EWSP/IZ%#WVI6U1E'OU%6&(#)SH%>ZZ3*NL*L
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
MG!WIDIW]I:DV_+<5YE735&O^<252Z!H]@.\75=787V@#]\<V7O\/4$L#!!0
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
M-G/(8DB@(Y(U)&_[%'COPF>SV_$.RAS\'A-V<K_@D88K<RSQ ]P1D'C,AP:
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
MV<L&/)\Y%]<WXF!SQKSX#U!+ P04    " "EA%Q8:^$C3!4#  #_!@  &0
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
MALJ@80DGV@Q[B09(YIH[#MRP>'AC2/#185H+G/UH.Z,J])W$G87PT1CPC9Q
MUK0932[$ S?\P! /+*M/%-4]GZ[!<0V+>M+"8()=G-BIH>H7=8Z"<"=R>-SZ
M6Q3"<<R/>"T9:34N0#8/';>4F-;F$(DZ.CWUVIW> 1MWRG&J'K4;W$H07M)N
M#1X!3^JZYLG6VAYX>KR!I\3.FF.''H8MV7DU+U:7_$&F,8!!'.@IRY+Y2>]
MC!=LBQM6DCE4#;1.C;0P%FG0/S*@,]-K3O/'QVQ+M=8YQYD4!K$Z'&70D#IO
MF/G?C3OZK/K;SP#XV.R]S!Q;MKW5L1:G*_$';SJC(TU_Z@4Q7P1>/ <525/M
M2MEMZZD=T(%(4>FVPK,./?HE$'A^'&$'/9U"#2^8Q#U1E"4](:1'B7V-:8ZS
MVWUI^S><!=AY\5'7"V:?34.?SO$B[%%;"3WK%8%[9S>VYN G P[X0XDN" @K
MJ@5%S^$"@,G,'<E43 !$<YS3;L;TH_XV;C;7)^3THMT"..PL,IVR9YDN;;OS
MH@.X\J>.5U'0)8%W=,>KO((MW8.F_SO^WQ8+<J6!7_2X;-_JVC.39S::/]9U
MV?C6?7@E O%J<MA&>'0W[385K-+1@^%*?DY%:B>LYNE:H8H' J_Z*G=;4J_!
M @U^EKB]8^*X&J?,[$W5'$I2WR>QO%]W#I^,PV]4GT$E[6@N=3JL!'H'IQ)E
M;:E;<X1^P)/C4NL="N3JWJ)$L9^B3Y8.M* ;+0"$_I-[*9!;W4N O,,>].WC
MCUHMN2[:CS_<+&IDBSD<G;J:<O4%]8+))#C:)[UHCA^-A[XG7O2^]6Z56?,7
M;>J+P$'WV;=[VGTTOW;?B@_#W1?WGZ0!J%4B4RM,G8QGTY$P[BNVN[%%R5^.
MEX6UQ98O-TK" 30 [U=%8=L;6J#[7PFN_@]02P,$%     @ I81<6,[3\/*6
M$0  0#(  !D   !X;"]W;W)K<VAE971S+W-H965T,C,N>&ULI5O[;QN[L?Y7
M"-=M'6 CZ^%G7H#C)+VYR#D)G+1!4?0':I>RV*R6.N2N9?6OO]\,'_N0E)R<
M"P2.M$L.9X;S^&9(O=@8^\TME:K%XZJLW,NC95VOGYV>NGRI5M*-S%I5>+,P
M=B5K?+7WIVYME2QXTJH\G8['%Z<KJ:NC5R_XV2?[ZH5IZE)7ZI,5KEFMI-V^
M5J79O#R:',4'=_I^6=.#TU<OUO)>?5;UW]>?++Z=)BJ%7JG*:5,)JQ8OCVXF
MSUZ?T7@>\ ^M-J[S69 D<V.^T9?WQ<NC,3&D2I771$'BOP=UJ\J2"(&-WP+-
MH[0D3>Q^CM3?L>R092Z=NC7E5UW4RY='5T>B4 O9E/6=V?R/"O*<$[W<E([_
MBHT?>SX]$GGC:K,*D\'!2E?^?_D8]-"9<#4^,&$:)DR9;[\0<_E&UO+5"VLV
MPM)H4*,/+"K/!G.ZHDWY7%N\U9A7O[HUJY6NH>7:"5D5XM94M:[N595KY5Z<
MUEB"!I[F@=QK3VYZ@-QD*GX!A:43;ZM"%7T"I^ M,3B-#+Z>?I?B&Y6/Q&R2
MB>EX.OL.O5D2>,;T9G]$8/%&N[PTKK%*_.MF[FH+J_GW/C7X1<[V+T*>],RM
M9:Y>'L%5G+(/ZNC57_XTN1@__XX(9TF$L^]1__D]^W^0$Q_7RDKZ+CXH6#\>
M-%8LX?Z_-=+6RF(.E%6:7-:J$+H2=ZK8& ,RNMYFXE:6&J&CTC(3FZ7"T(T2
M)L^;]5;(]=J:1PW74N567%YFL_$8;MD0P04%)+/ OX7.%?-5RKD!*\9N!>N6
M%EO!^?2Z5&+>Z+( EP[^4R_QIEXJX>2*WC@([)Q82_M-&!8'G,ZWXA=56[,V
MI:YE)3[HA1+O*VR]K$ ;2EG+:BM._O*GJ^ET_!QC:01_FSQ_,F(UE*01(>^M
M4J0^7EJ$D6GFW==;K[HX%WSG95- E7T%3*^RZ:X"O*A1O[(6-(;4 =KBDZK,
MW.6F%F\L@EMV4/GBA/01. *%T_[LS[1(XH^H]UF;76;7OX.UL_$?9:D_L\\.
MCSO ,_-*[_<08,-$?.0$\$!B(. K:\%K;81THK/^@;6S/;J83'[7-IV/)^)V
MJ9Q<*_E-_90R!E-['(W$5R5@:\JRMT$0FJ@K76M9!H/LF2'H"P-;7<A<P]+)
MI0=.2M\AT5G29;)8L826YDHA><*^$<];?ZN1F9V 9T%JS*E8I<5_D+"8!#-2
M!*TP7657CA1%;YGX"-XFWJFYA1YA_./)=4:QH2<;_/(MI=6EN"$&V,F"R)[!
MKMJ&(Y,!]?3!7Q"3U["*2.N04>W;")JC'FL5AI!</;%8X;(H-($.; GBC3:%
M&XE/C76-; 48LIOMT/.[&;X,>4Q;XYDAHUY:T]Q#4DGJG%Z.Q)=$A,D29P?%
MVD//1%+7;'5+^0!N*BA]\@1QE$'5866421G[N*?G"WB$.#E_(K9*6N==+9)W
M"M$:KO2SZ^P5;7>QW=WHV6=R &^1C\KFFLR9_,C2MM&L0I6@B;T&"S6FT^0<
MEJMK<JA2JX:>2(B2-Y;<K%!KXW0=MV4XQW&L@LP64>&_/D.%*<"=)64EA\1;
M\@OB<BZK;R)D.KDR3<6!Z'@RF@ HEB5C7A8)$$JMYE@MPBB?/\;3:8AOB&-6
MY<;2KF-*9:JGX-F2M\%3:JMS"FJY=$MA_'JYJ1P29^%3J>=., IU[-?_*ZO@
MUM/)'K?>GSEO[MX^_0R7?T<I&$#,B%_-2%S,,O'APVW*IQB5/!NT B6Q-I8M
MA74>@MV6^=2.F*3G_9QVD9U?SP1)*>>(:-V #JT2([?2 @SVXC169#A'>NIX
M>0>F$-Z3-E_RET(A\9@UR[B#7[K!JUUN&.];)UY*;(^8C)^2#0>7MF;5<8,<
M4 ZXS>NT8/]90(D/8?O'O/T3KVURM</>Q5&LV@UD1/ \.A%M=%/R+L]XEV55
MP0[SX"IKF 71[AA+P%^@Z#SO-*XC>]HX3#-#H#G(6\!@V":UKKUTP;9]&(WP
M;9A-;IS3]Q6KA[8'7YO5.MK-;DKI#+^)MMI/*_^0C_FV1J!X7Z%.B38:GG;M
M5#(I^A1>"EF6,> $=FG\Y/*Y\T$&DNBZ]$:E60Y'EIF)!N'9^B3E@]?0>%("
M\Q(EUC/A'=:'A>2CU]XL!OJ\V*//K&6>M'?W=NC7J!U<2-(#5;_3%NRW:;RK
MYC KJ6O="<Z;I<XY-+ 9T7))['V[DT27[<L0+Z--=$;$S<>(*-B!'4D;0+A1
M5<1<"+TA %$<)2:8.ZM"VNTLR^8>]ERCU#+S4M\'5_ [VE*KET"0,L]MH\(\
M(K^HPZ!6MI'X>YJZ3QU];T MNI::.22%GN@G(9$XQ7$P(^D*M4"]5 S$:PD2
M*R<:4W-E:ZFKD'NHOMIR( W4\08[5H7N"SM+5-P*<?A!^8H3(0MX,E1D-&\]
MR,QE2,1L!U+P8E[+Q[-.JF.(0G0U93$BQ$M*<3P>G:=1PV0<I:3NED\=P\0<
M5]Y -6%;63<IJG)"72!UFPU5R41-+1:^YN"ZLP=4.F8)=C[FM>G$KA'V$"S
MS@"SX[P?;ZO%,TD]BZ(+&Y-Y)7"T&R9<3X>9" .Y9X'U'F39)(_ *MAM$M$O
M@.WF'8P*"JEV=SCCB A.?[]ZR,Y^8&)#4]FO*B*TL89]>[\HI99SGW880%V/
M+EH$%8(%T!$5#:8J6"0&@1C<>)Y5@F@C\5E3D20K91I7;OL[52A*KNQ>[.(:
MY'*"!*P&^(74EME7CQZUS%4NFQ!(=C2T 8\\*?=%5U-#B/_*F,Z\I"5'_%V&
M?:^':2X-0&7/*8-7# TFB^I (6V E9#+R7$HHS" !!R.BJPI5L*C\1\!+E+:
MHJFIKX981]C.>W$%S3&N7,!]',2FLLQ[]UR)>UB([]8DG-.DBB@)PEY3A]X2
M_E2 :,W<80NX)@[+\BJZ\NM@HLDU4_:!J4/.[U@NK=T2U^P#;KBF7ZD@$RL@
M41*^5#T?'OII;NXKQO;2@VSFJ=WU?"GM/<MW?#FZ[+CE(OC8\5G[F"J&N+T1
M!^_N)&T8?'R<9L5@L,<BLNCX02VQMF#[[K#)A1HI/##L!+44D=34*EI.KS[
M5M2!'>KHM0@P#&8XZVO.G5+%XU]&Z%2?8O=09N"/SUN^[@!1EN:I63S=9]^]
M5-O'/MV"J$OR0.&4A=Y=#/20OR+Y"R25\"C Y!.6#2$ E-V39^*NR^"-9_#I
ML+F:L3_<[9&E.Y1E<CPVHT[34)9C,;O.IA<S@"VJB=J L$]))V?9V1AE\4T
M^DY<75\!9H>,X@N)1K65ULH4>D%!BXB>3*ZSB^GTB7C?6L?)-+N^OGSRTV+L
M5JG'8C++)K/+ &,_=G9Q1W4N##('!OU8:6>S[&)V%<C$Y"9.KK,KDN9]PG]
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
MK]"'E06P?4R'O4LT'?J1X40W- &2.<:>-/=F!EWBU'@*5U*P<T1+TGU.?U&
M-BN17@<43F@N]EIBOFT'M>Y!2H(,5>K4N?V-M8Y!)P.,H&HAM6T/RXB=7C<C
M'#4KA.,0$K6C<RO?NI;B'E$*<$&I]II5:N"U>9H#4PF?A=O0=2G_446P1G>'
MPOV28*=D-$1#]^7S(,5YU<) 7(.0VS[S@7>[QNB2L"DQP W!0,6?I4<^6C9V
MN,!4K(Z"(\H"HA%A:5N$[8N1@\QG)1\9^O2]5P^W1SLV@!+P+SIO/"K'JM\J
M*D:&,I/"58@H(23UH@KQ_KT \:5WO,3+R=+Q@J'!U3N,.;"\OU2SC7<"V^.6
MT;Y;X:>=6_TK9>_YMPL4D: <?\$_/4T_C[CQOPIHA_O?5B"OWF,OD& 6F#H>
M79X?^8P=O]1FS;\10#RKS8H_TM4;96D WB\,DEWX0@ND'XV\^C]02P,$%
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
MY&$O!G@^<2ZN%^)@\Q%U]C=02P,$%     @ I81<6"(K83,2!P  51(  !D
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
M'?>8J3YB5 .G-_[#P5([=$'_2E=[86@#UE=:NV9 !MHO25?_ %!+ P04
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
M(V:RE;O6T*)V K 6VLB)6Q;F#P'2!IC]C1#Z8-@$_3\G^0M02P,$%     @
MI81<6&0ZHFM# @  B@8  !D   !X;"]W;W)K<VAE971S+W-H965T,S N>&UL
MG95;;YLP%(#_BL6D/;7AELN6 5+2;EH>.D5IMST[< "KQF:V">V_KVT(RZ:$
M2GD!VYSS^3M&'**6BV=9 BCT4E$F8Z=4JEZZKDQ+J+"<\!J8?I)S46&EIZ)P
M92T 9S:IHF[@>7.WPH0Y2637MB*)>*,H8; 52#95A<7K&BAO8\=WC@L[4I3*
M++A)5.,"'D']K+="S]R!DI$*F"2<(0%Y[*S\Y7IAXFW +P*M/!DC4\F>\V<S
MV62QXQDAH) J0\#Z=H [H-2 M,:?GND,6YK$T_&1_LW6KFO98PEWG/XFF2IC
MYY.#,LAQ0]6.M]^AKV=F>"FGTEY1V\6&GQV4-E+QJD_6!A5AW1V_].=PDJ Y
MYQ."/B&PWMU&UO(>*YQ$@K=(F&A-,P-;JLW6<H29E_*HA'Y*=)Y*-OIX,Q#H
M2>",L *MA,"L 'WL2D:NTCN8.#?M:>N.%ER@A>B!,U5*])5ED/V;[VJS02\X
MZJV#4> ]I!,4^C<H\()PA!<.Y8:6%U[@G2OS!NU?T89EY$"R!M-S57?0Z7FH
M^6Z6LL8IQ([^,"2( SC)QP_^W/LRHCP=E*=C]&374$"^MY_=^J?::)7Q6OU_
MR)WN.##'5,*(V&P0FXUR?G!V>X7<./0]N?D@-[_JU)Y Z*\(7W ;9[[GMAC<
M%E<?W+C?./>BGWO2'RH0A>V"$J6\8:IK%</JT&A777_Y&]YUZ0<L"L(DHI#K
M5&^RT*]3=)VOFRA>VVZSYTKW+CLL]<\"A G0SW/.U7%B-AA^/\D;4$L#!!0
M   ( *6$7%@/JG-:,#(  #.L   9    >&PO=V]R:W-H965T<R]S:&5E=#,Q
M+GAM;.U]67/;5M;@7T&Y^^NVJRC9DK/:2:IDQ>GQ3!:7%7>F:FH>0.*21 P"
M#!;)S*^?L]]S 9!6G$SU/,R+39' 7<X]^W:_NFO:=]TVA#Y[OZOJ[NL'V[[?
M/WO\N%MMPR[OSIM]J.&7==/N\A[^;#>/NWT;\H)>VE6/+Y\\^>SQ+B_K!]]\
M1=^];K_YJAGZJJS#ZS;KAMTN;P\O0M7<??W@XH%^\:;<;'O\XO$W7^WS3;@)
M_=O]ZQ;^>FRC%.4NU%W9U%D;UE\_N+IX]N+R,WR!GOAW&>XZ]SG#K2R;YAW^
M\:KX^L$37%&HPJK'(7+X[S9<AZK"D6 =O\F@#VQ.?-%_UM&_H\W#9I9Y%ZZ;
MZI>RZ+=?/_CB05:$=3Y4_9OF[K\%V="G.-ZJJ3KZ-[N39Y\\R%9#US<[>1E6
ML"MK_C]_+X"XSPN7\L(EK9LGHE5^F_?Y-U^US5W6XM,P&GZ@K=+;L+BRQE.Y
MZ5OXM83W^F]>Y%W99<TZ>]V&+M1]SK"JB^R&SPE_NRDW=;DN5WG=9U>K53/4
M?5EOLM=-5:[*T&4/]=.CKQ[WL"@<^O%*%O""%W!Y9 $7E]D/3=UON^QE780B
M'> Q[,:V=*E;>G%Y<L1OP^H\>WJQR"Z?7#X],=Y3 ]%3&N_ID?'F=OR_KI9=
MWP)*_>^Y'?-XG\R/AW3VK-OGJ_#U@ST"O;T-#[[YQ]\N/GOR_,1J/['5?G)J
M]!,'^KHMZU6YKP+]?-W4'>RFH-_G-O%_89KLYVT .EPUNWU>'Q"@*_LY%-FZ
MK'-X-:^R#L8+0/M]EVWSVY M0Z@S -8^;^&YLJ9!V@*>#D O_3;;A#JT>54=
M\)>PQ]'R>&S[N"1XMX=%O*U+?.8&YZ%U7NU""PB>/?S'W[ZXO'SR_%]75Z_I
MX\7S1[0M?"O?[^'\\V45LG; T?"'-FR&BK9' ^%S-V$UM&5?RA,OWZ^V>;T)
M (S=KNR(H>D\-R^ODVE@H=50!)Z.=R!P+,+[LEMDKVK ;GH2?KC;-K#GL^:N
MALUTP[(KBS)O8=YS O6'H?N737=553!8'UHY7&"5%1X/0P!(I>[R%0,IGFBH
M2F!IM#HXEY5'E?,3I/"ID<*G)W'T;1=P+R^[OMSA.<]A^1\;@:#*>,@(#3\V
M0WLO0.-#*$7+_L XBR@&V//;4 ()94.7]0UP]G<A"SK=(OMU*#8\ ((Q[T!X
M[AF*_3;OX7% ^/4:)!R=("RL:0GW=W:2\$[H8:2JS)=E14BYR'#2_K" %VY#
M/<@AA?<@ZCO#ZHHV4Y3=JFJZH25 P!:0H&!!,BX]ZX8^SWX)0A$M$B,\U.%:
M@4?$;0$>E:LM4B4(F+*R+<AJX/]5 P('][E "1M:I'KY=0&@A ]]T]).;O-J
ML*/@;=$#74]@6V2;IBGN2L!.F*I#9@"J"3Z['. O7%R^@K<ZF@T>!R)HAU"D
MX (IO'J7Y7=Y6^ CP@WBU,!XFCO!]JYKX.P1='3(MOP^?R\P V)9]0.@!QP[
MZ X=0'6H$-( A39;M\T.AF\2@.&4W0 PXX<"386'OPP9/M$BM@'Z]/<A^E.D
M]9F1UF<G"0,T(M!WZNQZ:'$UA^QGI/#JJ##Y^-&(Y-[>?)N5A$?9>JB)C\"6
M5OHXD!61(>BJK7+BH0?N%*;,_IPTF+8 5*B  NJF/MLU=>A1U9G'Z0Q0;0-P
M9.E"Y%K =TR-S+H:F*;5]1#;;QF-VX(?P WD3*1!I4%+1PL_!D9_^1T/#C\
MEX"3GIOQ'#6FDRLN0MTXSCJ[O%Y@3(\ [J0BL0!.G[?=?1<MW#YC2P*W<)X<
M8E[\.@A)3F##JQ/NHP(ZP6+'1Y'AVBF?9_\"NT.VWR"O@8'SJOP=,1_I"$\7
M0>_EST*$'O*">8E5-SW-#_B#@,^[#&;<Y36RO82WX$Y$@A[?R7%]Y^BV3A#H
MYT:@GY\DJ3?"2]]$7CI'EW]XD.PGH+,H-@   "2PJPK'S@GT^[8I!L?4\8Q6
MB%3+!K=YBSC0A;P%IH8_%?!8U>QW)%HV;1!61=2_RW\%$NP/3MJ2[MTQBV4K
M*0"R]H<]J&=(I_@(H$:V P:+BI\N1U@IZ-SE2J25J#W$1,JZ*&_+ IGS[ OP
M@41_@"G*-5,IP: $5@U\Z8RD,NI-\&MN,("1903D8GX,(-0>+"M2*0ELC$)
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
M&-D6ULD9'_6(/X\2)7#EB?=[JMPG2CUQG]%J'#I<([FG C?G8#J5+PAUF%B
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
MY(7&,E03Q*G/66/5ZB].$95^F,0==M+S0KLG D;45/Y.03U4^)G!<(L.RIC
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
MYI"#'R,E2-_\6"0I>6@)TDM# 1XR;BCU?[JB6*GE#_4VIT)YCSIL-R5W>\K
MZ@$1Q4BA/L$2"3%SA.M#V/!4[F=#257N#(FD:>$?&NK#B)6L6R3=4MH;4M9(
MWS8QSD:.OJKB-C+36P3,6S"K3O]'<?@GT+SN@\)@ 3GSQ*/K,U058JW"58*4
M;T('FBG[I'#Q-R^OS;APXXD1A@N] 7QUI0^O*,I!"/-'D)Z>,GW)X3D5N/.Y
MY/.._YQ4UR 95$BC26/,66&10,";DM>9E0^J^]-M )3WC=Z$YE9A^[I6L,$O
M>$ND=V4>HUWRC0\] W^C/M";L__)043_U?]8<!B;9:<9S7!&TB[2:)5.9ZW7
M3],.",[(P-QJ2[LNFCP+U'+$6_W^]-V6>(=C_/3;8LUHM!]83KH=N=S),1FJ
MQ((?__L 1LK3)T3[GR_4Y(3E6#,06HZ4A2;P)*#DVC#I9<HPN,'BMER6_UEI
M=$HICL6%EZ?+ B<B:E89OM\8KUR>P2_!W\++^74%UP1KA0(:F'=-_%OD"#8]
M==TE7TK/!H0"RMXJ>U%2UEB^IXIIX&C?1C54LI@D?0EA;KU#*#J9NMDS+HB1
MVWIP<4V[ <WE=ZO/7F'G_U7L7L68HJ^Y>B/;A6821PHK$14!"+R2M#,YE1I0
MDTPSDLHD_]PHW[4IH&O:<RS-CC);\N&6*6QL60N'9VJ,1:^=Q [>A.(.K^ZY
MIHNYK[$8K6GK,L_PR@0!J50*XS=RC;.&8DBRS,"+XA01JH3;"G4YC@6W"4.I
MP=T%Y90H/9;.#5:(1=4)I-%1PGBUH!\U.CRZ'XA-W(KS*720ZY<_<?49MFM=
M.\M<]5QR'K>+V C5=SREJ+[<W$4V-W?T2PK/8R*T;9+KTI@H_AB.NP4JE3!P
M[!YWZM:32P7>C-H'7,P8NXI_2^9!3)1&2?_LDIAT&XQVF0T)6(5^ (S6Z35R
M,1>0P0<^",(B@C#M7Y2,ZI*(XPJGI9@)S#%U$?D RUR[W21.QY$[^7K3<+&C
M[_DFA8%64KFBG O,2T [*Z!7K=1BK2@ZCR'\>?96>BACSZYP-WXPPIC[L<MK
MPK_F>2@V-I]1\X\DD')?XEPZH7C5=6H@2F^ZH#>T"^8BTU8L_&>27!8S=J6W
MMN3-\!TO#6];'$7"L&8P=4ZN/:;H_;=YGW_SU2ZTFW =*NK, RSHZP=8/&3?
MXK*Q)//9U>6#Q_!F?/R;K_8 P1_R=H.5*%58PZM/SC__] $G^>@?H.'@D-A0
MO6]V]!'976CQ ?A]W32]_H$3W#7M.UK>-_\'4$L#!!0    ( *6$7%B+1=Z3
MDP0  *,*   9    >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;)56;6_C-@S^
M*X17#"W@);$=.R]+ K1W/=R 'E:TNPW#L ^*3<?"R9)/DIMVOWZ4G*3ISLEA
M7VR]D _)AZ+$Q5;I+Z9"M/!<"VF6065M,Q\.35YAS<Q -2AIIU2Z9I:F>C,T
MC496>*5:#./1*!O6C,M@M?!K]WJU4*T57.*]!M/6-=,O-RC4=AE$P7[A@6\J
MZQ:&JT7#-OB(]G-SKVDV/* 4O$9IN)*@L5P&U]'\9NSDO<#O'+?F: PNDK52
M7]SDEV(9C)Q#*#"W#H'1[PG?H1 .B-SXNL,,#B:=XO%XC_[!QTZQK)G!=TK\
MP0M;+8-I  66K!7V06T_XBZ>U.'E2AC_A6TG.R'AO#56U3ME\J#FLONSYQT/
M1PK3T0F%>*<0>[\[0][+]\RRU4*K+6@G36ANX$/UVN0<ERXICU;3+B<]N[IA
MAAM0)=QK-"@MZ[B2!3QV:7)[CWPC><ES)BU<Y[EJI>5R _=*\)RC@<O?V%J@
MN5H,+;GD@(?YSOQ-9SX^83Z*X9.2MC)P*PLLW@(,*99#0/$^H)OX+.)[S >0
M1"'$HS@Y@Y<<"$H\7G("KR_>OZ[7QFHZ4'_W1=SAC?OQ7)'-3<-R7 :-HUP_
M8;#Z\8<H&_U\QMOQP=OQ.?35(Q5MT0IT6;LUEM.QQ0(>F-R@S_)G@V4KX(XJ
M89=U*F]M7WS&;[^VO*&"LWU1G;7;']4>/ 3<(WL[ JF,*B4*X'6CU1.Z'0-,
M(QCK'686<F4L21I:S_.V;H7?*)#@<_YZ2EFMM.7_= LY$_E.L#4N8[9RD)JY
MTOS)^0PUVDH50$:UV^4:\$!3VY$C/#G,0*D$W5EF#M?&T/68"V:,+P-O[/9;
MO1+ACJV59E91X;P&G<(+,FW@G:J;UI+EMWP85=JMBS[9R?U:DA7\CU39:LEM
M2V)[N+M^'N^(-+)!V3UV3.F.=R#[]=N\'^R$(%V<BJY<XP(C",=@QX/C\Y)+
M6E&M(35S-0<J-JS79&Q?<.X3]Y-P&5W!!223,(XR-YB%V61V*H8H"F=T-T19
MF"7)=WF+PS1+(0E'R>Q[W$7A.)O1-QFG!"OI<+3=\T"1D?V-=B?N,KXBD2S)
MZ#LAS'ZV(!V'D]D4LC@<)ZFG??X_#NLE,9!$1(H;3&,:G$O*!41I.)Y.:!#'
M81:-/9\?6B%>7NV0S:;?U2VW%;"NJ"BK%\E@1*^)$'O/+J)!>EC8(A&ET7+M
M@FCUOI*Z4X?NHN[)O(-QV0])U33H7UOQ,O!DGF2:RURT!97;JZL4"I)J >O6
M@E26S%IH!-TM=$:D5>!N%Y=BZDL*YQHG;":$9W5 CAV1CL\D1&=^9\8!P%H1
M%>Z.8CJOO-<%DJ>JL[[3,-T!HV:!+(2P08F:B2Z)!3W#W-TJ+L)7!5\:Z*N'
MWHG"9\-?9]V))M9=9KQ?!K;L^(;YIJ[^).>Z%_%4B=$GZH_U M(PC:;^/Q[%
MKM3"*$J@[W49'C4.->J-;X\,^!>OZR$.JX<.[+IK/%[%N_;M$],;R@1=,B6I
MC@:3- #=M43=Q*K&MR'$/S4U?EA1%XG:"=!^J93=3YR!0U^Z^A=02P,$%
M  @ I81<6#V_"60!!0  50P  !D   !X;"]W;W)K<VAE971S+W-H965T,S,N
M>&ULE5=M;]LV$/XK!W<H6D"+]2[;30PX;H;M0[ @35<,PS[0$BVQE4B-I))T
MOWYWE"P[C>MF7VB*NGOXW*O.YP]*?S$5YQ8>FUJ:BTEE;;N83DU>\8:9,]5R
MB6^V2C?,XJ,NIZ;5G!5.J:FGH>^GTX8).5F>N[,;O3Q7G:V%Y#<:3-<T3'^]
MY+5ZN)@$D]W!K2@K2P?3Y7G+2OZ!VX_MC<:GZ8A2B(9+(Y0$S;<7DU6PN$Q)
MW@G\(?B#.=@#6;)1Z@L]_%9<3'PBQ&N>6T)@^'//U[RN"0AI_#-@3L8K2?%P
MOT/_Q=F.MFR8X6M5?Q*%K2XFLPD4?,NZVMZJAU_Y8$]">+FJC5OAH9=-T@GD
MG;&J&92102-D_\L>!S\<*,S\[RB$@T+H>/<7.9;OF67+<ZT>0),THM'&F>JT
MD9R0%)0/5N-;@7IV><OON>PXW/)<E5(X3[VY8YN:F[?G4XLWD-PT'] N>[3P
M.VA!"-=*VLK E2QX\11@BM1&?N&.WV5X$O$]S\\@"CP(_3 Z@1>-]D8.+_J!
MO5NM&E@C5XUY@3ZW%:R=M[F&OU8;X\[_/N:!'C\^CD\UM# MR_G%!(O$<'W/
M)\O7KX+4?W>"?3RRCT^A+]\+P\I2\Y*Y0*DM#/8<(WH2ZCC1 WQ>@)!]T=-5
MP@ SL%4U5K&!-T*"K51GF"S,VP7\R9GN0PX8,-YLT(N[H-$2TA+ -?NL-+1:
M%5UN$5 60!>+G"_@IC_%0N\#]!/$H3?W4]P$0>JE&>TRWTN3#(TV>&%>.80"
M%6K58J/8*X>9%T89A($W#V*(8L^?9W"G+*MW(J9'"^*(+HAF7C+W:>?'7I;$
MR$90CX*2JU*SMA(YJN+)%V[- E:8)7ABG*J710XC\WR?(,+(BV<!7%U?K2 D
M$S)(4B^)??2!%\PR6-VLUA!%7N)'D":>G_B0!IX_2_\7PQ/9E(S9E)S,IN/I
M?RR53N(<3Z6[B@_I(F0)ECH*N+<2([]A-9,YFH@9G.]8,&/0NQYT<B/J&E-)
M8RJ)>]>+O+U8K@Q)4>C'LUHPU,'NQ9_GYO.$_/8DW#>"G@.Z>18D%$L/<P\^
M'B&$+^<8VYB"Y/DHM'["#X]?OYJ%0?B.0C;?OSU@NJ"O!]?: >^2/O"]+ UP
M$V&J^W/XQ.E6:LW_HIQ]XM0Q45Y:CKOF=X#H-#$RF-"J0&R]."C:5:,Z"I>0
M>=T5O?11GS/K4#:\%%(2-8SK'A:+FVO72C#FH#:UZ/N7 8._9BL0V170'&N6
MG.Y',UA73);</"6X^/:8&XN%2LT*24G#^D]]B]7)@:&?\OZ=(OT?,!!.C_J3
MN\I [ 5I@JUD_@+Z[G,B<09Q4T;OE*>N_7GON5VTXYGGQP'6=NJ%6?2"ZC]1
M\^E8\^G)FC\TY??1% ^N'EN<D]"2.]$, ?S@K.M=>JPIG+SH^TUAK/W!/WUK
MV-!X"$RCOYBV F/WU4U;!6 \/W=%V? ^$^]5?=]':X@]L=UVMD-5I0NN31^,
M?&AG&*5N\QEMHRQP*?/(=2X,)Q,I=;0@K]/P9J#MM.F8=+)(FER",^,8N>>5
MAF42TY+0DM*2N<Z$AN*(O$7T(:S//V]8Z4%(E1[$_KA&J;]O L?"/3T8]="Z
MT@VT!AEBH?93WW@ZSLRK?E3<B_<#]S736*X&:KY%5?\LPRZO^R&V?["J=8/C
M1EETI=M6./=S30+X?JN4W3W0!>,_B>5_4$L#!!0    ( *6$7%@2(VF>X (
M #P&   9    >&PO=V]R:W-H965T<R]S:&5E=#,T+GAM;'U5;6_:,!#^*Z=,
MFEJ)$0@O90R02LNT2FN%2K=IFO;!)!=BU;%3VVG:?[^S$S(J4;XD?KE[[GDN
M=Y=9I?2CR1 MO.1"FGF065M,P]#$&>;,=%6!DFY2I7-F::MWH2DTLL0[Y2*,
M>KUQF#,N@\7,GZWU8J9**[C$M093YCG3KTL4JIH'_6!_<,]WF74'X6)6L!UN
MT/XHUIIV88N2\!REX4J"QG0>7/:GRZ&S]P8_.5;F8 U.R5:I1[>Y2>9!SQ%"
M@;%U"(Q>SWB%0C@@HO'48 9M2.=XN-ZC?_7:2<N6&;Q2XA=/;#8/)@$DF+)2
MV'M5?<-&S\CAQ4H8_X2JMAV/ HA+8U7>.!.#G,OZS5Z:/!PX3'KO.$2-0^1Y
MUX$\RVMFV6*F507:61.:6WBIWIO(<>D^RL9JNN7D9Q=W]-V_*V.@0 V;C&F$
MLP>V%6C.9Z&E ,XLC!NP90T6O0/6C^!629L96,D$D[< (3%KZ45[>LOH).(U
MQET8]#L0]:+!";Q!*W?@\0;OX*V8EESN#*Q;N7\NM\9JJHZ_QP37<,/C<*YC
MIJ9@,<X#:@F#^AF#Q<</_7'ORPFRPY;L\!3ZPO,S<*<LW,A8E)12X!*N5%Z4
MEOFB5BE<<U%:NFF_9"OMF)[3$1\RA%0)ZE1*$I@Z?H64)4DD8D6]F-#.T[!D
M&[^EDC14)%$1^Z+R*+#%F)4&G1?7@&E*70D5,\"DY9^\(W4GG'E@51HF$W,^
MA=_(=%U,0*6 ^98 ]^7@'I%[]*')%#>F=+4+)7EHSW#U5'+[ZO*'TD=8"R9=
MU 16F_4:SOKG\+G3BR9PT1D.(QAUHO[(G[8I'XTGG2@:.H%OR1;*.E F7!YR
M2D&3L%2KO$:GH>E9O#H9>%Q&]UBEA <=G:/>^;EE*$XI;=W<[6D[&B_KB?#?
MO)ZKMTSO.$D6F))KKWM!DTC7LZK>6%7X^;!5EJ:-7V8TWE$[ [I/%>EL-BY
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
M[1;@^5PIN_WA#+1_4%S\"U!+ P04    " "EA%Q8>C=#&;$(  #N'   &0
M 'AL+W=O<FMS:&5E=',O<VAE970S."YX;6RU65MSV[82_BL8->W8,S0%@'?7
M]HR=NN?D(8W&EW0Z9\X#34(2QQ2I0T!V?'Y]=Q<4)3LTI;C)@T02!'87N]]>
ML#QYK)M[/5?*L"^+LM*GH[DQR^/Q6&=SM4BU6R]5!6^F=;-(#3PVL[%>-BK-
M:=&B'$O.P_$B+:K1V0F-39JSDWIERJ)2DX;IU6*1-D\7JJP?3T=BM!ZX*F9S
M@P/CLY-E.E/7RMPN)PT\C3LJ>;%0E2[JBC5J>CHZ%\<7@N,"FO&Y4(]ZZY[A
M5N[J^AX?/N2G(XX2J5)E!DFD<'E0[U59(B60XW\MT5''$Q=NWZ^I_TZ;A\W<
MI5J]K\L_B]S,3T?QB.5JFJY*<U4__ENU&PJ07E:7FO[98SN7CUBVTJ9>M(M!
M@D51V6OZI57$/@MDNT"2W)812?E;:M*SDZ9^9 W.!FIX0UNEU2!<4:%5KDT#
M;PM89\ZN39W='^&^<O:^7H"Q=4KJ.KA)[TJE#T_&!MC@Y''6DKRP).4K)(5D
M'^O*S#6[K'*5/R<P!ODZ(>5:R LY2/$WE;G,$PZ37'H#]+QNTQ[1\U[;]#QM
MU-$%;7J2/@'(##MOFK2:*;K_S_F=-@T YK]]N[>T_7[:Z$7'>IEFZG0$;J)5
M\Z!&9[_\)$+^ZX#D?B>Y/T3][!J\,E^5BM53]JKI+K_@O>J3?9!ZO^S;;+)M
M-LJR885F1965*[ UW# S5S"OTG59Y*F!,6W@@GK5*#7$DX;6:Y9J-JU+B N:
M'=#">J73*M>'Q^POE386/@R,KQ9WJND @'\2_P1L6UNJRZ;.5YF!./&@JI5B
M[Y@7^/#O!Q+^I?39%>PG;;(Y P[@M@\0CY9D;.F$GF">D_ ([T./74.,**J9
MPV:J F%+6I+FX'T%P@+#" N=) Z9X(Z()(N=B(?LIC8P]QU+G"02<!6^$WAT
M(YP@\=@-*,;N%X@S@^[%2,VH&4.+]2Y=WSTQK;)54Y@G9IZ6ZHV:?Z.Z"0I
MQQ)YATH+4;^^(\((]>Q$(6CZ^E:3RJZNSS6\\_T(_F-2;Q3&;(+OA1/Z"1"0
M," =S_/8Y.(3"":$/(0!&>/+2,;L\GHR83)@O_P42R%_[:Z[M#W@;$'G;,&@
MLYUKR%7M9F_1)*9FE]H4D L4*?OWM&C8Y[1<D3]^HJGL7Q!'C.YSOF%NS^%A
MLV3Q?Z6)TR-E%Y4?I0]@Q)D"W]G(MFIE4]NR35&VA[5L:K$LZR>E+,(Z$\Y0
M5I7O#0",+!DBJRRFBAT\P2I]R (WAE\$OY!]KDO 6(GX#$-7LI]9*%T!ET"Z
M 5RN"GU_-&T4(M<H0#_X+(KLNQS>>C25 [V?-[SRXJ'(%>#IJ5!E#F\YS=G\
M_U#-!=SAG#NL*DJ'4)W@,].80LBM>C6*1*NZ.EKK'2,=U$(048L,'H@ZQ!3#
MWG'8\J* @%-76TRVAUD._HX1 V0CC3/5;RCZEY8 F0LD1!U"O"J?OH.-4=LO
M;!QQLMC:*<',/@V\;N;HV73N)M]DZH$][! _A%^P+3I(BKP#09?7!!:$14YB
M[R'F0-0)NZ@3[I_BJ5#Y.L4[;2BV(4<[[!RM#+OJ"SN#[/IS?D^JTAO'8OH9
MZ&UE79A"Z6/VQXIL\F?K=>R\];J##Q7XZ3KCL$\K \FIRI$\>,%+6W((_EX<
M0#2/7)'8D K$)*1<R#*A"Z\NOZ@F*U Q!V'H'\)XZ"8A@U)]J@J8/ 9K%0V^
MCB2^%9&;)+OX"D@]B8=\8S?A&[[D\NW@%F-?<"0M74A?/8QE%!#GQ.5B%V<)
M*5(&EDD<;W/V<<^!"SZZQ5G&'I%VDZB/<^PE]%JZ/-[%V6,!%#$^Z1H2Z&L&
M_&K@2N&A#XF^AVH?J^45).0;U2S8^6S6J!FZSP=X4\ 1+GL) 'S\R_KFMT'C
MA;BA&Y&*X[5VJ*SJ70=5!14(L1M"O>>B6J.$?097QU ,WJS6_@W!^P$C0"\9
MWXG\F-C[$MC[A"T^5&]$G>='W\'SH:H:=/=!'GN[^W8:18YO\/$_(/\]6.W>
MI65:9;UVX2P)J6IS?;^#/6%> KK%VCX'H?5B01C=B[)@,;>.'W@=91$D9#L8
M6E,.8J(<HSWWHRQAMD62'VQ<-:(2V(T[3!T(C[P4_-_?D[+'/(GAQW,!8P.0
MBCM(Q=\%4K>#D!KD\49(W?Y(2(F(, 6U2+2Q/)SL*'D$&P-%%+^%YP:]8=2+
M#BT.P:;[8DYZLEVS 5T@8@M$P'6'#1ZVQ&%1#V\APS9Y!,'>L&P9Q:[8X%)
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
MB@RA&?@AY6SL"4X*G1Y ,(SV%R4X9E"4 +?C$ Y#^/E _0B;^A$>K %/S?_
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
M2I57QFX&90X/10[6F1R0!9Y9*C<"/*4A#9L$IBJHJLHZ5O5@#3)B&MP!&WT
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
MG$W41/,Z]5<7)%N99-B"2<DJ\U@ SH#K!NK]DC&Y*^@.V@1L_ U02P,$%
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
M77;U[2/*-K2<*)[;QFS.E6[S[##5G3L(XZ#7%YRKS<1L4/\7&/X!4$L#!!0
M   ( *6$7%BNM+M_' 4  (\L   9    >&PO=V]R:W-H965T<R]S:&5E=#4R
M+GAM;,V:6V_;-A2 _PJA%4,+M-'-MV2V@22Z=6N&(&FWAV$/C$3;1"71(^DX
M ?;C1TJR+,6*:@_G(2_6Q3P?*>F32.EPNF7\NU@1(M%3EN9B9JRD7%^8IHA7
M),/BC*U)KOY9,)YAJ3;YTA1K3G!2!&6IZ5C6R,PPS8WYM-AWR^=3MI$IS<DM
M1V*399@_7Y&4;6>&;>QVW-'E2NH=YGRZQDMR3^2W]2U76V9-26A&<D%9CCA9
MS(Q+^R*RQSJ@*/$')5O16$?Z4!X8^ZXW/B<SP](M(BF)I49@M7@DUR1--4FU
MXY\*:M1UZL#F^HX>% >O#N8!"W+-TC]I(E<S8V*@A"SP)I5W;!N1ZH"&FA>S
M5!2_:%N5M0P4;X1D616L6I#1O%SBI^I$- (<YY4 IPIPC@UPJP#WV(!!%3 X
M-F!8!0R/#1A5 :,7 >YK9VE<!8R/K6%2!4R*JUM>CN):>ECB^92S+>*ZM*+I
ME4*((EI=0IIK=^\E5_]2%2?GZIJG^(%QK!5"EYSC?$F4FU*@3RB\_PW=IECJ
M6P1])?$J9RE;/J.OJI18$/X1-<*UB'F"OM!8F:U02TX*$'KO$8EI*CZ@=XCF
MZ.N*;80J*::F5 >@FV'&56.ORL8ZKS361C<LERN!_#PA24?\=7^\^Z-X_P?U
M.ST 4YWY^O0[N]-_Y?02?]VD9\BU/R+'L@?HV[V'WK_[T'5@_1B/Q#N,X_9@
MO.,Q3@_&AVE- -.:\'B,O<.@-7[6<G;@HJ-Q]GEWJUHFN/6-Z!9<]_0;4=]6
MO[/\4_Q:D?*&Q$5O(-!?7Q0:?98D$W]WW6-E.P;=[=!]Y858XYC,#-49"L(?
MB3'_^2=[9/W2Y24DS(.$^9"P !(60L(B(%C+V4'M[*"//K\EO!@]Y3%!["&E
M2UP:*-12+&CG(_:J%WFJ?B5L7,#T,.UQ;H_/W?'4?&QZ=5C*L=Q)NY /V:X
M$A9"PB(@6,N78>W+L->7YGBB2XW>Z%/5@(1YD# ?$A9 PD)(6 0$:YDVJDT;
MO9'>= 3I+"3,@X3YD+  $A9"PB(@6,O9<>WL&+XW[46>JA\DS(.$^9"P !(6
M0L*B<<= Q;+J@4I+JTFMU:17J\LDH5HDG**,ID1(IIYGU>N/0/_VO E=]8)/
ME0L2YD'"?$A8  D+2]BHZ4-[U!H!5=<RZ[PVZ_SHX9P2Z4Y5@'F\*GK8A#R2
ME*V+_I2K]7Q#N@SKK>!4PR!A'B3,AX0%D+ 0$A8!P5HRVM;^2Z;U1L9\54.
MM 6E>: T'Y06@-)"4%H$16O+V_@,;\,/_OJ9)WL(2?- :7Y%:WWH<1LCH\JO
MPU(OBH0=108'H BJ\6T9G+T,SBD=ZPW-:;;I_&+2#SK9 $B:!TKS06D!*"T$
MI450M+9\^SR$_582$39H)@*4YH'2?%!: $H+06D1%*TM[SXA8?=G)!HONS'+
M)55>*BMW;[N=$AXF!X:3EQW"=7^U)\L%2?-!:0$H+02E15"TMES[[(5]?/I"
M=\OXZ=5N&323 4KS0&D^*"T I86@M B*UI9OG]"PWTI&PP9-:8#2/%":#TH+
M0&DA*"V"HK7EW6<V[/[4QO_HE@\_A;N3X6&_#)JR *7YH+0 E!:"TB(H6FF7
MV9C-F!&^+&:V"B7.)I?E?*IZ;SU[]K*8,_IB_[5]X=D=^WT]V[:8/;G'EU-U
M;S!?4O6(3,E"566=C=4SGY>S7\L-R=;%7,H')B7+BM45P0GANH#Z?\&8W&WH
M"NHYR//_ %!+ P04    " "EA%Q8 5A_D@H$  "8&0  &0   'AL+W=O<FMS
M:&5E=',O<VAE970U,RYX;6S-F5V/FS@4AO^*Q5:K5MH.7_F:;!)I,@2V4J>*
M9J:[%ZN]<. $T #.VD[22OOCUWR$AH2AB7HN>A/ G/?Q@?."'3/9,_XB(@!)
MOJ1))J9:).5FK.O"CR"EXH9M(%-GUHRG5*I#'NIBPX$&A2A-=,LP!GI*XTR;
M38JV)9]-V%8F<09+3L0V32G_.H>$[:>:J1T:'N,PDGF#/IML: A/(#]OEEP=
MZ34EB%/(1,PRPF$]U>[,L6<6@B+BSQCVXFB?Y)>R8NPE/_@03#4CSP@2\&6.
MH&JS@WM(DIRD\OBW@FIUG[GP>/] =XN+5Q>SH@+N6?)7',AHJHTT$L":;A/Y
MR/9_0'5!_9SGLT04OV1?Q1H:\;="LK02JPS2."NW]$MU(XX$BM,NL"J!=2KH
MO2*P*X%]*AB\(NA5@MZE/?0K0?]2P: 2#"X5#"O!L"A6>7>+TCA4TMF$LSWA
M>;2BY3M%?0NUJDB<Y59\DER=C95.SE0)$[IBG.:.('><TRP$934IR'OR -Q_
M(<N$RMSSY!G\*&,)"[^29Q4GUL )S0+R,?:5-Y4ZY%!HR5L')(T3\4Y!/C\Y
MY.V;=^0-B3/R'+&M4!HQT:7*/L]!]ZM,YV6FUBN9VN2!93(29)$%$+3HG6Z]
M:74 ='7;ZGMG'>[=W.HD.N#?$-O\C5B&9;<D='^YW&J[GA_K??%CO;N7R\T6
MN=<MO]N&![G9[RB%7=O8+GCV]3;.'?J)9>_]UT)*,]/BU2C(WQ\5FGR0D(I_
MVDQ:YM%KSR,?.,9B0WV8:FID$,!WH,U^_<4<&+^W&003YF#"%I@P%Q/F(<$:
M-NO5-NMUT6=+X,7HG_E V"J)0UJ:1JBM6,>MKZ5YB1P6R'QFL)N9PUM[.-%W
MQU8XC[(,>]0,<CJSN[;$F# 7$^8AP1HE[M<E[G>6N!SS_KM\L&LK>6<7U[XD
M,&$.)FR!"7,Q81X2K.&@0>V@P4\R%@TP;88)<S!A"TR8BPGSD& -FPUKFPWQ
MQZ).Y+6.P80YP[/QSV@.?HOSB-Y)B'L>,C!.8CRDK!LU&]4U&W76[%[] 8G5
MHZX>= X^Q#NZ2J"M3IV8:^N$"7,P80M,F(L)\T;GD[:^<>2E1OEOZ_+?XLXM
M5.RCRI5R/RH" MA!PC9I:: =9-M6]W1F<:U[,&$.)FR!"7,Q81X2K&$RT_BV
MI&/\)!.0*A$DIZ'2'%3: I7FHM(\+%K3;D<KB";^1*2;>;5S,&E.1>N:BWP_
MQ&T),<\F(UB)EZ73C]:!4^!AL<0OB,^VF2S7TNK6^C/"7;%X?M(^-\?W9DN[
M8X[=\B/!-WSYS>*!\C!614]@K;HR;H;J'Q@O/P.4!Y)MBE7H%9.2I<5N!#0
MG@>H\VO&Y.$@[Z#^&#/['U!+ P04    " "EA%Q8S%#-1\L%   =,P  &0
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
M2I;DFRM*YI1G >KS!6/R=2?KH'HC9O(_4$L#!!0    ( *6$7%A \V'<Y ,
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
MU<-PS<R<TS]4X(R@2><C"355LZTF3I>A7TVUH^X7A@MZG]#X -J?:>TV$W]
M\^)EOP%02P,$%     @ I81<6(V6ATH4 P  PPH  !D   !X;"]W;W)K<VAE
M971S+W-H965T-3<N>&ULS59M3]LP$/XK5H8FD 9Y:=H :R,!V0L2,,3+]F':
M!S>Y-A&.G=ENRZ3]^)V=$%I:.ICZ85]:^W+/X[OG?,GU9T+>J1Q D_N2<35P
M<JVK0]=5:0XE57NB HY/1D*65.-6CEU52:"9!97,#3ROYY:TX$[<M[9+&??%
M1+."PZ4D:E*65/XZ!B9F \=W'@Q7Q3C7QN#&_8J.X1KT;74I<>>V+%E1 E>%
MX$3":. <^8=)9/RMP]<"9FIN34PF0R'NS.8T&SB>"0@8I-HP4/R;P@DP9H@P
MC)\-I],>:8#SZP?VCS9WS&5(%9P(]JW(=#YP]AV2P8A.F+X2L\_0Y-,U?*E@
MROZ26>/K.22=*"W*!HP1E 6O_^E]H\,<P.\] P@:0/ 4$#X#Z#2 SDL!80,(
MK3)U*E:'A&H:]Z68$6F\D<TLK)@6C>D7W)3]6DM\6B!.QZ@7HT,AJ9&?'$E)
M^1BPK%J17?*)B2%E)($I7H_*6-^1+U5=+YZ1LR+%^B-J+,%BK!79J89QD9(Y
M;D0\>FTGH&G!U X><7N=D.VM';)%"DYN<C%1R*'ZKL;<3(1NVN1Q7.<1/).'
M'Y!SP76NR >>0;9(X*(HK3+!@S+'P5K&!-(]TO'?D< +.BL".GDY/%@!3UX.
M]]=DTVGKW+%\G=?7V13M0O#=]#D7<H-+16VC*O+]#*G)J892_5A5ISJ.<'4<
MYBUVJ"J:PL#!UY0".04G?OO&[WGO5VF\2;)D0V0+^H>M_N$Z]O@*>XA/8.7-
MKI&119K7]#2./#_$.S>=EV+9R^_L=P^\1;=DA9L71MVP=5L(O]N&WUT;_@4H
M#2DYT]D>V38;!N0S4*9S<IT6P%/ ;O[]]]Y?E?[:DU][839)EFR(;$'Q7JMX
M[S]IV-XF]=\D6;(AL@7]HU;_Z)\;-EKJL=#WGC3BR;)3M.24+#OU#N:<ZLC=
MN<]["7)LQR1%4C'ANOZ>M=9V$CNR \@3^S%.:/5 ]4A3CW?G5(X+O"L,1DCI
M[45X]64],M4;+2H[1 R%QI'$+G.<,D$:!WP^$D(_;,P![=P:_P%02P,$%
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
M*@3-BL,UX 28"I"_+RD5SR?J!O6>TO1?4$L#!!0    ( *6$7%AU)C%2^@4
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
M^[A$%<4F<7&B^"K?!9UQI7B:'RZ!QB!T /X^YUR]G.@_J+;J)_\"4$L#!!0
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
ML%/![$XL!U3\FF@FI6@FKXQX"769M\XG> LND2#>Y-,Y@5R$Q+YR0<)T),Q
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
M(KC;7DQ[8=K3UB*)B^VVZS[];">D21MR 5EC;]HX.>?O<W[V<6(/UES<RCF
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
MJ W&ZRY'/9"L-(V"%9.2%>9V"S@#K@W4\S5C\G&@7]#VFF;_ U!+ P04
M" "EA%Q8>4-TL<("  !J"@  &0   'AL+W=O<FMS:&5E=',O<VAE970V."YX
M;6RU5EUOFS 4_2L6JZ96VLIGH.T(4AM:K=(J1<W:/4Q[<.$F>#4XM4W2_OO9
M0%'2D"C=V$NPX9R3>PY<N.&2\4>1 4CTG--"#(U,ROF9:8HD@QR+8S:'0EV9
M,IYCJ;9\9HHY!YQ6I)R:CF7Y9HY)841A=6[,HY"5DI("QAR),L\Q?[D RI9#
MPS9>3]R262;U"3,*YW@&$Y!W\S%7.[-524D.A2"L0!RF0^/</HL#C:\ ]P26
M8F6-M),'QA[UYCH=&I8N""@D4BM@=5C ""C50JJ,IT;3:/]2$U?7K^I7E7?E
MY0$+&#'Z@Z0R&QHG!DIABDLJ;]GR*S1^!EHO8514OVC98"T#):60+&_(JH*<
M%/41/S<YK!!L;PO!:0C.O@2W(;C[$KR&X%7)U%:J'&(L<11RMD1<HY6:7E1A
M5FQEGQ3ZMD\D5U>)XLGH E-<)( FU3,6@\2$"O09C;#($"[2>G'Y5)(%IE!(
M@0X;T)%"W4UB='APA X0*=#WC)5"441H2E69UC>3IHJ+N@IG2Q4Q),?(M3\A
MQW+<#OIH?[K308_WI]OK=%/%V6;JM)DZE9Z[16][=C^_*2BZEI"+7UTIU;I>
MMZY^ YR).4Y@:*@6%\ 78$0?/]B^]:4KLS[%XI[$UO)TVSS=7>K1>?I;-0*H
M/)F07;'5]*"BZ_?<(O('MNV'YF(UCTV4;;NG)]XZ+.Z"^<%IT,+6/'BM!V^G
MAQM6P(MJ7/ZHVFQ:;NF2G1KOO?]]BL4]B:UE-VBS&_RG?AKTF6>?8G%/8FMY
M^FV>_K_U4TWW5UI@X+O!FT89;:*"P+5.W[33SE+^TFC0&@UV&KT4DJC10#F]
MPH2C>TQ+Z/(;;+1\E]]-5)??G16]UZ^Y\F'74]@-YC-2"$1AJN2MXT ]1KR>
M;.J-9//J6__ I)H<JF6FAD'@&J"N3QF3KQL]/K3C9?0'4$L#!!0    ( *6$
M7%@.#,38;@0  / 7   9    >&PO=V]R:W-H965T<R]S:&5E=#8Y+GAM;+58
MT7*C-A3]%0W=Z>S.; ,"#'9J>R8VV6UFNFUFW=T^=/J@&#G0 /)*LIW]^TI
MP("LC3/*BPWBWJ-[#G YTO1 Z -+,.;@,<\*-K,2SK>7MLW6"<X1NR!;7(@K
M&T)SQ,4IO;?9EF(4ETEY9KN.$]@Y2@MK/BW';NE\2G8\2PM\2P';Y3FBWQ<X
M(X>9!:VG@<_I?<+E@#V?;M$]7F'^97M+Q9G=H,1IC@N6D@)0O)E95_ R<AV9
M4$9\3?&!'1T#2>6.D =Y<A//+$=6A#.\YA("B;\]7N(LDTBBCF\UJ-7,*1./
MCY_0/Y3D!9D[Q/"29'^G,4]FUM@",=Z@7<8_D\-ON"8TDGAKDK'R%QRJV&!B
M@?6.<9+7R:*"/"VJ?_18"W&4 (,3"6Z=X/83_!,)7IW@/3?!KQ/\4IF*2JE#
MA#B:3RDY "JC!9H\*,4LLP7]M)#W?<6IN)J*/#Y?H P5:PQ6Y4,688[2C(%?
MP!^(4B1O"7A;#[X3HU]6$7C[YAUX ]("_)60'4-%S*8V%Y5(/'M=S[JH9G5/
MS I=\(D4/&'@NHAQW 6P!86&A_O$8^%J$2.\O@ >? ]<Q_44!2V?G^XJTJ/G
MIT,-&Z^Y*UZ)YYW 6R*6 "$M* ^NO^W2/<IPP1GXYW<1"FXXSMF_*MTK7%^-
M*YO()=NB-9Y9HDLP3/?8FO_\$PR<7U6:F02+#(%U]/0;/7T=^OPJ_D^\2ECH
M21A7R5:EAV6Z;)7[>3"",)C:^V,]AE$0>I.QWPV+5&%!. F;L Z'4<-AI.5P
M2_$6I3' CZ+G,_Q>= =*Q3.AHE,A!4<5^('C]-@H@L;]H$A;TPOO6M P#K2,
M_^0)I@ QACG3T@T&3(9LAS'A@*RVG!>2#1NRH?X1E31!FHM[3,5WE8-U@N@]
M5C;7<, %C@:$M=.=^_(: NLH,VZ4&6N5^4A(?$BS[$@<E2CCX0T.QSU-AC']
M1T!;R@N)3AJBDV<15;&;#"IW_<#KT1L&>:X/>PPG@^[4">I4#IW61CC:VE>H
M$!\KFA&U&] FG_M9,HH6F4+K"G?DO^ K?>IK8%.BFD2+3*%U175;45UCS;2&
MZC:.03?53WBV/(;0NO*T[A)JS=;\IA6&;$"&Q;HI(5FL5,<;N@2%.D:=HBFT
MKCJM5X1ZLRA6)OB[6&/1!_$,;7:G%CA:D+/?/I-HD2FTKH"M486CUVIIANQF
M+:I)M,@46E?4U@M#O1G^X1(&#AWN*/!"O_^J*HQPZ#F3GDO05_-2MJT9AGHW
M?,UXFB-)]X/H5. KRG9827IHA96DAV%*TJ]A<V'K<Z'>Z,K714G2D"FMM3")
M%IE"ZTK6.F8X>:U6H_7B9XMJ$BTRA=;=26N]O*OW\C]L-77^\1IB/#0%BB@O
M&"ZZ]<6<2]8^V@K-L?!\<DN9@379%;S:36Q&FVWKJW*SMC>^@)?+:O.YA:GV
MPC\)*YD63/BFC8!T+D+Q8:#5]G)UPLFVW'"](YR3O#Q,,(HQE0'B^H80_G0B
M)V@V^>?_ U!+ P04    " "EA%Q8VX*R-(,"  #M!@  &0   'AL+W=O<FMS
M:&5E=',O<VAE970W,"YX;6RM55U/VS 4_2M6AB:0-O+5IH6ED4:K:3Q,0A3&
MLTEN&PO'SFRW@7^_:R=$I0T=#WM)?)U[CL^YL:_31JHG70(8\EQQH6=>:4Q]
MZ?LZ+Z&B^ES6(/#+2JJ*&@S5VM>U EHX4,7]* @2OZ),>%GJYFY4ELJ-X4S
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
MMP1'A.<!ZO\U8_)XD%^@WLU<_ M02P,$%     @ I81<6&5]Q'V7 @  ]@8
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
MFD8U0VEV/ \N-_OH*34WUSELI!:BFD U66F'Y\$&+</&ELF:IQ):)ID<GT=
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
MS]J,6B8<^..CZ>(V<-@[?EXA^C(TJAE*L[?]NN+1=]\!Y-N[C.X%=$X#6N%
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
M'1"3#7Y-Q2,]_$8J0F.%MZ8I+_Z#0QD[F3I@_<H%S:ID.8,LR<M/_%X)<9:
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
M ?+W%:7B<%)<H-G57?X+4$L#!!0    ( *6$7%AWOI$HKPH  %53   9
M>&PO=V]R:W-H965T<R]S:&5E=#<X+GAM;+6<;W.;N!;&OPKCN[/3SC08"4E
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
MOS]D6?GV2W6 _9LTK_\/4$L#!!0    ( *6$7%@'+QW\900  /,6   9
M>&PO=V]R:W-H965T<R]S:&5E=#<Y+GAM;*V8;V^K-A3&OXK%KJ96NBO_DM!T
M2:3;L+M56J7J9G=[,>V% R>)5;"9;9I6VH>?#82$AOB*S7W18/#SF//#<'P\
MVS/^+'8 $KWF&15S9R=E<>>Z(ME!CL4-*X"J*QO&<RQ5DV]=47# :27*,S?P
MO(F;8T*=Q:PZ]\07,U;*C%!XXDB4>8[YVSUD;#]W?.=PX@O9[J0^X2YF!=["
M"N37XHFKEMNZI"0'*@BCB,-F[GSR[V(_TH*JQ^\$]N+D&.E0UHP]Z\9#.G<\
M?4>002*U!58_+["$+--.ZC[^;DR==DPM/#T^N'^N@E?!K+& )<O^(*G<S9U;
M!Z6PP64FO[#]+] $--9^"<M$]1_MZ[[1U$%)*23+&[&Z@YS0^A>_-B!.!,JG
M7Q T@N"]8')!$#:"\+U@=$$P:@2CBDP=2L4AQA(O9ISM$=>]E9L^J&!6:A4^
MH?JYKR175XG2R<42%T3B#*TD2Y[150P2DTQ<HQ_0UU6,KCY<HP^(4/3;CI4"
MTU3,7*E&U5HW:4:XKT<(+HS@HT=&Y4Z@GV@*:8]^^0U]8#!P5;AMS,$AYOO
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
M:L@UMX7Z< &N >K_+6/R>:$WZ#^%UO\#4$L#!!0    ( *6$7%B1;E<$8 0
M  ,1   9    >&PO=V]R:W-H965T<R]S:&5E=#@T+GAM;*U8;6_;-A#^*X16
M%"U01R+UZM0VT-HK%J#;@B3M/C,R;1.A1)6D[62_?J2D2+9$*1D0?[!%Z;GC
M<R?>/:1G1RX>Y(X0!1XSELNYLU.JN'1=F>Y(AN4%+TBNGVRXR+#20[%U92$(
M7I=&&7.1YT5NAFGN+&;EO6NQF/&]8C0GUP+(?99A\?25,'Z<.]!YOG%#MSME
M;KB+68&WY):H'\6UT".W\;*F&<DEY3D09#-WOL#+)2H-2L1/2H[RY!J84.XY
M?S"#J_7<\0PCPDBJC NL?PYD21@SGC2/7[53IYG3&)Y>/WO_5@:O@[G'DBPY
M^X>NU6[N) Y8DPW>,W7#CW^0.J#0^$LYD^4W.-98SP'I7BJ>U<::04;SZA<_
MUHDX,8#!@ &J#=!K#?S:P"\#K9B58:VPPHN9X$<@#%I[,Q=E;DIK'0W-S6N\
M54(_I=I.+:[RE&<$W.%'(L$$+'E6\)SD2@*^ 2NR(4*0M7D,ODA)]&V<K\%W
MBN\IHXIJFP\KHC!E\J.V_G&[ A_>?03O ,W!W8[OI4;+F:LT43.=F]:DOE:D
MT "I%4DO@ \_ >0AWV*^?+TY.C=W=7J:'*$F1ZCTYP_ZJ].@=!IPF89+6U"5
ME\#NQ=3CI2QP2N:.+CA)Q($XB_>_P<C[; OQC9R=!>PW ?MCWA=_Z?:A&X7
MBN9;P+@.V?H6*R]QZ<7TB\,B1F$2S=S#:21]5#2=PK!!G5$,&HK!*,6E?A]4
M65E5AM')?# *(.JPLJ""Q(OLK,*&53C*JEDI@AQ(OK=G+>S/''=S9L% 4PHV
M<E%#+AHE=ZMX^C Q/6\-=-%K(9#8M%(;QZ@W?Q $88>D!32-8CO)N"$9CY*\
MJ19SU6=PFHH]9M8LQKW)41P''8864) ,,$P:ALDHPVMA2D,]E0Q__[6GA58U
M9:.8]/,3QAV&?8QGIS=MZ$U'Z5WE"N=;>L](W:ILS*:]64._6R!]3!(-E ?T
M6K7QQLL6%U1A-M)3:@=G64/=]VH#P8'R@"=2",?7WGN<%9]7H"9)_QTLC]K1
MV<**$@2[-/LP&(4>&B#:ZA$<[?Z+[T07,6"U"C]9&:+>U'[D)5V"?=3TM(&?
M\VOE X[KQ]]J1\3(\JO-S](7!MT%:$%!-" ;L-4-."X<=]RLO_4K)1U:9,+W
MXKA;QC8<\N+I0#'#5E#@N*+\Q&R/JPTOTUMNG*?$RK,O&!.(XL3O]FPK4'^2
MH>IIU05&K]\EL7:':,_KJ%3]W[W26WD[C[R5+/B"9IFCPH1O)GLYUG1A7XTF
M2)=;]PU98$ETT@+/6;:R!=]*M^"8*-4D^Y!)[ \UCE:[X+AXG1TX3DX9GT#9
M4JQD^SK5(]N'3% TL.!1JV5H7,LLG>2E98_ZNF5; C;8-!K:_Z%6X-"XP)E]
M_1!?*UW8V[I/8'>K^@*HHNJ>G%#-WP-_8K&EN02,;+25=Q'KMB2J$W<U4+PH
M#ZWW7.DC<'FY(WA-A 'HYQO.U?/ G(.;_ST6_P%02P,$%     @ I81<6#3P
M1D.+ P  [ P  !D   !X;"]W;W)K<VAE971S+W-H965T.#4N>&ULK5=M;]LV
M$/XKA%84#=!%;XZ<9+:!)MJP .L0-$W[8=@'6CI91"G2)2G;W:_OD7)4V5(<
M%_,7FZ3N>7C/'74\3=92?=$E@"&;B@L]]4ICEM>^K[,2*JK/Y1($/BFDJJC!
MJ5KX>JF Y@Y4<3\*@L2O*!/>;.+6[M5L(FO#F8![171=551]NP$NUU,O])X6
M/K!%:>R"/YLLZ0(>P#PN[Q7._)8E9Q4(S:0@"HJI]RZ\3L/  IS%)P9KW1D3
M*V4NY1<[N<NG7F ] @Z9L104_U9P"YQ;)O3CZY;4:_>TP.[XB?T/)Q[%S*F&
M6\D_L]R44^_2(SD4M.;F@US_"5M!%Y8ODUR[7[)N;)/8(UFMC:RV8/2@8J+Y
MIYMM(#J ,'D&$&T!T3Y@] P@W@+B8P&C+6#D(M-(<7%(J:&SB9)KHJPULMF!
M"Z9#HWPF;-X?C,*G#'%F=B<R60'Y2#>@R:_D;ZH4M9D@;U(PE'%]AJN/#REY
M\^J,O"),D(^EK#45N9[X!AVP-'ZVW>RFV2QZ9K,P(N^E,*4FOXL<\ET"'SUO
MW8^>W+^)#C*FD)V3.'Q+HB"*!QRZ/1X>#<#3X^'A 35QFXS8\<7')..?O_ I
MN3-0Z7^'0MU0C8:I;+FXUDN:P=3#>J!!K<";O?XE3(+?AL)T2K+T1&0[(1RU
M(1P=8K<AQ/*G\?SFT(S.[*'%2@!*04X,W1"J-1;4%>4U;6H/Q^I'109#86ZV
M&[OM;!%=S<)D' 03?]6-7]_J:K1OE X8)1VC';T7K=Z+%_0:P"@:@F\DP<N
M<L/P\"C(Y$*P_\"*9\VQLM)A@S9Z4&BS3]+Q;A3MJ7S9).V;).&PPJ15F/PO
MA3G!%)H2L/QSFT3BBN&0PJ3O6R^1?9N+7AX/V^R('+<BQP=%/HJ.'INH.0@H
MF-&HC!J\.VN>$U;A:V,(% 6XV](98KD>3.>XYV3<$WN$33KN'=KX.;&7K=C+
M%S*:,SKD\T'8SY:T4Y*E)R+;"==5&ZZKT]T*5Z<,X2G)TA.1[80P#'ZT.<'!
M,Y=V+P#.Z)QQ9KZ10LF*U'@>M5%L7ALTP%X:FT5!@"K!Q&*XS0D&;H6]E^L(
MF_2PTS\;%+_3!E:@%JZ=UB23M3!-2]6NMBW[.]>H[JW?V%;>M9<_:)KO@/=4
M+9C0A$.!E,'Y&.N]:EKK9F+DTC6;<VFP=77#$C]'0%D#?%Y(:9XF=H/V V?V
M'5!+ P04    " "EA%Q8HNTY/,L"  "4"   &0   'AL+W=O<FMS:&5E=',O
M<VAE970X-BYX;6R]5EU/VS 4_2M7&9I 8N2C7REK(PTJ-"0&B,+V,.W!36X;
MC\3.;/>#?S_;":% F@?$]I+8CL^YY_C:OAFMN;B7*:*"39XQ.792I8ICUY5Q
MBCF11[Q IK_,N<B)TEVQ<&4AD"06E&=NX'E]-R>4.='(CEV+:,27*J,,KP7(
M99X3\7""&5^/'=]Y'+BABU29 3<:%62!4U1WQ;70/;=F26B.3%+.0.!\['SQ
MCT]\SP#LC.\4UW*K#<;*C/-[TSE/QHYG%&&&L3(41+]6>(I99IBTCC\5J5/'
M-,#M]B/[F36OS<R(Q%.>_:")2L=.Z$""<[+,U U??\7*4,_PQ3R3]@GK:J[G
M0+R4BN<56"O(*2O?9%,MQ!8@"'8 @@H06-UE(*MR0A2)1H*O09C9FLTTK%6+
MUN(H,UF9*J&_4HU3T3F+>8YP2S8HX1-<7EW *1'B0>=[340B@; $SC!!03*X
M08E$Q*D=G.!*Y[30&5(&#J<"$ZHD[$]0$9K) ]@#RN VY4NIY\N1J[1>$]6-
M*VTGI;9@A[8)QD?0\0\A\((.W$TGL+]W\)S&U79KST'M.;"\W1V\E9TF0:U
M<T*.94%B'#OZ"$@4*W2BCQ_\OO>Y15:GEM6Q[)T=LJX*K4I1MH ++LN%?UK7
M%UGY>:'!<*XPE[^:?'3^@8]N[:/;NKR7^B[AM9=,>T%Y""3G2Z::M)9L \MF
M+I%5Y(?!T ]'[JI!1:]6T7N#"L:5OH!FO_6= (H#;@IJ9G#6)K ,U-\6Z(>]
M_K!98+\6V&\5:'(;EV>F+7C_=?!!Z/>:8P_JV(/6V%-%%#9%:X6]<=^$M:CP
MO^W_\!_X&-8^AN^Z_X>O,]P==$._.<6^]W2S>^^QP2J69^=O& 2=%^'=K1IC
MZO4W(A:42<APKG'>T4"?$E&6P+*C>&'+SHPK7<1L,]6_#2C,!/U]SKEZ[)A*
M5O^(1'\!4$L#!!0    ( *6$7%CE'WB_50,  &H*   9    >&PO=V]R:W-H
M965T<R]S:&5E=#@W+GAM;*U676_3,!3]*U9 ""18OMJT&FVD=0'! ]+4,7A
M/'C);6OAV,%VUL&OY]K)0I>FI2!>6G^<<WR/K^W<V5:J;WH#8,A]R86>>QMC
MJG/?U_D&2JK/9 4"9U92E=1@5ZU]72F@A2.5W(^"(/%+RH27SMS8E4IGLC:<
M";A21-=E2=6/!7"YG7NA]S"P9.N-L0-^.JOH&J[!W%17"GM^IU*P$H1F4A %
MJ[EW$9YG4XMW@$\,MGJG3:R36RF_V<[[8NX%-B#@D!NK0/'O#BZ!<RN$87QO
M-;UN24O<;3^HOW7>T<LMU7 I^6=6F,W<FWJD@!6MN5G*[3MH_8RM7BZY=K]D
MVV(#C^2U-K)LR1A!R43S3^_;?=@AA,D!0M02HCYA=( 0MX3X5,*H)8S<SC16
MW#YDU-!TIN26*(M&-=MPF^G8:)\)F_9KHW"6(<^D[T4N2R ?Z3UH\HHL(9<B
M9YQ1EQ6Y(C="X=A:L)]06!A9@( 5,YH\S\!0QO4+Y-U<9^3YTQ?D*6&"?-S(
M6E-1Z)EO,$2[D)^WX2R:<*(#X801^2"%V6CR1A10/!;PT5MG,'HPN(B.*F:0
MGY$X?$FB((H' KH\G1X-T+/3Z>$1-W&7KMCIQ0?T_B(_+\F;^YS7!1-K<E'*
M6F#*KD!ARH0=,A+G*9ZHEK8$4RNAR9>EY)S@G=I257P=RF 3X6@X0OM,G>N*
MYC#W\!W2H.[ 2Y\]"9/@]=#N_T^Q[#^)/<K,J,O,Z)AZNJ"<BAP(->06UDRX
M3<;\_ "JAG:Q49LX-?LVWZ7A=#S!,W*WNST#J'&4]%#9 "I*IG&'>F1HW!D:
M'S5T413,'C+MWM6"X'$S>$XJJ=MA!9P:G,"3E-=*@3 'S38K)3L!1F$RZGG=
M!\7C<=RS.J 4!<FPTZ1SFISH%*WL>K3YJQ23RAD;?,Z2O7B"GJT_(K)]1#R)
MABU-.DN3HY:64-3YOWJ:[,7S:ASW3^8 *!KUL[4/"H9]33M?TU-O&8CBV/V:
M[MT)?(*#_IG;1PW<PFP ]>@6-E;\G:]P"6KMJAE-<OOT-M^K;K0KF"Y<G= ;
M7V AU=0]OV6:*NP#5?BT:,)AA9+!V02O@VHJFZ9C9.6^];?28.7@FALL!D%9
M ,ZOI#0/';M 5UZFOP!02P,$%     @ I81<6'%&7YVG"0  3F<  !D   !X
M;"]W;W)K<VAE971S+W-H965T.#@N>&ULM9UM;]LX%H7_"N$=+%J@C?5F.^DD
M!AI+Y'21F0G2F=D/B\5"D>E8J"1Z*#EI@?GQ2\FJ:48R'0U.OB1^(9]+^1Z3
MU#$I73X)^:5<<UZ1KWE6E%>C=55M/HS'9;+F>5R>B0TOU#LK(?.X4D_EP[C<
M2!XOFTIY-O8<9SK.X[08S2^;UV[E_%)LJRPM^*TDY3;/8_GMFF?BZ6KDCKZ_
M<)<^K*OZA?'\<A,_\,^\^GUS*]6S\9ZR3'->E*DHB.2KJ]%']P,+SNL*38D_
M4OY4'CPF]:'<"_&E?O)I>35RZA;QC"=5C8C5OT>^X%E6DU0[_FRAHWW,NN+A
MX^]TVAR\.IC[N.0+D?T[75;KJ]'YB"SY*MYFU9UX^HFW!S2I>8G(RN8O>=J5
MG<Y&)-F6E<C;RJH%>5KL_L=?VP_BH(+G':G@M16\EU;PVPK^LPJ!>Z1"T%8(
M7AIATE:8O+3"M*TP?5YA<J3"K*TP:Y*U^W2;U(1Q%<\OI7@BLBZM:/6#)K]-
M;961M*BE^+F2ZMU4U:OF"Y'G::6T594D+I9D(8HJ+1YXD:2\)._)+[&4<:T6
M\B;D59QFY5OR TD+\MM:;$M5H[P<5ZH=-6V<M#'#74SO2$S7(S^K,.N21,62
M+TW 6!W _BB\[T=Q[5F)OR;5&7'<=\1S/)_\_CDD;WYXV].PA1WSKVUQ1GRG
MQK@S"R:T8T*>*,RSUI!5]<]_N+/S']47N.!/<?8_L:F_C#WXZ.5XS])*^G*,
M:\&P$Y]97!Q@]@?9=W!&:OV]0/V&[Q_AWXCBX7W%94YNMS)9JUZ':,V2_]RH
MXN13Q?/ROSUMO]ZQ@WYVW<U_*#=QPJ]&JA\ON7SDH[DZ@*GS8Y]XD+ 0"8N0
M,(J$,1#,D$ZPETY@H\\_JK&9B)7ZPL49X6455YQLI!K%9?6-O%%]6/GG-I:<
MK%3G^9;\M1=OGY"LD88*"0D+=[!I ZLG'H_SV<QWG,OQXZ%"D"$I$L9 ,$,A
MD[U")E:%W/"Z/Q'W6?H0U_U5WV!V;44,33T2%NY@LX/4JY)>\"SUW5*!/_7/
MS5(4V3 &@ADYG>YS.K7F]%?U_8[K.0S)ZNR^(T\RK?A[L5J1Y9:32NQ>)[E8
MIJLTB8\,PM?6*$/3CH2%T\XWWKV8>MZSM"-#4B2,@6"&.F9[=<SL8T)9JO.[
M--_$J6QF$&I*(1]X[Q??2AJJ "0LG'45,.ET^<B(% EC()@A@/.] ,Z'=0\'
M6LA$V2L$*W&H$)"P\+PC!._B8O9,",B(% EC()@AA(N]$"Y>T!-(7J62-]G7
MTX!VS%!#1I\:K-BA:D#"PHNN&CJ] C(@1<(8"&:(P76T#^+\73GTB<!.&ZH"
M*"UL:8<ZZ)X0]!3J#"$4VBZ&HID9/G"Z7&N&/Q5+GA?[.1^)'R1O4MV;7RMK
M<'Z1M!!*BZ T"J4Q%,U4C*<5X[VB]]3"41)"TD(H+8+2*)3&4#130MJ]=*T.
MU_QCDLAMG)5D)23A7S>\*'FIAIDLKOBR/AE-G_5*:5EN^T]'[)$&ZPGJ9K:T
MP]&D,^"<+$+;(K/C11BJV68ZM:/HVBW%W^K.X$;$_7,"J$D(I8506@2E42B-
MH6BF0K2CZ$Y><\R FHU06@BE15 :A=(8BF9*2!N8KMW!7&REK,5R+Z2J6UL5
M2:S"I=6W7LE C<J69GC*CO/\Q""$!HV@- JE,13-U(*V*UV[7WG''T7V6&M@
M(?DRK0A50LB.20'J6$)I(90606D42F,HFJD8[6^ZYZ\Y $&]3B@MA-(B*(U"
M:0Q%,R6DG5'7;HT.'("@AFA+.QR )CWC#S)F!*51*(VA:.:Z*FV+>B=LT201
MVWIQF.0)3Q_C^XP?R*)>!$@V7"9*+?$#[U.'G3]4'2VM=A+U*>+9L]^R0VC,
M"$JC4!I#T4QU:$O5LUNJ(<_K18-+OA%E6O6Z%G;"X/Q#C50H+8+2*)3&4#13
M)]I(]5[32/6@1BJ4%D)I$91&H32&HID2TD:J9S=2[WA9R32I7=,D+M?-8N6T
M>%2O-HN7WY%"%,ENWM*K(:AY"J6%7M?V=-W.#W8O*D6A+6,HFIES[;9Z=K?5
M<YSWGN>06UZ(^S(1_9F%NJY06@BE15 :A=(8BF8J1;NNWFNZKA[4=8720B@M
M@M(HE,90-%-"VG7U[*XK<K6X/=1@04%7CWK=Y:/>>7>=$#0HA=(8BF8J17NR
MGMV3_66;WW-9:V6WRZ6L?\?E7RNNIB2[M<5-3_37Z9T^U_9(@X4"=6R]GE6F
MST4"M6&A-(:BF2+1-JQG7V=ZM\M](X7>S$.-5B@M/'%H$_*-Q[+O;#^"MH-"
M:0Q%,P6A357/;JH&SFXB>W0>"[51H;002HN@- JE,13-W.NH[5;?><5YK _U
M6J&T$$J+H#0*I3$4S920]F1]NR>+G,?:0PT6%-2\;6G&*N?916<>"PU*H32&
MHIE*T:ZL;[7LYA/')8LU+^,-C[_T_GAC!PS./]1YA=(B*(U":0Q%,V5RL '_
M57?@8[?@8_?@8S?A8W?A8[?AOX:1ZVLCU[<;N= Q">KW0FEA2S-.F=VNMP(-
M2J$TAJ*92M%&KF_?D0_T5NR1!@L%ZNJV-)NW @U(H32&HIDBT5:M;[=J3WDK
M]NJ#,P^U7T\<FL5;@;:#0FD,13,%H1U9W^[(?HX+LHAE)GJ7H-@K#Y8#U&2%
MTB(HC4)I#$4S):+]6/\UE\7Z4+<62@NAM A*HU :0]%,"6D'US]QQ0#D+!;J
M]D)I(90606D42F-^]XH)_G1RX>^G8N9UQ[2-&]A7S;YX%GM\]FJ/,%0@4%H(
MI450&H726-"]2H)[1!S:H WL!NW-7@"]>8=:KE!:"*5%4!J%TMB)%+I.WS3=
MU(.V80.[#;O3@SQQ3F.'#-8%U(J%TB(HC4)I[$0J>\_>3%EHVS6P+WA]T;4)
M@^ZB4+^S*'1ACS0XVU#7%$JC4!I#T4P%'%R^U.Z:?N;)5J9J;MGNK^@50-=Q
M[%S&9V&/,SC_2%H$I5$HC:%H9OZU%QK8O5#4E2R#GNN$7DR[*H$ZG%!:!*51
M*(VA:*9*M!D:G%BW.N"*EG;4X$D$U!@-NE<>F,VZUS&&FJ!0&D/13"%H$S2P
MFZ"?M 34B6?3-:Q%MNS5 =01A=+"H+OL-.C1 =3IA-(8BF;J0#N= ?X*IW;D
M8$% _<V69LQQ.SO"(VA,"J4Q%&TGB/'!W3YRKKKZ^D8N)6GV:>]N_+%_=7^S
MF(_-+5+&NOCN3C,_JY$B+4HEE)6JZIS-U% F=S=OV3VIQ*:Y=\B]J"J1-P_7
M/%YR61=0[Z^$J+X_J0/L;Z$S_S]02P,$%     @ I81<6%"U]H!+!   3Q,
M !D   !X;"]W;W)K<VAE971S+W-H965T.#DN>&ULM9AM;]LV$,>_"J$50PO$
MT:-E*[,-)-&*!6C1(%G:%\->T-+9)BJ)'DG'S3[]2$J1)4MAXU5]8TLR[\^[
MWU'',V=[RK[R#8! W_*LX'-K(\3VPK9YLH$<\W.ZA4+^LJ(LQT+>LK7-MPQP
MJHWRS/8<)[1S3 IK,=//;MEB1G<B(P7<,L1W>8[9TQ5D=#^W7.OYP1U9;X1Z
M8"]F6[R&>Q /VULF[^Q:)24Y%)S0 C%8S:U+]R)VQ\I C_A,8,\;UTB%LJ3T
MJ[JY2>>6HSR"#!*A)+#\>H1KR#*E)/WXIQ*UZCF58?/Z6?V]#EX&L\0<KFGV
MA:1B,[>F%DIAA7>9N*/[/Z *2#N8T(SK3[2OQCH62G9<T+PREA[DI"B_\;<*
M1,/ #5\P\"H#[]@@>,' KPS\UQH$E4&@R92A: XQ%G@Q8W2/F!HMU=2%AJFM
M9?BD4'F_%TS^2J2=6%S3/"=")E(@7*3HFA:"%&LH$@(<C="]7&?I+@-$5TBO
MB1%=C78<T"7G(+BV^0"2._JTS,@:JUQR]#8&@4G&WTF%A_L8O7WS#KU!I$!_
M;NB.2QL^LX5T7KE@)Y6C5Z6CW@N.NA[Z*)W;</1[D4+:%K!EU'7HWG/H5YY1
M,8;D'/GN&?(<S^]QZ/KUYEZ/>?QZ<]<0C5\GTM=Z_@MZG[; L,I=F8^S0[H>
MGM.%_KJC68;D^[+'+/V[+P?E'$'_'*H&7? M3F!NR2+#@3V"M?CU%S=T?NOC
M-Z18/)!8BVU0LPU,ZHLK6).B4&R7.,-%(NFRYLN RY=AA&B9!%G/,I4$?H8*
M$'V<R_DF>CY5FA\7?N2%<A4^-@$:O3H5X$!B+8#C&N#8"/ RITR0?TLTLI3T
MT.NC5(J&#4JC('#&1Y3&'9:C8!I$[5%QSRAOZ@?UJ%9<81U7:(XK38DN>7W>
MAQWOI]'TR'>C_*D9'DBL16)2DY@82=Q!+E?\CH'>2M(=($'+EP#E-"4KDNCD
M]W&:=+/L1J&JJ2U4QOE/13606 O5M$8U-:*ZR;>8,,6IC\:T2\.+HLD1#.,,
MI\(82*P%(ZIA1$88<C,?LJY&'7JN[_K']+JC>JIO;'3\?V)QG4-?YIRVGW\@
M>$DR(IY>L8U7V@/MXX.JQ4.IM;DV^EWWU+V\+%.TT<#6*TX.^\Z*JZ9K+J;
M#_WC0F_VZF2& ZFU&7H'AIZ18=GQ;_&3*F+]O;S7+6/1M%/&^H:%8R<\>A.K
M8>TMWFVHM>,XM,RNL6M<W!0")!_YUR=)&+RT/U4BK:(2=;H0\U0G)_AGM+ON
MH=]US0WO#^SFE?)WMW.S!R?S^AG=K7MH;UUS?WN\B_U81>FVJM)1+S@&V!W6
M4WABL^>GDK$;)PTYL+4^L>$HH;M"E/^\ZZ?UJ="E/@LY>GZE3HOT"<9!ICQJ
M^HB9K-!<4EI)2>=\(@-@Y>E->2/H5I]G+*D0-->7&\ I,#5 _KZB5#S?J GJ
M,[3%?U!+ P04    " "EA%Q8@ZAK%P,#  "R"0  &0   'AL+W=O<FMS:&5E
M=',O<VAE970Y,"YX;6RM5EUOVC 4_2M65DVMU#:?)+2#2"U9M4FK5I6V>YCV
M8)(+L9K8S#;0_?O92<B A("FOD!LGW/N/?<ZL0<KQE]%"B#16YY1,312*>?7
MIBGB%'(L+MD<J%J9,IYCJ89\9HHY!YP4I#PS'<ORS1P3:H2#8NZ!AP.VD!FA
M\,"16.0YYG]N(6.KH6$;ZXE',DNEGC##P1S/8 SR>?[ U<BL51*2 Q6$4<1A
M.C1N[.NHK_$%X(7 2FP\(^UDPMBK'GQ-AH:E$X(,8JD5L/I;P@BR3 NI-'Y7
MFD8=4A,WG]?J=X5WY66"!8Q8]H,D,AT:?0,E,,6+3#ZRU1>H_/2T7LPR4?RB
M58D-K@P4+X1D>456&>2$EO_XK:K#!L'V]Q"<BN#L$KP]!+<BN,<2O(K@%94I
MK11UB+#$X8"S%>(:K=3T0U',@JWL$ZK;/I9<K1+%D^&(Y3F1JH]2($P3-&)4
M$CH#&A,0Z )] U54-2O4^FD$$I-,G*GYYW&$3D_.T DB%#VE;"$46PQ,J7+2
MRF9<Q;\MXSM[XML.NE<A4X$^TP22;0%3F:D=.6M'MTZG8@3Q)7+M<^18CMN2
MT.AXNM-"CXZGVQUNW+H_;J'G_E=_(B+BC(D%!_3S9B(D5Z_1K[8FE$&\]B#Z
MTW(MYCB&H:&^'0+X$HSPXP?;MSZU%? ]Q:)W$MLJKE<7U^M2#^\(Q30&E!6;
M/-:;O*UXI4A0B.C/Z#*T!N9RLR)-A-W?AD0M$,NO,5OI]^KT>YWI?Y\#QWHW
M;!AHR[]4\3="^ZZ]:Z$)"ER]@[=,-$&>>[7'A5^[\#M=C%/&Y84$GA_J@]^(
MOFNBB?!V(%$3$ECM!H+:0-!IX(E)G!UH07!,"YJ@P VN=O)O@KQ>X+0[Z-<.
M^IT.7C G>))5+\+Y7A?]@R_"0434A2B3-S=.LQSXK+@5")74@LKR&*AGZXO'
M37'>[LS?J@M)>7_X)U/>9NXQGQ$JE-^IDK0N [6Q>7E#* >2S8LS<\*D.H&+
MQU1=JH!K@%J?,B;7 QV@OJ:%?P%02P,$%     @ I81<6$7U,CIR P  L@P
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
M"VUZ57>X-G\G0-H)YOI2"/T\L UK_0<E_0=02P,$%     @ I81<6&=-O/U
M @  +04  !D   !X;"]W;W)K<VAE971S+W-H965T.3,N>&ULC51M3]LP$/XK
M5H8FD#:2IF]3ET8:K="0F(8H;!^F?3#I-;'P2V9?&_CW.SLAZD9A^Q+[['M>
MSLXY:XR]=Q4 L@<EM9M'%6(]BV-75*"X.S4U:-K9&*LX4FC+V-46^#J E(S3
M))G$B@L=Y5E8N[)Y9K8HA88KR]Q6*6X?ST":9AX-HJ>%:U%6Z!?B/*MY"2O
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
M:Y+JQ]\EU*K:U(7GRR?ZQWSP:C"O7L;6//XC"F2XL*86"MC&V\?RF1]_9N6
MQIKG\SC+_Z-CN:]C(7^?29Z4Q:H'2906G][G4HBS CRY4$#* M(L&%TH<,L"
MMV_!J"P8Y<H40\EUH)[TEG/!CTCHO15-+^1BYM5J^%&JC_N+%.K;2-7)Y0O;
MJJ,H;]!/C&^%MPLCWXN1EP;H5QDR@9[9@:5[AA[3XAS3Q^H'M.:IKZI$L?X<
M96_H.\JD%\79]_KKO-^J^LO]YK94O=9MVW[9PU710W*AAYB@3SR5888^I $+
M3("MAEN-F9S&O"*=1,K\6^3B&T0<XK9T:-V_G+24T_[EN&,T;G4$W9PWNL"K
MQ'Y _YX.UPUZ$CS8^S(_DB],'"*?H15+_5"YN_4@=#:BKS[WV<[SV<)2EY=,
M 9FU_/8;/'%^;!,0$D:!8(:XHTK<44YW+XG[Y8G^YR]J'_0H69+]U2;D"%)(
M2!@%@AE"CBLAQ]UGJ2&D4$+>H!T3>INZO;3I6/"PDP/U[>NP=&ZUX0[G K7N
M-9XXYW_8K*&M-:Y;[64,<%(-<-+?A@^^S_>IS)0??18=O->X=8B=Q*&G"B2,
M L$,)>\J)>^@/7<'*20DC +!#"&GE9!38,]U\H;J.&VUIMLP(U"3AD"S2J!9
M/\^NONK6V=G(4-4@810(9HB+G?K1TH$V<DD$TA*41J%HIIIG#^H8V,TEL.%
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
M<VAE970Y.2YX;6RM5EUOVC 4_2M65DVMU#:?!-1!)"";-FF5$%W7AVD/)KF
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
MX %#HJAZ#^Z\C\+U>RIL_\,W^@U02P,$%     @ I81<6)>*NQS     $P(
M  L   !?<F5L<R\N<F5L<YV2N6[#, Q ?\70GC 'T"&(,V7Q%@3Y 5:B#]@2
M!8I%G;^OVJ5QD L9>3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:<Z10J[4
M+!XUA]) 1-MC0[!:+#Y +AEFM[UD%J=SI%>(7->=I3W;+T]!;X"O.DQQ0FE(
M2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'<?VD-/I
MKV,BM'I;Z/EQ:%0*CMQC)8QQ8K3^-8+)#^Q^ %!+ P04    " "EA%Q8/36B
M1/0&   C0P  #P   'AL+W=O<FMB;V]K+GAM;,6<74_;2!2&_\HH5U1:-K'C
MSZI4HM#M(E&(".IM-3B39(1C9V<<*/WU.W:@>P:<5WMSZJL0VW&>S-=SSLR8
M#X^UN;^KZWOQ8U-6]F2T;IKM^_'8%FNUD?;/>JLJ=V99FXULW%NS&MNM47)A
MUTHUFW(<3B;)>"-U-?KXX>5>,S.F;^I&%8VN*W>P/?!-JT?[W_GVK7C05M_I
M4C=/)Z/N[U*-Q$97>J-_JL7):#(2=ET__ET;_;.N&EG."U.7Y<DHV)_XIDRC
MBS>'YRWDK;RSW9%&WMU(!W(R2B;NADMM;--=T=U?.L8'Y2[>O]LU]5^Z;)0Y
MEXWZ8NK=5E>K]C;N5XS)S^C*X>5U7XCOS?\IQGJYU(4ZKXO=1E7-OAR-*EO
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
M(SO==QH^3I_[?KP5?:VK@.\4>[I\MK]]_W7Y=;&^-U>DV_N,\>DO4$L#!!0
M   ( *6$7%C1-?Q97P(  -<Y   3    6T-O;G1E;G1?5'EP97-=+GAM;,W;
MWVZ;,!3'\5>)N*T"V& #4].;=K=;+_8"#)P&A7^RW2Y]^SFDK;2IBU9ETKXW
M08GM\SOX2)^[7'][GHU;'89^=)MHY_W\*4E<LS-#[>)I-F-8V4YVJ'WX:A^2
MN6[V]8-)9)KJI)E&;T:_]L<:T<WUG=G6C[U??3Z$GUTWC9O(FMY%J]O3QF/6
M)JKGN>^:VH?UY&EL?TM9OR3$X>2RQ^VZV5V%#5'R;L)QY<\!+^>^/AEKN]:L
M[FOKO]1#V)4<^L3YY]ZX^'R)=WJ<MMNN,>W4/ [A2.QF:^K6[8SQ0Q^?BEZ=
M3_;AALWI4UR<OY0Y%QAVWMMI=F%BUGP\[G4DQ]/K.10RUG?G7_$M,92^^/W,
M<=JM:?\R.USOC\GNEWFX9'E<?L>_SOBM_@?[D) ^,D@?.:0/!>E#0_HH('V4
MD#XJ2!\BI31"$5502!444P4%54%155!8%117!05609%54F25%%DE159)D552
M9)44625%5DF155)DE119,XJL&476C")K1I$UH\B:463-*+)F%%DSBJP91=:<
M(FM.D36GR)I39,TILN8467.*K#E%UIPB:TZ155%D5119%45619%54615%%D5
M159%D5519%44635%5DV155-DU119-45639%54V35%%DU159-D;6@R%I09"TH
MLA8460N*K 5%UH(B:T&1M:#(6E!D+2FREA192XJL)476DB)K29&UI,A:4F0M
M*;*6%%DKBJP51=:*(FM%D;6BR%I19*THLE8462N*K!5%5I%2:!4IQ5:1_D]<
MOT_3_A_'+\]XJ+OQ-3]9_L]Y\Q-02P$"% ,4    " "EA%Q8!T%-8H$   "Q
M    $               @ $     9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0
M   ( *6$7%@MZ%8B[@   "L"   1              "  :\   !D;V-0<F]P
M<R]C;W)E+GAM;%!+ 0(4 Q0    ( *6$7%B97)PC$ 8  )PG   3
M      "  <P!  !X;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%     @ I81<
M6-:4^0R$"   5S(  !@              ("!#0@  'AL+W=O<FMS:&5E=',O
M<VAE970Q+GAM;%!+ 0(4 Q0    ( *6$7%A[-PZ$-@(  +0%   8
M      " @<<0  !X;"]W;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4
M" "EA%Q8*H($X$4'   9(   &               @($S$P  >&PO=V]R:W-H
M965T<R]S:&5E=#,N>&UL4$L! A0#%     @ I81<6#G$=;\T P  Q0L  !@
M             ("!KAH  'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4
M Q0    ( *6$7%CJ:WZ%$ 8  )L<   8              " @1@>  !X;"]W
M;W)K<VAE971S+W-H965T-2YX;6Q02P$"% ,4    " "EA%Q8I0.Z2;(#  !!
M$   &               @(%>)   >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL
M4$L! A0#%     @ I81<6#^_RV7""   D5T  !@              ("!1B@
M 'AL+W=O<FMS:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0    ( *6$7%B<%)4,
M3P(  .T$   8              " @3XQ  !X;"]W;W)K<VAE971S+W-H965T
M."YX;6Q02P$"% ,4    " "EA%Q8#<&L+:T)  #V+0  &
M@('#,P  >&PO=V]R:W-H965T<R]S:&5E=#DN>&UL4$L! A0#%     @ I81<
M6$((%)I; P  00P  !D              ("!ICT  'AL+W=O<FMS:&5E=',O
M<VAE970Q,"YX;6Q02P$"% ,4    " "EA%Q8>_03OF\%  #D#   &0
M        @($X00  >&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0
M   ( *6$7%B[$S'Z0"D  !B&   9              " @=Y&  !X;"]W;W)K
M<VAE971S+W-H965T,3(N>&UL4$L! A0#%     @ I81<6"6+TH%2"0  =AD
M !D              ("!57   'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q0
M2P$"% ,4    " "EA%Q8GYL[EAP$   N"@  &0              @('>>0
M>&PO=V]R:W-H965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    ( *6$7%@V8K0^
M%1P  'AC   9              " @3%^  !X;"]W;W)K<VAE971S+W-H965T
M,34N>&UL4$L! A0#%     @ I81<6*<:YEH^"P  !R(  !D
M ("!?9H  'AL+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    " "E
MA%Q8%BKY&Z0"   Z!@  &0              @('RI0  >&PO=V]R:W-H965T
M<R]S:&5E=#$W+GAM;%!+ 0(4 Q0    ( *6$7%A5S'&-$0D  ,<8   9
M          " @<VH  !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#
M%     @ I81<6*IXQ+-2%0  KDT  !D              ("!%;(  'AL+W=O
M<FMS:&5E=',O<VAE970Q.2YX;6Q02P$"% ,4    " "EA%Q8[L^IF>4%  !O
M#@  &0              @(&>QP  >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM
M;%!+ 0(4 Q0    ( *6$7%AKX2-,%0,  /\&   9              " @;K-
M  !X;"]W;W)K<VAE971S+W-H965T,C$N>&UL4$L! A0#%     @ I81<6&$6
M*>K2"P  5B   !D              ("!!M$  'AL+W=O<FMS:&5E=',O<VAE
M970R,BYX;6Q02P$"% ,4    " "EA%Q8SM/P\I81  ! ,@  &0
M    @($/W0  >&PO=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    (
M *6$7%B**Y9^K@4  % -   9              " @=SN  !X;"]W;W)K<VAE
M971S+W-H965T,C0N>&UL4$L! A0#%     @ I81<6"(K83,2!P  51(  !D
M             ("!P?0  'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"
M% ,4    " "EA%Q81 D(_C #  "U!P  &0              @($*_   >&PO
M=V]R:W-H965T<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    ( *6$7%@X2$4&PP,
M )@)   9              " @7'_  !X;"]W;W)K<VAE971S+W-H965T,C<N
M>&UL4$L! A0#%     @ I81<6+NRI8-J!   @PD  !D              ("!
M:P,! 'AL+W=O<FMS:&5E=',O<VAE970R."YX;6Q02P$"% ,4    " "EA%Q8
MOFW.H%P"  !_!@  &0              @($," $ >&PO=V]R:W-H965T<R]S
M:&5E=#(Y+GAM;%!+ 0(4 Q0    ( *6$7%AD.J)K0P(  (H&   9
M      " @9\* 0!X;"]W;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%
M  @ I81<6 ^J<UHP,@  ,ZP  !D              ("!&0T! 'AL+W=O<FMS
M:&5E=',O<VAE970S,2YX;6Q02P$"% ,4    " "EA%Q8BT7>DY,$  "C"@
M&0              @(& /P$ >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+
M 0(4 Q0    ( *6$7%@]OPED 04  %4,   9              " @4I$ 0!X
M;"]W;W)K<VAE971S+W-H965T,S,N>&UL4$L! A0#%     @ I81<6!(C:9[@
M @  / 8  !D              ("!@DD! 'AL+W=O<FMS:&5E=',O<VAE970S
M-"YX;6Q02P$"% ,4    " "EA%Q8HUK5^;@"   T!@  &0
M@(&93 $ >&PO=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    ( *6$
M7%A\(=HLO@(  & &   9              " @8A/ 0!X;"]W;W)K<VAE971S
M+W-H965T,S8N>&UL4$L! A0#%     @ I81<6._W?\$^!@  K!   !D
M         ("!?5(! 'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4
M    " "EA%Q8>C=#&;$(  #N'   &0              @('R6 $ >&PO=V]R
M:W-H965T<R]S:&5E=#,X+GAM;%!+ 0(4 Q0    ( *6$7%AR+<FG! <  /,3
M   9              " @=IA 0!X;"]W;W)K<VAE971S+W-H965T,SDN>&UL
M4$L! A0#%     @ I81<6)OW6AAD!@  :A$  !D              ("!%6D!
M 'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6Q02P$"% ,4    " "EA%Q8R,@1
M#^H$  "^#0  &0              @(&P;P$ >&PO=V]R:W-H965T<R]S:&5E
M=#0Q+GAM;%!+ 0(4 Q0    ( *6$7%B]7#*P7@,  %\(   9
M  " @=%T 0!X;"]W;W)K<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @
MI81<6"IWM]:# @  K 8  !D              ("!9G@! 'AL+W=O<FMS:&5E
M=',O<VAE970T,RYX;6Q02P$"% ,4    " "EA%Q8[4'0?.($  #I&@  &0
M            @($@>P$ >&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4
M Q0    ( *6$7%@!6L[]G0(  !()   9              " @3F  0!X;"]W
M;W)K<VAE971S+W-H965T-#4N>&UL4$L! A0#%     @ I81<6)U:^^<,!
M31<  !D              ("!#8,! 'AL+W=O<FMS:&5E=',O<VAE970T-BYX
M;6Q02P$"% ,4    " "EA%Q8W-53FY "   /!P  &0              @(%0
MAP$ >&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    ( *6$7%BQ
MX(QMT ,  (P5   9              " @1>* 0!X;"]W;W)K<VAE971S+W-H
M965T-#@N>&UL4$L! A0#%     @ I81<6!?P[+<P P  70D  !D
M     ("!'HX! 'AL+W=O<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4
M" "EA%Q8;@HSF$4#  "J#P  &0              @(&%D0$ >&PO=V]R:W-H
M965T<R]S:&5E=#4P+GAM;%!+ 0(4 Q0    ( *6$7%C$/D$B&0,  !<,   9
M              " @0&5 0!X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L!
M A0#%     @ I81<6*ZTNW\<!0  CRP  !D              ("!49@! 'AL
M+W=O<FMS:&5E=',O<VAE970U,BYX;6Q02P$"% ,4    " "EA%Q8 5A_D@H$
M  "8&0  &0              @(&DG0$ >&PO=V]R:W-H965T<R]S:&5E=#4S
M+GAM;%!+ 0(4 Q0    ( *6$7%C,4,U'RP4  !TS   9              "
M@>6A 0!X;"]W;W)K<VAE971S+W-H965T-30N>&UL4$L! A0#%     @ I81<
M6$#S8=SD P  .10  !D              ("!YZ<! 'AL+W=O<FMS:&5E=',O
M<VAE970U-2YX;6Q02P$"% ,4    " "EA%Q8YFP=-J,"  #]!@  &0
M        @($"K $ >&PO=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0
M   ( *6$7%B-EH=*% ,  ,,*   9              " @=RN 0!X;"]W;W)K
M<VAE971S+W-H965T-3<N>&UL4$L! A0#%     @ I81<6&6V,4.M P  ZA0
M !D              ("!)[(! 'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q0
M2P$"% ,4    " "EA%Q8>_F$JT<$  !?&@  &0              @($+M@$
M>&PO=V]R:W-H965T<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0    ( *6$7%AU)C%2
M^@4  #(U   9              " @8FZ 0!X;"]W;W)K<VAE971S+W-H965T
M-C N>&UL4$L! A0#%     @ I81<6&':L$_*!   7"8  !D
M ("!NL ! 'AL+W=O<FMS:&5E=',O<VAE970V,2YX;6Q02P$"% ,4    " "E
MA%Q8@6W*D1X$  "V%P  &0              @(&[Q0$ >&PO=V]R:W-H965T
M<R]S:&5E=#8R+GAM;%!+ 0(4 Q0    ( *6$7%@E,B3K>0<  +I*   9
M          " @1#* 0!X;"]W;W)K<VAE971S+W-H965T-C,N>&UL4$L! A0#
M%     @ I81<6!/"D^75!@  NS\  !D              ("!P-$! 'AL+W=O
M<FMS:&5E=',O<VAE970V-"YX;6Q02P$"% ,4    " "EA%Q8I\8B*F,3  #$
M2P$ &0              @(',V $ >&PO=V]R:W-H965T<R]S:&5E=#8U+GAM
M;%!+ 0(4 Q0    ( *6$7%B%3:3*R0,   X6   9              " @6;L
M 0!X;"]W;W)K<VAE971S+W-H965T-C8N>&UL4$L! A0#%     @ I81<6+<]
M"9^A P  =Q(  !D              ("!9O ! 'AL+W=O<FMS:&5E=',O<VAE
M970V-RYX;6Q02P$"% ,4    " "EA%Q8>4-TL<("  !J"@  &0
M    @($^] $ >&PO=V]R:W-H965T<R]S:&5E=#8X+GAM;%!+ 0(4 Q0    (
M *6$7%@.#,38;@0  / 7   9              " @3?W 0!X;"]W;W)K<VAE
M971S+W-H965T-CDN>&UL4$L! A0#%     @ I81<6-N"LC2# @  [08  !D
M             ("!W/L! 'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q02P$"
M% ,4    " "EA%Q8=B +4-@$  #9'   &0              @(&6_@$ >&PO
M=V]R:W-H965T<R]S:&5E=#<Q+GAM;%!+ 0(4 Q0    ( *6$7%AE?<1]EP(
M /8&   9              " @:4# @!X;"]W;W)K<VAE971S+W-H965T-S(N
M>&UL4$L! A0#%     @ I81<6-AU#S&H @  (0<  !D              ("!
M<P8" 'AL+W=O<FMS:&5E=',O<VAE970W,RYX;6Q02P$"% ,4    " "EA%Q8
MK8P-.4X9  "CJ $ &0              @(%2"0( >&PO=V]R:W-H965T<R]S
M:&5E=#<T+GAM;%!+ 0(4 Q0    ( *6$7%BG#XG'\00  .$A   9
M      " @=<B @!X;"]W;W)K<VAE971S+W-H965T-S4N>&UL4$L! A0#%
M  @ I81<6(] %.C@!   \1X  !D              ("!_R<" 'AL+W=O<FMS
M:&5E=',O<VAE970W-BYX;6Q02P$"% ,4    " "EA%Q844-CPIP%  #A'0
M&0              @($6+0( >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM;%!+
M 0(4 Q0    ( *6$7%AWOI$HKPH  %53   9              " @>DR @!X
M;"]W;W)K<VAE971S+W-H965T-S@N>&UL4$L! A0#%     @ I81<6 <O'?QE
M!   \Q8  !D              ("!SST" 'AL+W=O<FMS:&5E=',O<VAE970W
M.2YX;6Q02P$"% ,4    " "EA%Q8O-C;SG$"  "%!@  &0
M@(%K0@( >&PO=V]R:W-H965T<R]S:&5E=#@P+GAM;%!+ 0(4 Q0    ( *6$
M7%@37+OAU (  #P(   9              " @1-% @!X;"]W;W)K<VAE971S
M+W-H965T.#$N>&UL4$L! A0#%     @ I81<6+L[%E8I P  ?PL  !D
M         ("!'D@" 'AL+W=O<FMS:&5E=',O<VAE970X,BYX;6Q02P$"% ,4
M    " "EA%Q8?P&NE>0#   6#0  &0              @(%^2P( >&PO=V]R
M:W-H965T<R]S:&5E=#@S+GAM;%!+ 0(4 Q0    ( *6$7%B1;E<$8 0   ,1
M   9              " @9E/ @!X;"]W;W)K<VAE971S+W-H965T.#0N>&UL
M4$L! A0#%     @ I81<6#3P1D.+ P  [ P  !D              ("!,%0"
M 'AL+W=O<FMS:&5E=',O<VAE970X-2YX;6Q02P$"% ,4    " "EA%Q8HNTY
M/,L"  "4"   &0              @('R5P( >&PO=V]R:W-H965T<R]S:&5E
M=#@V+GAM;%!+ 0(4 Q0    ( *6$7%CE'WB_50,  &H*   9
M  " @?1: @!X;"]W;W)K<VAE971S+W-H965T.#<N>&UL4$L! A0#%     @
MI81<6'%&7YVG"0  3F<  !D              ("!@%X" 'AL+W=O<FMS:&5E
M=',O<VAE970X."YX;6Q02P$"% ,4    " "EA%Q84+7V@$L$  !/$P  &0
M            @(%>: ( >&PO=V]R:W-H965T<R]S:&5E=#@Y+GAM;%!+ 0(4
M Q0    ( *6$7%B#J&L7 P,  +()   9              " @>!L @!X;"]W
M;W)K<VAE971S+W-H965T.3 N>&UL4$L! A0#%     @ I81<6$7U,CIR P
ML@P  !D              ("!&G " 'AL+W=O<FMS:&5E=',O<VAE970Y,2YX
M;6Q02P$"% ,4    " "EA%Q8:,[GSUL#  "L#   &0              @('#
M<P( >&PO=V]R:W-H965T<R]S:&5E=#DR+GAM;%!+ 0(4 Q0    ( *6$7%AG
M3;S]0 (  "T%   9              " @55W @!X;"]W;W)K<VAE971S+W-H
M965T.3,N>&UL4$L! A0#%     @ I81<6'AZ6(*F!0  1C4  !D
M     ("!S'D" 'AL+W=O<FMS:&5E=',O<VAE970Y-"YX;6Q02P$"% ,4
M" "EA%Q8'IR$8I<"  "[!P  &0              @(&I?P( >&PO=V]R:W-H
M965T<R]S:&5E=#DU+GAM;%!+ 0(4 Q0    ( *6$7%C1QEM%NP0  &,F   9
M              " @7>" @!X;"]W;W)K<VAE971S+W-H965T.38N>&UL4$L!
M A0#%     @ I81<6&EO?R*G!   #AX  !D              ("!:8<" 'AL
M+W=O<FMS:&5E=',O<VAE970Y-RYX;6Q02P$"% ,4    " "EA%Q8=M6AOZ8"
M   (!P  &0              @(%'C ( >&PO=V]R:W-H965T<R]S:&5E=#DX
M+GAM;%!+ 0(4 Q0    ( *6$7%CI_IWH*P,  / )   9              "
M@22/ @!X;"]W;W)K<VAE971S+W-H965T.3DN>&UL4$L! A0#%     @ I81<
M6..,/#^6 P  HQ(  !H              ("!AI(" 'AL+W=O<FMS:&5E=',O
M<VAE970Q,# N>&UL4$L! A0#%     @ I81<6%F7D;3, P  H!4  !H
M         ("!5)8" 'AL+W=O<FMS:&5E=',O<VAE970Q,#$N>&UL4$L! A0#
M%     @ I81<6&30&VX1!   WA$  !H              ("!6)H" 'AL+W=O
M<FMS:&5E=',O<VAE970Q,#(N>&UL4$L! A0#%     @ I81<6*+C2]DZ P
M[A,   T              ( !H9X" 'AL+W-T>6QE<RYX;6Q02P$"% ,4
M" "EA%Q8EXJ[',     3 @  "P              @ $&H@( 7W)E;',O+G)E
M;'-02P$"% ,4    " "EA%Q8/36B1/0&   C0P  #P              @ 'O
MH@( >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ I81<6.U(Q+7D @  \3L
M !H              ( !$*H" 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS
M4$L! A0#%     @ I81<6-$U_%E? @  USD  !,              ( !+*T"
J %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     &X ;@ \'@  O*\"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>120
<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>121
<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>123
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>392</ContextCount>
  <ElementCount>450</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>147</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>11</UnitCount>
  <MyReports>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover Page</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CoverPage</Role>
      <ShortName>Cover Page</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>0000002 - Document - Audit Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/AuditInformation</Role>
      <ShortName>Audit Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>0000003 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>0000004 - Statement - Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>0000005 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofOperations</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>0000006 - Statement - Consolidated Statements of Operations (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical</Role>
      <ShortName>Consolidated Statements of Operations (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>0000007 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>0000008 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>0000009 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>0000010 - Statement - Consolidated Statements of Cash Flows (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical</Role>
      <ShortName>Consolidated Statements of Cash Flows (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>0000011 - Disclosure - Description of Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DescriptionofBusiness</Role>
      <ShortName>Description of Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>0000012 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>0000013 - Disclosure - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognition</Role>
      <ShortName>Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>0000014 - Disclosure - Net Loss per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/NetLossperShare</Role>
      <ShortName>Net Loss per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>0000015 - Disclosure - Collaborative Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangements</Role>
      <ShortName>Collaborative Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>0000016 - Disclosure - Investments in Non-Marketable Securities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecurities</Role>
      <ShortName>Investments in Non-Marketable Securities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>0000017 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>0000018 - Disclosure - Balance Sheet Details</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetails</Role>
      <ShortName>Balance Sheet Details</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>0000019 - Disclosure - Stock-based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensation</Role>
      <ShortName>Stock-based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>0000020 - Disclosure - Capital Stock</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CapitalStock</Role>
      <ShortName>Capital Stock</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>0000021 - Disclosure - 401(k) Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/A401kPlan</Role>
      <ShortName>401(k) Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>0000022 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>0000023 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>0000024 - Disclosure - Related Party Transactions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RelatedPartyTransactions</Role>
      <ShortName>Related Party Transactions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>0000025 - Disclosure - Segment, Geographical and Other Revenue Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation</Role>
      <ShortName>Segment, Geographical and Other Revenue Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>0000026 - Disclosure - Allowance for Credit Losses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/AllowanceforCreditLosses</Role>
      <ShortName>Allowance for Credit Losses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>0000027 - Disclosure - Restructuring Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RestructuringCharges</Role>
      <ShortName>Restructuring Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>0000028 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>9954471 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>9954472 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>9954473 - Disclosure - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionTables</Role>
      <ShortName>Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/RevenueRecognition</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>9954474 - Disclosure - Net Loss per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/NetLossperShareTables</Role>
      <ShortName>Net Loss per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/NetLossperShare</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>9954475 - Disclosure - Investments in Non-Marketable Securities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables</Role>
      <ShortName>Investments in Non-Marketable Securities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/InvestmentsinNonMarketableSecurities</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>9954476 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/FairValueMeasurements</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>9954477 - Disclosure - Balance Sheet Details (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsTables</Role>
      <ShortName>Balance Sheet Details (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BalanceSheetDetails</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>9954478 - Disclosure - Stock-based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationTables</Role>
      <ShortName>Stock-based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/StockbasedCompensation</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>9954479 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/IncomeTaxes</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>9954480 - Disclosure - Commitments and Contingencies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesTables</Role>
      <ShortName>Commitments and Contingencies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/CommitmentsandContingencies</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>9954481 - Disclosure - Segment, Geographical and Other Revenue Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</Role>
      <ShortName>Segment, Geographical and Other Revenue Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>9954482 - Disclosure - Allowance for Credit Losses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/AllowanceforCreditLossesTables</Role>
      <ShortName>Allowance for Credit Losses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/AllowanceforCreditLosses</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>9954483 - Disclosure - Description of Business (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DescriptionofBusinessDetails</Role>
      <ShortName>Description of Business (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/DescriptionofBusiness</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>9954484 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>9954485 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>9954486 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails</Role>
      <ShortName>Revenue Recognition - Disaggregation of Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>9954487 - Disclosure - Revenue Recognition - Contracts with Customer (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails</Role>
      <ShortName>Revenue Recognition - Contracts with Customer (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>9954488 - Disclosure - Revenue Recognition - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionNarrativeDetails</Role>
      <ShortName>Revenue Recognition - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>9954489 - Disclosure - Revenue Recognition - Revenue Recognized (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails</Role>
      <ShortName>Revenue Recognition - Revenue Recognized (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>9954490 - Disclosure - Revenue Recognition - Performance Obligation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails</Role>
      <ShortName>Revenue Recognition - Performance Obligation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>9954491 - Disclosure - Net Loss per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/NetLossperShareDetails</Role>
      <ShortName>Net Loss per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/NetLossperShareTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>9954492 - Disclosure - Collaborative Arrangements - GSK Platform Technology Transfer, Collaboration and License Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - GSK Platform Technology Transfer, Collaboration and License Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>9954493 - Disclosure - Collaborative Arrangements - Merck Platform Technology Transfer and License Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Merck Platform Technology Transfer and License Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>9954494 - Disclosure - Collaborative Arrangements - Merck Sitagliptin Catalyst Supply Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Merck Sitagliptin Catalyst Supply Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>9954495 - Disclosure - Collaborative Arrangements - Enzyme Supply Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Enzyme Supply Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>9954496 - Disclosure - Collaborative Arrangements - Commercial Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Commercial Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>9954497 - Disclosure - Collaborative Arrangements - Global Development, Option and License Agreement and Strategic Collaboration Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Global Development, Option and License Agreement and Strategic Collaboration Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>9954498 - Disclosure - Collaborative Arrangements - Acquisition Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Acquisition Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>9954499 - Disclosure - Collaborative Arrangements - Strategic Collaboration Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Strategic Collaboration Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>9954500 - Disclosure - Collaborative Arrangements - Platform Technology Transfer and License Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Platform Technology Transfer and License Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>9954501 - Disclosure - Collaborative Arrangements - License Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - License Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>9954502 - Disclosure - Collaborative Arrangements - Strategic Collaboration and License Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Strategic Collaboration and License Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>9954503 - Disclosure - Collaborative Arrangements - Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>9954504 - Disclosure - Collaborative Arrangements - Pfizer Enzyme Supply Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails</Role>
      <ShortName>Collaborative Arrangements - Pfizer Enzyme Supply Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>9954505 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails</Role>
      <ShortName>Investments in Non-Marketable Securities - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>9954506 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails</Role>
      <ShortName>Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>9954507 - Disclosure - Fair Value Measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/FairValueMeasurementsTables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>9954508 - Disclosure - Balance Sheet Details - Cash and Cash Equivalents (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails</Role>
      <ShortName>Balance Sheet Details - Cash and Cash Equivalents (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>9954509 - Disclosure - Balance Sheet Details - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails</Role>
      <ShortName>Balance Sheet Details - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>9954510 - Disclosure - Balance Sheet Details - Schedule of Inventory Components (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails</Role>
      <ShortName>Balance Sheet Details - Schedule of Inventory Components (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>9954511 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails</Role>
      <ShortName>Balance Sheet Details - Property and Equipment, net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>9954512 - Disclosure - Balance Sheet Details - Schedule of Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails</Role>
      <ShortName>Balance Sheet Details - Schedule of Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>9954513 - Disclosure - Balance Sheet Details - Other Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails</Role>
      <ShortName>Balance Sheet Details - Other Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>9954514 - Disclosure - Stock-based Compensation - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationNarrativeDetails</Role>
      <ShortName>Stock-based Compensation - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>9954515 - Disclosure - Stock-based Compensation - Stock-Based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails</Role>
      <ShortName>Stock-based Compensation - Stock-Based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>9954516 - Disclosure - Stock-based Compensation - Assumptions Used (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails</Role>
      <ShortName>Stock-based Compensation - Assumptions Used (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>9954517 - Disclosure - Stock-based Compensation - Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails</Role>
      <ShortName>Stock-based Compensation - Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>9954518 - Disclosure - Stock-based Compensation - Award Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails</Role>
      <ShortName>Stock-based Compensation - Award Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>9954519 - Disclosure - Capital Stock (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CapitalStockDetails</Role>
      <ShortName>Capital Stock (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/CapitalStock</ParentRole>
      <Position>79</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>9954520 - Disclosure - 401(k) Plan (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/A401kPlanDetails</Role>
      <ShortName>401(k) Plan (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/A401kPlan</ParentRole>
      <Position>80</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>9954521 - Disclosure - Income Taxes - Components of Loss Before Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails</Role>
      <ShortName>Income Taxes - Components of Loss Before Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>9954522 - Disclosure - Income Taxes - Components of Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails</Role>
      <ShortName>Income Taxes - Components of Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>9954523 - Disclosure - Income Taxes - Tax Rate Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails</Role>
      <ShortName>Income Taxes - Tax Rate Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>9954524 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails</Role>
      <ShortName>Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>9954525 - Disclosure - Income Taxes - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesNarrativeDetails</Role>
      <ShortName>Income Taxes - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>9954526 - Disclosure - Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails</Role>
      <ShortName>Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>9954527 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails</Role>
      <ShortName>Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>9954528 - Disclosure - Commitments and Contingencies - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails</Role>
      <ShortName>Commitments and Contingencies - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>9954529 - Disclosure - Commitment and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails</Role>
      <ShortName>Commitment and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>9954530 - Disclosure - Commitments and Contingencies - Lease Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails</Role>
      <ShortName>Commitments and Contingencies - Lease Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>9954531 - Disclosure - Commitments and Contingencies - Other Lease Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails</Role>
      <ShortName>Commitments and Contingencies - Other Lease Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>9954532 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails</Role>
      <ShortName>Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>9954533 - Disclosure - Commitments and Contingencies - Other Commitments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails</Role>
      <ShortName>Commitments and Contingencies - Other Commitments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>9954534 - Disclosure - Related Party Transactions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RelatedPartyTransactionsDetails</Role>
      <ShortName>Related Party Transactions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/RelatedPartyTransactions</ParentRole>
      <Position>94</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>9954535 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</ParentRole>
      <Position>95</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>9954536 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Concentration Risk (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>9954537 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Revenues (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</ParentRole>
      <Position>97</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>9954538 - Disclosure - Segment, Geographical and Other Revenue Information - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</ParentRole>
      <Position>98</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>9954539 - Disclosure - Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails</Role>
      <ShortName>Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>9954540 - Disclosure - Allowance for Credit Losses - Summary of Accounts Receivable by Aging Category (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails</Role>
      <ShortName>Allowance for Credit Losses - Summary of Accounts Receivable by Aging Category (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>9954541 - Disclosure - Restructuring Charges (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RestructuringChargesDetails</Role>
      <ShortName>Restructuring Charges (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/RestructuringCharges</ParentRole>
      <Position>101</Position>
    </Report>
    <Report instance="cdxs-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>9954542 - Disclosure - Subsequent Events (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SubsequentEventsDetails</Role>
      <ShortName>Subsequent Events (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SubsequentEvents</ParentRole>
      <Position>102</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-K" isDefinitelyFs="true" isUsgaap="true" original="cdxs-20231231.htm">cdxs-20231231.htm</File>
    <File>cdxs-20231231.xsd</File>
    <File>cdxs-20231231_cal.xml</File>
    <File>cdxs-20231231_def.xml</File>
    <File>cdxs-20231231_lab.xml</File>
    <File>cdxs-20231231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>cdxs-20231231_g1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1189">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="38">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>126
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "cdxs-20231231.htm": {
   "nsprefix": "cdxs",
   "nsuri": "http://www.codexis.com/20231231",
   "dts": {
    "inline": {
     "local": [
      "cdxs-20231231.htm"
     ]
    },
    "schema": {
     "local": [
      "cdxs-20231231.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://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd",
      "https://xbrl.sec.gov/country/2023/country-2023.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd",
      "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "cdxs-20231231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cdxs-20231231_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "cdxs-20231231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cdxs-20231231_pre.xml"
     ]
    }
   },
   "keyStandard": 388,
   "keyCustom": 62,
   "axisStandard": 39,
   "axisCustom": 0,
   "memberStandard": 62,
   "memberCustom": 76,
   "hidden": {
    "total": 8,
    "http://xbrl.sec.gov/dei/2023": 4,
    "http://fasb.org/us-gaap/2023": 4
   },
   "contextCount": 392,
   "entityCount": 1,
   "segmentCount": 147,
   "elementCount": 861,
   "unitCount": 11,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 1189,
    "http://xbrl.sec.gov/dei/2023": 38,
    "http://xbrl.sec.gov/ecd/2023": 4
   },
   "report": {
    "R1": {
     "role": "http://www.codexis.com/role/CoverPage",
     "longName": "0000001 - Document - Cover Page",
     "shortName": "Cover Page",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.codexis.com/role/AuditInformation",
     "longName": "0000002 - Document - Audit Information",
     "shortName": "Audit Information",
     "isDefault": "false",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.codexis.com/role/ConsolidatedBalanceSheets",
     "longName": "0000003 - Statement - Consolidated Balance Sheets",
     "shortName": "Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:RestrictedCash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
     "longName": "0000004 - Statement - Consolidated Balance Sheets (Parenthetical)",
     "shortName": "Consolidated Balance Sheets (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
     "longName": "0000005 - Statement - Consolidated Statements of Operations",
     "shortName": "Consolidated Statements of Operations",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
     "longName": "0000006 - Statement - Consolidated Statements of Operations (Parenthetical)",
     "shortName": "Consolidated Statements of Operations (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-22",
      "name": "us-gaap:OtherNonoperatingIncomeExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
     "longName": "0000007 - Statement - Consolidated Statements of Stockholders' Equity",
     "shortName": "Consolidated Statements of Stockholders' Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c-25",
      "name": "us-gaap:SharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-25",
      "name": "us-gaap:SharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical",
     "longName": "0000008 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)",
     "shortName": "Consolidated Statements of Stockholders' Equity (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsOfStockIssuanceCosts",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R9": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
     "longName": "0000009 - Statement - Consolidated Statements of Cash Flows",
     "shortName": "Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
     "longName": "0000010 - Statement - Consolidated Statements of Cash Flows (Parenthetical)",
     "shortName": "Consolidated Statements of Cash Flows (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherNoncashIncome",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-22",
      "name": "us-gaap:OtherNoncashIncome",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.codexis.com/role/DescriptionofBusiness",
     "longName": "0000011 - Disclosure - Description of Business",
     "shortName": "Description of Business",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies",
     "longName": "0000012 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.codexis.com/role/RevenueRecognition",
     "longName": "0000013 - Disclosure - Revenue Recognition",
     "shortName": "Revenue Recognition",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.codexis.com/role/NetLossperShare",
     "longName": "0000014 - Disclosure - Net Loss per Share",
     "shortName": "Net Loss per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.codexis.com/role/CollaborativeArrangements",
     "longName": "0000015 - Disclosure - Collaborative Arrangements",
     "shortName": "Collaborative Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CollaborativeArrangementDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CollaborativeArrangementDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecurities",
     "longName": "0000016 - Disclosure - Investments in Non-Marketable Securities",
     "shortName": "Investments in Non-Marketable Securities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.codexis.com/role/FairValueMeasurements",
     "longName": "0000017 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueMeasurementInputsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueMeasurementInputsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.codexis.com/role/BalanceSheetDetails",
     "longName": "0000018 - Disclosure - Balance Sheet Details",
     "shortName": "Balance Sheet Details",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.codexis.com/role/StockbasedCompensation",
     "longName": "0000019 - Disclosure - Stock-based Compensation",
     "shortName": "Stock-based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.codexis.com/role/CapitalStock",
     "longName": "0000020 - Disclosure - Capital Stock",
     "shortName": "Capital Stock",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.codexis.com/role/A401kPlan",
     "longName": "0000021 - Disclosure - 401(k) Plan",
     "shortName": "401(k) Plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.codexis.com/role/IncomeTaxes",
     "longName": "0000022 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.codexis.com/role/CommitmentsandContingencies",
     "longName": "0000023 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.codexis.com/role/RelatedPartyTransactions",
     "longName": "0000024 - Disclosure - Related Party Transactions",
     "shortName": "Related Party Transactions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation",
     "longName": "0000025 - Disclosure - Segment, Geographical and Other Revenue Information",
     "shortName": "Segment, Geographical and Other Revenue Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.codexis.com/role/AllowanceforCreditLosses",
     "longName": "0000026 - Disclosure - Allowance for Credit Losses",
     "shortName": "Allowance for Credit Losses",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CreditLossFinancialInstrumentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CreditLossFinancialInstrumentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.codexis.com/role/RestructuringCharges",
     "longName": "0000027 - Disclosure - Restructuring Charges",
     "shortName": "Restructuring Charges",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.codexis.com/role/SubsequentEvents",
     "longName": "0000028 - Disclosure - Subsequent Events",
     "shortName": "Subsequent Events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "29",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R30": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "30",
     "firstAnchor": {
      "contextRef": "c-84",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-84",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies",
     "longName": "9954471 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables",
     "longName": "9954472 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Tables)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R33": {
     "role": "http://www.codexis.com/role/RevenueRecognitionTables",
     "longName": "9954473 - Disclosure - Revenue Recognition (Tables)",
     "shortName": "Revenue Recognition (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "33",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.codexis.com/role/NetLossperShareTables",
     "longName": "9954474 - Disclosure - Net Loss per Share (Tables)",
     "shortName": "Net Loss per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables",
     "longName": "9954475 - Disclosure - Investments in Non-Marketable Securities (Tables)",
     "shortName": "Investments in Non-Marketable Securities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.codexis.com/role/FairValueMeasurementsTables",
     "longName": "9954476 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsTables",
     "longName": "9954477 - Disclosure - Balance Sheet Details (Tables)",
     "shortName": "Balance Sheet Details (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.codexis.com/role/StockbasedCompensationTables",
     "longName": "9954478 - Disclosure - Stock-based Compensation (Tables)",
     "shortName": "Stock-based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.codexis.com/role/IncomeTaxesTables",
     "longName": "9954479 - Disclosure - Income Taxes (Tables)",
     "shortName": "Income Taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesTables",
     "longName": "9954480 - Disclosure - Commitments and Contingencies (Tables)",
     "shortName": "Commitments and Contingencies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables",
     "longName": "9954481 - Disclosure - Segment, Geographical and Other Revenue Information (Tables)",
     "shortName": "Segment, Geographical and Other Revenue Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.codexis.com/role/AllowanceforCreditLossesTables",
     "longName": "9954482 - Disclosure - Allowance for Credit Losses (Tables)",
     "shortName": "Allowance for Credit Losses (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.codexis.com/role/DescriptionofBusinessDetails",
     "longName": "9954483 - Disclosure - Description of Business (Details)",
     "shortName": "Description of Business (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "c-343",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:SegmentReportingPolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R44": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
     "longName": "9954484 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ShippingAndDistributionCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ShippingAndDistributionCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails",
     "longName": "9954485 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "c-64",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-64",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
     "longName": "9954486 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details)",
     "shortName": "Revenue Recognition - Disaggregation of Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R47": {
     "role": "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails",
     "longName": "9954487 - Disclosure - Revenue Recognition - Contracts with Customer (Details)",
     "shortName": "Revenue Recognition - Contracts with Customer (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ContractWithCustomerAssetGrossCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:UnbilledContractsReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
     "longName": "9954488 - Disclosure - Revenue Recognition - Narrative (Details)",
     "shortName": "Revenue Recognition - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerAssetCreditLossExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerAssetCreditLossExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails",
     "longName": "9954489 - Disclosure - Revenue Recognition - Revenue Recognized (Details)",
     "shortName": "Revenue Recognition - Revenue Recognized (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "c-84",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-84",
      "name": "us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails",
     "longName": "9954490 - Disclosure - Revenue Recognition - Performance Obligation (Details)",
     "shortName": "Revenue Recognition - Performance Obligation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "c-90",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-90",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.codexis.com/role/NetLossperShareDetails",
     "longName": "9954491 - Disclosure - Net Loss per Share (Details)",
     "shortName": "Net Loss per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "c-91",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-91",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
     "longName": "9954492 - Disclosure - Collaborative Arrangements - GSK Platform Technology Transfer, Collaboration and License Agreement (Details)",
     "shortName": "Collaborative Arrangements - GSK Platform Technology Transfer, Collaboration and License Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "c-84",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-97",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
     "longName": "9954493 - Disclosure - Collaborative Arrangements - Merck Platform Technology Transfer and License Agreement (Details)",
     "shortName": "Collaborative Arrangements - Merck Platform Technology Transfer and License Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "c-84",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-102",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
     "longName": "9954494 - Disclosure - Collaborative Arrangements - Merck Sitagliptin Catalyst Supply Agreement (Details)",
     "shortName": "Collaborative Arrangements - Merck Sitagliptin Catalyst Supply Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "c-84",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-114",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
     "longName": "9954495 - Disclosure - Collaborative Arrangements - Enzyme Supply Agreement (Details)",
     "shortName": "Collaborative Arrangements - Enzyme Supply Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-119",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
     "longName": "9954496 - Disclosure - Collaborative Arrangements - Commercial Agreement (Details)",
     "shortName": "Collaborative Arrangements - Commercial Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "c-121",
      "name": "cdxs:RevenueRecognitionContingentReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-121",
      "name": "cdxs:RevenueRecognitionContingentReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
     "longName": "9954497 - Disclosure - Collaborative Arrangements - Global Development, Option and License Agreement and Strategic Collaboration Agreement (Details)",
     "shortName": "Collaborative Arrangements - Global Development, Option and License Agreement and Strategic Collaboration Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-123",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
     "longName": "9954498 - Disclosure - Collaborative Arrangements - Acquisition Agreement (Details)",
     "shortName": "Collaborative Arrangements - Acquisition Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-126",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
     "longName": "9954499 - Disclosure - Collaborative Arrangements - Strategic Collaboration Agreement (Details)",
     "shortName": "Collaborative Arrangements - Strategic Collaboration Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-131",
      "name": "us-gaap:ProceedsFromCollaborators",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
     "longName": "9954500 - Disclosure - Collaborative Arrangements - Platform Technology Transfer and License Agreement (Details)",
     "shortName": "Collaborative Arrangements - Platform Technology Transfer and License Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-135",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R61": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
     "longName": "9954501 - Disclosure - Collaborative Arrangements - License Agreement (Details)",
     "shortName": "Collaborative Arrangements - License Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-148",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R62": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails",
     "longName": "9954502 - Disclosure - Collaborative Arrangements - Strategic Collaboration and License Agreement (Details)",
     "shortName": "Collaborative Arrangements - Strategic Collaboration and License Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-152",
      "name": "cdxs:RevenueRecognitionContingentReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R63": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
     "longName": "9954503 - Disclosure - Collaborative Arrangements - Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement (Details)",
     "shortName": "Collaborative Arrangements - Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsToAcquireOtherInvestments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-161",
      "name": "cdxs:ContractWithCustomerSalesMilestone",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "cdxs:ContractWithCustomerSalesMilestone",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R64": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
     "longName": "9954504 - Disclosure - Collaborative Arrangements - Pfizer Enzyme Supply Agreement (Details)",
     "shortName": "Collaborative Arrangements - Pfizer Enzyme Supply Agreement (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-172",
      "name": "cdxs:ContractWithCustomerLiabilityRetainerFee",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R65": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
     "longName": "9954505 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details)",
     "shortName": "Investments in Non-Marketable Securities - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "us-gaap:AvailableForSaleSecuritiesDebtSecurities",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R66": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
     "longName": "9954506 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)",
     "shortName": "Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-205",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R67": {
     "role": "http://www.codexis.com/role/FairValueMeasurementsDetails",
     "longName": "9954507 - Disclosure - Fair Value Measurements (Details)",
     "shortName": "Fair Value Measurements (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "c-221",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-221",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
     "longName": "9954508 - Disclosure - Balance Sheet Details - Cash and Cash Equivalents (Details)",
     "shortName": "Balance Sheet Details - Cash and Cash Equivalents (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R69": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
     "longName": "9954509 - Disclosure - Balance Sheet Details - Narrative (Details)",
     "shortName": "Balance Sheet Details - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PrepaidExpenseCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R70": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails",
     "longName": "9954510 - Disclosure - Balance Sheet Details - Schedule of Inventory Components (Details)",
     "shortName": "Balance Sheet Details - Schedule of Inventory Components (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:InventoryRawMaterials",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:InventoryRawMaterials",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R71": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
     "longName": "9954511 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)",
     "shortName": "Balance Sheet Details - Property and Equipment, net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R72": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
     "longName": "9954512 - Disclosure - Balance Sheet Details - Schedule of Goodwill (Details)",
     "shortName": "Balance Sheet Details - Schedule of Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R73": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails",
     "longName": "9954513 - Disclosure - Balance Sheet Details - Other Accrued Liabilities (Details)",
     "shortName": "Balance Sheet Details - Other Accrued Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
     "longName": "9954514 - Disclosure - Stock-based Compensation - Narrative (Details)",
     "shortName": "Stock-based Compensation - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R75": {
     "role": "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
     "longName": "9954515 - Disclosure - Stock-based Compensation - Stock-Based Compensation Expense (Details)",
     "shortName": "Stock-based Compensation - Stock-Based Compensation Expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-248",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R76": {
     "role": "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
     "longName": "9954516 - Disclosure - Stock-based Compensation - Assumptions Used (Details)",
     "shortName": "Stock-based Compensation - Assumptions Used (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "c-248",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-248",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R77": {
     "role": "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails",
     "longName": "9954517 - Disclosure - Stock-based Compensation - Option Activity (Details)",
     "shortName": "Stock-based Compensation - Option Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-28",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R78": {
     "role": "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
     "longName": "9954518 - Disclosure - Stock-based Compensation - Award Activity (Details)",
     "shortName": "Stock-based Compensation - Award Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-291",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R79": {
     "role": "http://www.codexis.com/role/CapitalStockDetails",
     "longName": "9954519 - Disclosure - Capital Stock (Details)",
     "shortName": "Capital Stock (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "c-314",
      "name": "cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-314",
      "name": "cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R80": {
     "role": "http://www.codexis.com/role/A401kPlanDetails",
     "longName": "9954520 - Disclosure - 401(k) Plan (Details)",
     "shortName": "401(k) Plan (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DefinedContributionPlanCostRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DefinedContributionPlanCostRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R81": {
     "role": "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails",
     "longName": "9954521 - Disclosure - Income Taxes - Components of Loss Before Provision for Income Taxes (Details)",
     "shortName": "Income Taxes - Components of Loss Before Provision for Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R82": {
     "role": "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails",
     "longName": "9954522 - Disclosure - Income Taxes - Components of Provision for Income Taxes (Details)",
     "shortName": "Income Taxes - Components of Provision for Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentStateAndLocalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentStateAndLocalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R83": {
     "role": "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails",
     "longName": "9954523 - Disclosure - Income Taxes - Tax Rate Reconciliation (Details)",
     "shortName": "Income Taxes - Tax Rate Reconciliation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R84": {
     "role": "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails",
     "longName": "9954524 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)",
     "shortName": "Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R85": {
     "role": "http://www.codexis.com/role/IncomeTaxesNarrativeDetails",
     "longName": "9954525 - Disclosure - Income Taxes - Narrative (Details)",
     "shortName": "Income Taxes - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "85",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R86": {
     "role": "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails",
     "longName": "9954526 - Disclosure - Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)",
     "shortName": "Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "86",
     "firstAnchor": {
      "contextRef": "c-320",
      "name": "us-gaap:OperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-320",
      "name": "us-gaap:OperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R87": {
     "role": "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails",
     "longName": "9954527 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)",
     "shortName": "Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "87",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-28",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R88": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
     "longName": "9954528 - Disclosure - Commitments and Contingencies - Narrative (Details)",
     "shortName": "Commitments and Contingencies - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "88",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AreaOfRealEstateProperty",
      "unitRef": "sqft",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AreaOfRealEstateProperty",
      "unitRef": "sqft",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R89": {
     "role": "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
     "longName": "9954529 - Disclosure - Commitment and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)",
     "shortName": "Commitment and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "89",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:IncreaseDecreaseInOperatingLeaseRightOfUseAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R90": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails",
     "longName": "9954530 - Disclosure - Commitments and Contingencies - Lease Costs (Details)",
     "shortName": "Commitments and Contingencies - Lease Costs (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "90",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:FinanceLeaseCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:FinanceLeaseCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R91": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails",
     "longName": "9954531 - Disclosure - Commitments and Contingencies - Other Lease Information (Details)",
     "shortName": "Commitments and Contingencies - Other Lease Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "91",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R92": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
     "longName": "9954532 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)",
     "shortName": "Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "92",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R93": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails",
     "longName": "9954533 - Disclosure - Commitments and Contingencies - Other Commitments (Details)",
     "shortName": "Commitments and Contingencies - Other Commitments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "93",
     "firstAnchor": {
      "contextRef": "c-332",
      "name": "us-gaap:OtherCommitment",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SupplyCommitmentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-332",
      "name": "us-gaap:OtherCommitment",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SupplyCommitmentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R94": {
     "role": "http://www.codexis.com/role/RelatedPartyTransactionsDetails",
     "longName": "9954534 - Disclosure - Related Party Transactions (Details)",
     "shortName": "Related Party Transactions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "94",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsToAcquireOtherInvestments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-339",
      "name": "us-gaap:InvestmentOwnedBalanceShares",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R95": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails",
     "longName": "9954535 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "95",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:NumberOfBusinessSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:SegmentReportingPolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:NumberOfBusinessSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:SegmentReportingPolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R96": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails",
     "longName": "9954536 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Concentration Risk (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "96",
     "firstAnchor": {
      "contextRef": "c-344",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-344",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R97": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails",
     "longName": "9954537 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Revenues (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "97",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-355",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R98": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails",
     "longName": "9954538 - Disclosure - Segment, Geographical and Other Revenue Information - Goodwill (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "98",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R99": {
     "role": "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails",
     "longName": "9954539 - Disclosure - Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details)",
     "shortName": "Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "99",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:AllowanceForNotesAndLoansReceivableCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-28",
      "name": "us-gaap:AllowanceForNotesAndLoansReceivableCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R100": {
     "role": "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails",
     "longName": "9954540 - Disclosure - Allowance for Credit Losses - Summary of Accounts Receivable by Aging Category (Details)",
     "shortName": "Allowance for Credit Losses - Summary of Accounts Receivable by Aging Category (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "100",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AccountsReceivableGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:PastDueFinancingReceivablesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AccountsReceivableGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:PastDueFinancingReceivablesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R101": {
     "role": "http://www.codexis.com/role/RestructuringChargesDetails",
     "longName": "9954541 - Disclosure - Restructuring Charges (Details)",
     "shortName": "Restructuring Charges (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "101",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringCharges",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-379",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "unique": true
     }
    },
    "R102": {
     "role": "http://www.codexis.com/role/SubsequentEventsDetails",
     "longName": "9954542 - Disclosure - Subsequent Events (Details)",
     "shortName": "Subsequent Events (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "102",
     "firstAnchor": {
      "contextRef": "c-386",
      "name": "cdxs:DebtInstrumentNumberOfTranches",
      "unitRef": "tranche",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-386",
      "name": "cdxs:DebtInstrumentNumberOfTranches",
      "unitRef": "tranche",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20231231.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "cdxs_A200220PenobscotMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A200220PenobscotMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "200-220 Penobscot",
        "label": "200-220 Penobscot [Member]",
        "documentation": "200-220 Penobscot"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2019AmendedPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2019AmendedPlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2019 Amended Plan",
        "label": "2019 Amended Plan [Member]",
        "documentation": "2019 Amended Plan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2019PlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2019PlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2019 Plan",
        "label": "2019 Plan [Member]",
        "documentation": "2019 Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2021PBOMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2021PBOMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2021 PBO",
        "label": "2021 PBO [Member]",
        "documentation": "2021 PBO"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2021PSUAnd2021PBOMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2021PSUAnd2021PBOMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2021 PSU And 2021 PBO",
        "label": "2021 PSU And 2021 PBO [Member]",
        "documentation": "2021 PSU And 2021 PBO"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2021PSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2021PSUMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2021 PSU",
        "label": "2021 PSU [Member]",
        "documentation": "2021 PSU"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022InducementPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2022InducementPlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 Inducement Plan",
        "label": "2022 Inducement Plan [Member]",
        "documentation": "2022 Inducement Plan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022PBOMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2022PBOMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 PBO",
        "label": "2022 PBO [Member]",
        "documentation": "2022 PBO"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022PSUAnd2022PBOMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2022PSUAnd2022PBOMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 PSU And 2022 PBO",
        "label": "2022 PSU And 2022 PBO [Member]",
        "documentation": "2022 PSU And 2022 PBO"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022PSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A2022PSUMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 PSU",
        "label": "2022 PSU [Member]",
        "documentation": "2022 PSU"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A400PenoscotMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A400PenoscotMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "400 Penoscot",
        "label": "400 Penoscot [Member]",
        "documentation": "400 Penoscot"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A501ChesapeakeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "A501ChesapeakeMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "501 Chesapeake",
        "label": "501 Chesapeake [Member]",
        "documentation": "501 Chesapeake"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Abstract]",
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_AccountingPoliciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AccountingPoliciesLineItems",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Line Items]",
        "label": "Accounting Policies [Line Items]",
        "documentation": "Accounting Policies"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_AccountingPoliciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AccountingPoliciesTable",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounting Policies [Table]",
        "label": "Accounting Policies [Table]",
        "documentation": "Accounting Policies"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsNotesAndLoansReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsNotesAndLoansReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total financial assets, net",
        "label": "Accounts and Financing Receivable, after Allowance for Credit Loss, Current",
        "documentation": "Amount, after allowance for credit loss, of accounts and financing receivables, classified as current. Includes, but is not limited to, notes and loan receivable."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r807"
     ]
    },
    "us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable Type [Axis]",
        "label": "Receivable Type [Axis]",
        "documentation": "Information by type of receivable."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r841"
     ]
    },
    "us-gaap_AccountsReceivableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableGross",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable",
        "label": "Accounts Receivable, before Allowance for Credit Loss",
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business."
       }
      }
     },
     "auth_ref": [
      "r196",
      "r298",
      "r1059"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r779"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts receivable",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r299"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other accrued liabilities",
        "totalLabel": "Total other accrued liabilities",
        "label": "Accrued Liabilities, Current",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedProfessionalFeesCurrentAndNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued professional and outside service fees",
        "label": "Accrued Professional Fees",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received."
       }
      }
     },
     "auth_ref": [
      "r87"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less: accumulated depreciation and amortization",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r189",
      "r629"
     ]
    },
    "cdxs_AcquisitionAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AcquisitionAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition Agreement",
        "label": "Acquisition Agreement [Member]",
        "documentation": "Acquisition Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional 402(v) Disclosure",
        "label": "Additional 402(v) Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r895"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital",
        "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."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r841",
      "r1063"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Paid-in Capital",
        "label": "Additional Paid-in Capital [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r496",
      "r497",
      "r498",
      "r675",
      "r960",
      "r961",
      "r962",
      "r1039",
      "r1064"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation, Amount",
        "label": "Adjustment to Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation:",
        "label": "Adjustment to Compensation [Axis]"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote",
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment To PEO Compensation, Footnote",
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards",
        "label": "Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation",
        "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee stock-based compensation",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r72",
      "r459"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Adjustments to reconcile net loss to net cash provided by (used in) operating activities:",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising",
        "label": "Advertising Cost [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r159"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising expense",
        "label": "Advertising Expense",
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line."
       }
      }
     },
     "auth_ref": [
      "r504"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Amount",
        "label": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r865",
      "r877",
      "r887",
      "r913"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined",
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r868",
      "r880",
      "r890",
      "r916"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Adjustments to Compensation",
        "label": "All Adjustments to Compensation [Member]"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Executive Categories",
        "label": "All Executive Categories [Member]"
       }
      }
     },
     "auth_ref": [
      "r908"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Individuals",
        "label": "All Individuals [Member]"
       }
      }
     },
     "auth_ref": [
      "r872",
      "r881",
      "r891",
      "r908",
      "r917",
      "r921",
      "r929"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Trading Arrangements",
        "label": "All Trading Arrangements [Member]"
       }
      }
     },
     "auth_ref": [
      "r927"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based payment arrangement, expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r491",
      "r503"
     ]
    },
    "cdxs_AllowanceForCreditLossAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AllowanceForCreditLossAdjustment",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Adjustment to existing allowance",
        "label": "Allowance For Credit Loss, Adjustment",
        "documentation": "Allowance For Credit Loss, Adjustment"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_AllowanceForCreditLossWriteOff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AllowanceForCreditLossWriteOff",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Write-offs",
        "label": "Allowance For Credit Loss, Write Off",
        "documentation": "Allowance For Credit Loss, Write Off"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Analysis of Allowance for Credit Losses",
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r974"
     ]
    },
    "us-gaap_AllowanceForNotesAndLoansReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForNotesAndLoansReceivableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AccountsNotesAndLoansReceivableNetCurrent",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less: allowances",
        "periodStartLabel": "Balance at beginning of period",
        "periodEndLabel": "Balance at end of period",
        "label": "Financing Receivable, Allowance for Credit Loss, Current",
        "documentation": "Amount of allowance for credit loss on financing receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r199",
      "r300",
      "r313"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "srt_AmericasMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "AmericasMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Americas",
        "label": "Americas [Member]"
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1068",
      "r1069"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total shares excluded as anti-dilutive (in shares)",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "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."
       }
      }
     },
     "auth_ref": [
      "r250"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities [Axis]",
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities, Name [Domain]",
        "label": "Antidilutive Securities, Name [Domain]",
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_AreaOfRealEstateProperty": {
     "xbrltype": "areaItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AreaOfRealEstateProperty",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Area of real estate property (in square feet)",
        "label": "Area of Real Estate Property",
        "documentation": "Area of a real estate property."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ArrangementsAndNonarrangementTransactionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ArrangementsAndNonarrangementTransactionsMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arrangements and Non-arrangement Transactions [Domain]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]",
        "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r540"
     ]
    },
    "cdxs_ArzedaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ArzedaMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arzeda",
        "label": "Arzeda [Member]",
        "documentation": "Arzeda"
       }
      }
     },
     "auth_ref": []
    },
    "srt_AsiaPacificMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "AsiaPacificMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "APAC",
        "label": "Asia Pacific [Member]"
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1068",
      "r1069"
     ]
    },
    "cdxs_AssetImpairmentAndOtherCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AssetImpairmentAndOtherCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset impairment and other charges",
        "label": "Asset Impairment And Other Charges",
        "documentation": "Asset Impairment And Other Charges"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetImpairmentCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetImpairmentCharges",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset impairment charges",
        "label": "Asset Impairment Charges",
        "documentation": "Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r58"
     ]
    },
    "us-gaap_AssetRetirementObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetRetirementObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset retirement obligation",
        "label": "Asset Retirement Obligation",
        "documentation": "The carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees."
       }
      }
     },
     "auth_ref": [
      "r347",
      "r348"
     ]
    },
    "cdxs_AssetRetirementObligationWriteoff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AssetRetirementObligationWriteoff",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset retirement obligation, writeoff",
        "label": "Asset Retirement Obligation, Writeoff",
        "documentation": "Asset Retirement Obligation, Writeoff"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "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."
       }
      }
     },
     "auth_ref": [
      "r146",
      "r192",
      "r220",
      "r261",
      "r282",
      "r288",
      "r310",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r541",
      "r543",
      "r559",
      "r621",
      "r716",
      "r841",
      "r854",
      "r995",
      "r996",
      "r1047"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Assets",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r184",
      "r204",
      "r220",
      "r310",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r541",
      "r543",
      "r559",
      "r841",
      "r995",
      "r996",
      "r1047"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://www.codexis.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Firm ID",
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r859",
      "r860",
      "r873"
     ]
    },
    "cdxs_AuditorInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "AuditorInformationAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Information [Abstract]",
        "documentation": "Auditor Information"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorLocation",
     "presentation": [
      "http://www.codexis.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Location",
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r859",
      "r860",
      "r873"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorName",
     "presentation": [
      "http://www.codexis.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Name",
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r859",
      "r860",
      "r873"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesGrossUnrealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other-than-temporary impairment losses",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss",
        "documentation": "Amount of unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r967"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Available-for-sale non-marketable interest-bearing debt securities",
        "label": "Debt Securities, Available-for-Sale",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r303",
      "r322",
      "r616",
      "r966"
     ]
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise Price",
        "label": "Award Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r924"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value as of Grant Date",
        "label": "Award Grant Date Fair Value"
       }
      }
     },
     "auth_ref": [
      "r925"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing, How MNPI Considered",
        "label": "Award Timing, How MNPI Considered [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Method",
        "label": "Award Timing Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Considered",
        "label": "Award Timing MNPI Considered [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Disclosure",
        "label": "Award Timing MNPI Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Predetermined",
        "label": "Award Timing Predetermined [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type [Axis]",
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Securities",
        "label": "Award Underlying Securities Amount"
       }
      }
     },
     "auth_ref": [
      "r923"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r922"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures",
        "label": "Awards Close in Time to MNPI Disclosures [Table]"
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table",
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "us-gaap_BalanceSheetRelatedDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetRelatedDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet [Abstract]",
        "label": "Balance Sheet Related Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basis of Presentation and Principles of Consolidation",
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": []
    },
    "country_CH": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "CH",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SWITZERLAND",
        "label": "SWITZERLAND"
       }
      }
     },
     "auth_ref": []
    },
    "country_CN": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "CN",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "CHINA",
        "label": "CHINA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalExpendituresIncurredButNotYetPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalExpendituresIncurredButNotYetPaid",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital expenditures incurred but not yet paid",
        "label": "Capital Expenditures Incurred but Not yet Paid",
        "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r39"
     ]
    },
    "us-gaap_CapitalizedContractCostNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalizedContractCostNetCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract costs",
        "label": "Capitalized Contract Cost, Net, Current",
        "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer; classified as current."
       }
      }
     },
     "auth_ref": [
      "r331"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and cash equivalents",
        "terseLabel": "Adjusted Cost",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r187",
      "r796"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Axis]",
        "label": "Cash and Cash Equivalents [Axis]",
        "documentation": "Information by type of cash and cash equivalent balance."
       }
      }
     },
     "auth_ref": [
      "r187"
     ]
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Money market funds",
        "terseLabel": "Estimated Fair Value",
        "label": "Cash and Cash Equivalents, Fair Value Disclosure",
        "documentation": "Fair value portion 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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsLineItems",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Line Items]",
        "label": "Cash and Cash Equivalents [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Restricted Cash",
        "label": "Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r145"
     ]
    },
    "us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents, Unrestricted Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents with respect to unrestricted balances."
       }
      }
     },
     "auth_ref": [
      "r35"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash, cash equivalents and restricted cash at the beginning of the year",
        "periodEndLabel": "Cash, cash equivalents and restricted cash at the end of the year",
        "totalLabel": "Total cash, cash equivalents and restricted cash at the end of the period",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for 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."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r118",
      "r218"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net decrease in cash, cash equivalents and restricted cash",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "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."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r118"
     ]
    },
    "cdxs_CashDepositMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CashDepositMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash Deposit",
        "label": "Cash Deposit [Member]",
        "documentation": "Cash Deposit"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash",
        "label": "Cash [Member]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r187"
     ]
    },
    "cdxs_CashPaidAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CashPaidAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid:",
        "label": "Cash Paid [Abstract]",
        "documentation": "Cash Paid"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ChangeInContractWithCustomerAssetAndLiabilityAbstract",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amounts included in contract liabilities at the beginning of the period:",
        "label": "Change in Contract with Customer, Asset and Liability [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ChangeInContractWithCustomerLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ChangeInContractWithCustomerLiabilityAbstract",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the period:",
        "label": "Change in Contract with Customer, Liability [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changed Peer Group, Footnote",
        "label": "Changed Peer Group, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r899"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfStockDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Domain]",
        "label": "Class of Stock [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r176",
      "r193",
      "r194",
      "r195",
      "r220",
      "r244",
      "r245",
      "r247",
      "r249",
      "r255",
      "r256",
      "r310",
      "r369",
      "r371",
      "r372",
      "r373",
      "r376",
      "r377",
      "r395",
      "r396",
      "r399",
      "r402",
      "r410",
      "r559",
      "r666",
      "r667",
      "r668",
      "r669",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r704",
      "r725",
      "r747",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r936",
      "r956",
      "r963"
     ]
    },
    "us-gaap_ClassOfStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfStockLineItems",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Line Items]",
        "label": "Class of Stock [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r193",
      "r194",
      "r195",
      "r255",
      "r395",
      "r396",
      "r397",
      "r399",
      "r402",
      "r408",
      "r410",
      "r666",
      "r667",
      "r668",
      "r669",
      "r821",
      "r936",
      "r956"
     ]
    },
    "us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of warrant or right, exercise price of warrants or rights (in dollars per share)",
        "label": "Class of Warrant or Right, Exercise Price of Warrants or Rights",
        "documentation": "Exercise price per share or per unit of warrants or rights outstanding."
       }
      }
     },
     "auth_ref": [
      "r411"
     ]
    },
    "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of warrant or right, number of securities called by warrants or rights (in shares)",
        "label": "Class of Warrant or Right, Number of Securities Called by Warrants or Rights",
        "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."
       }
      }
     },
     "auth_ref": [
      "r411"
     ]
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Amount",
        "label": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Name",
        "label": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "cdxs_CollaborativeArrangementConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CollaborativeArrangementConcentrationRiskMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangement Concentration Risk",
        "label": "Collaborative Arrangement Concentration Risk [Member]",
        "documentation": "Collaborative Arrangement Concentration Risk"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CollaborativeArrangementDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CollaborativeArrangementDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangements",
        "label": "Collaborative Arrangement Disclosure [Text Block]",
        "documentation": "The entire disclosure for collaborative arrangements in which the entity is a participant, including a) information about the nature and purpose of such arrangements; b) its rights and obligations thereunder; c) the accounting policy for collaborative arrangements; and d) the income statement classification and amounts attributable to transactions arising from the collaborative arrangement between participants."
       }
      }
     },
     "auth_ref": [
      "r158",
      "r161",
      "r175"
     ]
    },
    "cdxs_CollaborativeArrangementNumberOfMilestonePayments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CollaborativeArrangementNumberOfMilestonePayments",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional milestone payments",
        "label": "Collaborative Arrangement, Number Of Milestone Payments",
        "documentation": "Collaborative Arrangement, Number Of Milestone Payments"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CollaborativeArrangementUpfrontFeeAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CollaborativeArrangementUpfrontFeeAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative arrangement, upfront fee amount",
        "label": "Collaborative Arrangement, Upfront Fee Amount",
        "documentation": "Collaborative Arrangement, Upfront Fee Amount"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r540"
     ]
    },
    "cdxs_CommercialAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CommercialAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial Agreement",
        "label": "Commercial Agreement [Member]",
        "documentation": "Commercial Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CommercializationAndEnzymeSupplyAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CommercializationAndEnzymeSupplyAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercialization And Enzyme Supply Agreement",
        "label": "Commercialization And Enzyme Supply Agreement [Member]",
        "documentation": "Commercialization And Enzyme Supply Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Commitments and contingencies (Note 13)",
        "label": "Commitments and Contingencies",
        "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."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r88",
      "r622",
      "r703"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]",
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r361",
      "r362",
      "r780",
      "r989"
     ]
    },
    "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockCapitalSharesReservedForFutureIssuance",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares reserved for future issuance (in shares)",
        "label": "Common Stock, Capital Shares Reserved for Future Issuance",
        "documentation": "Aggregate number of common shares reserved for future issuance."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r844",
      "r845",
      "r846",
      "r848",
      "r849",
      "r850",
      "r851",
      "r960",
      "r961",
      "r1039",
      "r1062",
      "r1064"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, par value (in dollars per share)",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r97"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares authorized (in shares)",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r704"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares issued (in shares)",
        "label": "Common Stock, Shares, Issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r97"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Common stock, shares outstanding (in shares)",
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r97",
      "r704",
      "r722",
      "r1064",
      "r1065"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Common stock, $0.0001 par value per share; 200,000 shares authorized; 69,905 and 65,811 shares issued and outstanding at December\u00a031, 2023 and December\u00a031, 2022, respectively",
        "label": "Common Stock, Value, Issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r625",
      "r841"
     ]
    },
    "cdxs_CommonStockWarrantsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CommonStockWarrantsMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock Warrants",
        "label": "Common Stock Warrants [Member]",
        "documentation": "Common Stock Warrants"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure",
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r905"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Net Income",
        "label": "Compensation Actually Paid vs. Net Income [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r904"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Other Measure",
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r906"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return",
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r903"
     ]
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Benefits [Abstract]",
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Deferred Tax Assets and Liabilities [Abstract]",
        "label": "Components of Deferred Tax Assets and Liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "label": "Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ComputerEquipmentAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ComputerEquipmentAndSoftwareMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer equipment and software",
        "label": "Computer Equipment and Software [Member]",
        "documentation": "Computer Equipment and Software [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComputerEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComputerEquipmentMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer equipment and software",
        "label": "Computer Equipment [Member]",
        "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Domain]",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r44",
      "r79",
      "r80",
      "r296",
      "r779"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Axis]",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r44",
      "r79",
      "r80",
      "r296",
      "r660",
      "r779"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Axis]",
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r44",
      "r79",
      "r80",
      "r296",
      "r779",
      "r940"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Credit Risk",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for credit risk."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r163"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Line Items]",
        "label": "Concentration Risk [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r779"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration risk, percentage",
        "verboseLabel": "Concentration risk, percentage",
        "label": "Concentration Risk, Percentage",
        "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."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r44",
      "r79",
      "r80",
      "r296"
     ]
    },
    "cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ConcentrationRiskSupplyRiskPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Supply Risk",
        "label": "Concentration Risk, Supply Risk [Policy Text Block]",
        "documentation": "Concentration Risk, Supply Risk [Policy Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r42",
      "r44",
      "r45",
      "r79",
      "r144",
      "r779"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Domain]",
        "label": "Concentration Risk Type [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r44",
      "r79",
      "r80",
      "r296",
      "r779"
     ]
    },
    "us-gaap_ConstructionInProgressMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConstructionInProgressMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Construction in progress",
        "label": "Construction in Progress [Member]",
        "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with Customer",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1001"
     ]
    },
    "us-gaap_ContractWithCustomerAssetCreditLossExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetCreditLossExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment charges related to contract assets",
        "label": "Contract with Customer, Asset, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r315",
      "r432",
      "r823"
     ]
    },
    "us-gaap_ContractWithCustomerAssetGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetGrossCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract assets",
        "verboseLabel": "Contract assets",
        "label": "Contract with Customer, Asset, before Allowance for Credit Loss, Current",
        "documentation": "Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current."
       }
      }
     },
     "auth_ref": [
      "r999",
      "r1000"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract liabilities: deferred revenue",
        "label": "Contract with Customer, Liability",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r414",
      "r434"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total revenues",
        "label": "Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized",
        "documentation": "Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied."
       }
      }
     },
     "auth_ref": [
      "r824"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods",
        "label": "Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price",
        "documentation": "Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in estimate of transaction price which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due. Includes, but is not limited to, change in assessment of whether estimate of variable consideration is constrained."
       }
      }
     },
     "auth_ref": [
      "r822"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred revenue",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r414",
      "r434"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred revenue, net of current portion",
        "label": "Contract with Customer, Liability, Noncurrent",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r414",
      "r434"
     ]
    },
    "cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractWithCustomerLiabilityPortionOfRetainerFee",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, portion of retainer fee",
        "label": "Contract With Customer, Liability, Portion Of Retainer Fee",
        "documentation": "Contract With Customer, Liability, Portion Of Retainer Fee"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerLiabilityRetainerFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractWithCustomerLiabilityRetainerFee",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, retainer fee",
        "label": "Contract With Customer, Liability, Retainer Fee",
        "documentation": "Contract With Customer, Liability, Retainer Fee"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractWithCustomerLiabilityRetainerFeeCreditablePercentage",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, retainer fee, creditable percentage",
        "label": "Contract With Customer, Liability, Retainer Fee, Creditable Percentage",
        "documentation": "Contract With Customer, Liability, Retainer Fee, Creditable Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, retainer fee, non-creditable percentage",
        "label": "Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage",
        "documentation": "Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance obligations satisfied",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "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."
       }
      }
     },
     "auth_ref": [
      "r435"
     ]
    },
    "cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognized, including opening balance",
        "label": "Contract with Customer, Liability, Revenue Recognized, Including Opening Balance",
        "documentation": "Contract with Customer, Liability, Revenue Recognized, Including Opening Balance"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerSalesMilestone": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractWithCustomerSalesMilestone",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate commercial sales, milestone",
        "label": "Contract With Customer, Sales Milestone",
        "documentation": "Contract With Customer, Sales Milestone"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance obligations satisfied from new activities in the period - contract revenue",
        "label": "Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition",
        "documentation": "Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConvertibleDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConvertibleDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-marketable debt security at carrying value",
        "label": "Convertible Debt",
        "documentation": "Including the current and noncurrent portions, carrying amount of debt identified as being convertible into another form of financial instrument (typically the entity's common stock) as of the balance sheet date, which originally required full repayment more than twelve months after issuance or greater than the normal operating cycle of the company."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r149",
      "r1057"
     ]
    },
    "us-gaap_ConvertibleDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConvertibleDebtMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Convertible Debt",
        "label": "Convertible Debt [Member]",
        "documentation": "Borrowing which can be exchanged for a specified number of another security at the option of the issuer or the holder, for example, but not limited to, the entity's common stock."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r378",
      "r379",
      "r384",
      "r385",
      "r386",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820"
     ]
    },
    "us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConvertiblePreferredStockSharesIssuedUponConversion",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Convertible preferred stock, shares issued upon conversion (in shares)",
        "label": "Convertible Preferred Stock, Shares Issued upon Conversion",
        "documentation": "Number of shares issued for each share of convertible preferred stock that is converted."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r64",
      "r96",
      "r132",
      "r405"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of product revenue",
        "label": "Cost of Goods and Services Sold",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r602"
     ]
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Costs of product revenue",
        "label": "Cost of Sales [Member]",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostsAndExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostsAndExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total costs and operating expenses",
        "label": "Costs and Expenses",
        "documentation": "Total costs of sales and operating expenses for the period."
       }
      }
     },
     "auth_ref": [
      "r109"
     ]
    },
    "srt_CounterpartyNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CounterpartyNameAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name [Axis]",
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r225",
      "r226",
      "r381",
      "r397",
      "r589",
      "r799",
      "r801"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility [Axis]",
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility [Domain]",
        "label": "Credit Facility [Domain]",
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditLossFinancialInstrumentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditLossFinancialInstrumentTextBlock",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLosses"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Credit Losses",
        "label": "Credit Loss, Financial Instrument [Text Block]",
        "documentation": "The entire disclosure for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security."
       }
      }
     },
     "auth_ref": [
      "r301",
      "r302",
      "r314",
      "r317",
      "r318",
      "r319",
      "r321",
      "r323",
      "r324"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentForeignTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Current Foreign Tax Expense (Benefit)",
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r942",
      "r959"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current provision",
        "label": "Current Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r529",
      "r535",
      "r959"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current provision:",
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Current State and Local Tax Expense (Benefit)",
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r942",
      "r959",
      "r1038"
     ]
    },
    "cdxs_CustomerAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CustomerAMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer A",
        "label": "Customer A [Member]",
        "documentation": "Customer A"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerBMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CustomerBMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer B",
        "label": "Customer B [Member]",
        "documentation": "Customer B"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerCMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CustomerCMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer C",
        "label": "Customer C [Member]",
        "documentation": "Customer C"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Concentration Risk",
        "label": "Customer Concentration Risk [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r296"
     ]
    },
    "cdxs_CustomerDMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CustomerDMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer D",
        "label": "Customer D [Member]",
        "documentation": "Customer D"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerEMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CustomerEMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer E",
        "label": "Customer E [Member]",
        "documentation": "Customer E"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerFMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "CustomerFMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer F",
        "label": "Customer F [Member]",
        "documentation": "Customer F"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtConversionConvertedInstrumentSharesIssued1": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtConversionConvertedInstrumentSharesIssued1",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-marketable debt security (in shares)",
        "label": "Debt Conversion, Converted Instrument, Shares Issued",
        "documentation": "The number of shares issued in exchange for the original debt being converted in a noncash (or part noncash) transaction. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or payments in the period."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r39"
     ]
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument [Axis]",
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r91",
      "r92",
      "r147",
      "r149",
      "r227",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r568",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r957"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis spread on variable rate",
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentFaceAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentFaceAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, face amount",
        "label": "Debt Instrument, Face Amount",
        "documentation": "Face (par) amount of debt instrument at time of issuance."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r82",
      "r378",
      "r568",
      "r817",
      "r818"
     ]
    },
    "cdxs_DebtInstrumentInterestPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "DebtInstrumentInterestPeriod",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, interest period",
        "label": "Debt Instrument, Interest Period",
        "documentation": "Debt Instrument, Interest Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest rate, stated percentage",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r379"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Name [Domain]",
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r227",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r568",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r957"
     ]
    },
    "cdxs_DebtInstrumentNumberOfTranches": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "DebtInstrumentNumberOfTranches",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, number of tranches",
        "label": "Debt Instrument, Number of Tranches",
        "documentation": "Debt Instrument, Number of Tranches"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentTerm",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, term",
        "label": "Debt Instrument, Term",
        "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit losses",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of writeoff of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r325"
     ]
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Deferred Foreign Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r959",
      "r1037"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deferred benefit",
        "label": "Deferred Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r140",
      "r171",
      "r534",
      "r535",
      "r959"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred benefit:",
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Total deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r95",
      "r148",
      "r523"
     ]
    },
    "us-gaap_DeferredTaxAssetsCapitalLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsCapitalLossCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital losses",
        "label": "Deferred Tax Assets, Capital Loss Carryforwards",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible capital loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsDeferredIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsDeferredIncome",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenues",
        "label": "Deferred Tax Assets, Deferred Income",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsGoodwillAndIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets",
        "label": "Deferred Tax Assets, Goodwill and Intangible Assets",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deferred tax assets:",
        "label": "Deferred Tax Assets, Gross",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r524"
     ]
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsGrossAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets:",
        "label": "Deferred Tax Assets, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsInProcessResearchAndDevelopment",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "R&amp;D Capitalization",
        "label": "Deferred Tax Assets, in Process Research and Development",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from in-process research and development costs expensed in connection with a business combination."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "cdxs_DeferredTaxAssetsLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "DeferredTaxAssetsLeaseLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease liability",
        "label": "Deferred Tax Assets, Lease Liability",
        "documentation": "Deferred Tax Assets, Lease Liability"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses, not subject to expiration, amount",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are not subject to expiration dates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOther",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Deferred Tax Assets, Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment",
        "label": "Deferred Tax Assets, Property, Plant and Equipment",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credits",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards",
        "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserves and accruals",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Valuation allowance",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized."
       }
      }
     },
     "auth_ref": [
      "r525"
     ]
    },
    "us-gaap_DeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Net deferred tax liabilities",
        "label": "Deferred Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r1035"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesOther",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred Tax Liabilities, Other",
        "label": "Deferred Tax Liabilities, Other",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Property and Equipment",
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1036"
     ]
    },
    "cdxs_DeferredTaxLiabilitiesRightOfUseAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "DeferredTaxLiabilitiesRightOfUseAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Right-of-use assets",
        "label": "Deferred Tax Liabilities, Right-of-use Assets",
        "documentation": "Deferred Tax Liabilities, Right-of-use Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesUndistributedForeignEarnings",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liability from undistributed foreign earnings",
        "label": "Deferred Tax Liabilities, Undistributed Foreign Earnings",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from undistributed earnings of subsidiary and other recognized entity not within country of domicile. Includes, but is not limited to, other basis differences."
       }
      }
     },
     "auth_ref": [
      "r1036"
     ]
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/A401kPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Defined contribution plan, cost",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r455"
     ]
    },
    "us-gaap_DemandDepositsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DemandDepositsMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Demand deposits",
        "label": "Demand Deposits [Member]",
        "documentation": "Accounts that may or may not bear interest and that depositor is entitled to withdraw at anytime without prior notice. Checking and negotiable order of withdrawal (NOW) accounts are the most common forms of demand deposits."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Depreciation",
        "terseLabel": "Depreciation expense",
        "label": "Depreciation",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r59"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r433",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r433",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r1002"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r461",
      "r492",
      "r493",
      "r495",
      "r836"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disclosure of Compensation Related Costs, Share-based Payments [Abstract]",
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Annual Report",
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r859",
      "r860",
      "r873"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Financial Statement Error Correction [Flag]",
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r859",
      "r860",
      "r873",
      "r909"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "label": "Document Fiscal Period Focus",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "label": "Document Fiscal Year Focus",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r894"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "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'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Documents Incorporated by Reference",
        "label": "Documents Incorporated by Reference [Text Block]",
        "documentation": "Documents incorporated by reference."
       }
      }
     },
     "auth_ref": [
      "r857"
     ]
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Domestic Tax Authority [Member]",
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EMEAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EMEAMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "EMEA",
        "label": "EMEA [Member]",
        "documentation": "Regions of Europe, Middle East and Africa."
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1068",
      "r1069"
     ]
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share [Abstract]",
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net loss per share, basic (in dollars per share)",
        "label": "Earnings Per Share, Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r211",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r242",
      "r244",
      "r247",
      "r248",
      "r249",
      "r253",
      "r553",
      "r554",
      "r618",
      "r633",
      "r803"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net loss per share, diluted (in dollars per share)",
        "label": "Earnings Per Share, Diluted",
        "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."
       }
      }
     },
     "auth_ref": [
      "r211",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r244",
      "r247",
      "r248",
      "r249",
      "r253",
      "r553",
      "r554",
      "r618",
      "r633",
      "r803"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Loss per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r241",
      "r250",
      "r251",
      "r252"
     ]
    },
    "cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Executive compensation",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation",
        "documentation": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accrued compensation",
        "label": "Employee-related Liabilities, Current",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationAggregateDisclosuresAbstract",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Additional Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average remaining amortization period",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "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."
       }
      }
     },
     "auth_ref": [
      "r494"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized compensation cost, awards other than options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r1031"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized compensation cost, options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1031"
     ]
    },
    "us-gaap_EmployeeSeveranceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeSeveranceMember",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Severance",
        "label": "Employee Severance [Member]",
        "documentation": "Termination of an employee associated with exit from or disposal of business activities or restructurings pursuant to a plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockMember",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails",
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ESPP",
        "label": "Employee Stock [Member]",
        "documentation": "An Employee Stock Purchase Plan is a tax-efficient means by which employees of a corporation can purchase the corporation's stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options",
        "label": "Employee Stock Option [Member]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "label": "Entity Common Stock, Shares Outstanding",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "label": "Entity Current Reporting Status",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityDomain",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity [Domain]",
        "label": "Entity [Domain]",
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Entity File Number",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "label": "Entity Filer Category",
        "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."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "label": "Entity Interactive Data Current",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Public Float",
        "label": "Entity Public Float",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Voluntary Filers",
        "label": "Entity Voluntary Filers",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Well-known Seasoned Issuer",
        "label": "Entity Well-known Seasoned Issuer",
        "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."
       }
      }
     },
     "auth_ref": [
      "r935"
     ]
    },
    "cdxs_EnzymeProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "EnzymeProductMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Enzyme Product",
        "label": "Enzyme Product [Member]",
        "documentation": "Enzyme Product"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_EnzymeSupplyAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "EnzymeSupplyAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Enzyme Supply Agreement",
        "label": "Enzyme Supply Agreement [Member]",
        "documentation": "Enzyme Supply Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquipmentMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Laboratory equipment",
        "label": "Equipment [Member]",
        "documentation": "Tangible personal property used to produce goods and services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity [Abstract]",
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component [Domain]",
        "label": "Equity Component [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r181",
      "r208",
      "r209",
      "r210",
      "r228",
      "r229",
      "r230",
      "r232",
      "r238",
      "r240",
      "r254",
      "r311",
      "r312",
      "r412",
      "r496",
      "r497",
      "r498",
      "r530",
      "r531",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r552",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r582",
      "r655",
      "r656",
      "r657",
      "r675",
      "r747"
     ]
    },
    "srt_EquityMethodInvesteeNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "EquityMethodInvesteeNameDomain",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment, Name [Domain]",
        "label": "Investment, Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r307",
      "r308",
      "r309"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Unrealized gain on non-marketable securities ($0, ($208), and ($983) from a related party)",
        "terseLabel": "Unrealized gain on non-marketable securities",
        "label": "Equity Securities, FV-NI, Unrealized Gain (Loss)",
        "documentation": "Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r635",
      "r971"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment in non-marketable equity securities ($0 and $13,921 with a related party)",
        "verboseLabel": "Investment in non-marketable equity securities",
        "label": "Equity Securities without Readily Determinable Fair Value, Amount",
        "documentation": "Amount of investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r304"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of investment in non-marketable securities",
        "label": "Equity Securities without Readily Determinable Fair Value, Impairment Loss, Annual Amount",
        "documentation": "Amount of impairment loss on investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r305"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Securities without Readily Determinable Fair Value [Line Items]",
        "label": "Equity Securities without Readily Determinable Fair Value [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r968",
      "r969",
      "r970"
     ]
    },
    "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities without readily determinable fair value, upward (downward) price adjustment, annual amount",
        "label": "Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount",
        "documentation": "Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueShares",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities without readily determinable fair value (in shares)",
        "label": "Equity Securities Without Readily Determinable Fair Value, Shares",
        "documentation": "Equity Securities Without Readily Determinable Fair Value, Shares"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone payments received (in shares)",
        "label": "Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received",
        "documentation": "Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueTable",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Securities without Readily Determinable Fair Value [Table]",
        "label": "Equity Securities without Readily Determinable Fair Value [Table]",
        "documentation": "Disclosure of information about investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r968",
      "r969",
      "r970"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Carrying Value of Non-marketable Equity Securities",
        "label": "Equity Securities without Readily Determinable Fair Value [Table Text Block]",
        "documentation": "Tabular disclosure of investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r968",
      "r969",
      "r970"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities without readily determinable fair value, upward price adjustment, annual amount",
        "label": "Equity Securities without Readily Determinable Fair Value, Upward Price Adjustment, Annual Amount",
        "documentation": "Amount of gain from upward price adjustment on investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r306"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Valuation Assumption Difference, Footnote",
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r902"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneous Compensation Analysis",
        "label": "Erroneous Compensation Analysis [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r865",
      "r877",
      "r887",
      "r913"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneously Awarded Compensation Recovery",
        "label": "Erroneously Awarded Compensation Recovery [Table]"
       }
      }
     },
     "auth_ref": [
      "r862",
      "r874",
      "r884",
      "r910"
     ]
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Executive Category:",
        "label": "Executive Category [Axis]"
       }
      }
     },
     "auth_ref": [
      "r908"
     ]
    },
    "cdxs_FacilityMaintenanceAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "FacilityMaintenanceAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Facility maintenance agreement",
        "label": "Facility Maintenance Agreement [Member]",
        "documentation": "Facility Maintenance Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r556",
      "r557"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Table]",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r556",
      "r557"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Summary of Financial Instruments Measured at Fair Value on a Recurring Basis",
        "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r143"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]",
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r556",
      "r594",
      "r595",
      "r596",
      "r817",
      "r818",
      "r832",
      "r833",
      "r834"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Disclosures [Abstract]",
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Level 1",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r440",
      "r445",
      "r556",
      "r594",
      "r832",
      "r833",
      "r834"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Level 2",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r440",
      "r445",
      "r556",
      "r595",
      "r817",
      "r818",
      "r832",
      "r833",
      "r834"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Level\u00a03",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r556",
      "r596",
      "r817",
      "r818",
      "r832",
      "r833",
      "r834"
     ]
    },
    "us-gaap_FairValueMeasurementInputsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementInputsDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Fair Value Measurements",
        "label": "Fair Value Measurement and Measurement Inputs, Recurring and Nonrecurring [Text Block]",
        "documentation": "The entire disclosure of the fair value measurement of assets and liabilities, which includes financial instruments measured at fair value that are classified in shareholders' equity, which may be measured on a recurring or nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Domain]",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r594",
      "r595",
      "r596",
      "r817",
      "r818",
      "r832",
      "r833",
      "r834"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Fair Value Measurements",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r15"
     ]
    },
    "cdxs_FinanceLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "FinanceLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finance lease costs",
        "label": "Finance Lease, Cost",
        "documentation": "Finance Lease, Cost"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancialAssetNotPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialAssetNotPastDueMember",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current",
        "label": "Financial Asset, Not Past Due [Member]",
        "documentation": "Financial asset not past due."
       }
      }
     },
     "auth_ref": [
      "r316",
      "r810"
     ]
    },
    "us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]",
        "label": "Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_FinancialReceivablesPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "FinancialReceivablesPastDueMember",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total over 31 Days",
        "label": "Financial Receivables Past Due [Member]",
        "documentation": "Financial Receivables Past Due"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesLineItems",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Allowance for Credit Loss [Line Items]",
        "label": "Financing Receivable, Allowance for Credit Loss [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r974"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesRollForward",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Allowance for Credit Loss [Roll Forward]",
        "label": "Financing Receivable, Allowance for Credit Loss [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableBeforeAllowanceForCreditLossAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial assets:",
        "label": "Financing Receivable, before Allowance for Credit Loss [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivables30To59DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivables30To59DaysPastDueMember",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "31-60 Days",
        "label": "Financial Asset, 30 to 59 Days Past Due [Member]",
        "documentation": "Financial asset more than 29 days past due but fewer than 60 days past due."
       }
      }
     },
     "auth_ref": [
      "r810"
     ]
    },
    "us-gaap_FinancingReceivables60To89DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivables60To89DaysPastDueMember",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "61-90 Days",
        "label": "Financial Asset, 60 to 89 Days Past Due [Member]",
        "documentation": "Financial asset more than 59 days past due but fewer than 90 days past due."
       }
      }
     },
     "auth_ref": [
      "r810"
     ]
    },
    "us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesEqualToGreaterThan90DaysPastDueMember",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "91 Days and Over",
        "label": "Financial Asset, Equal to or Greater than 90 Days Past Due [Member]",
        "documentation": "Financial asset equal to or greater than 90 days past due."
       }
      }
     },
     "auth_ref": [
      "r810"
     ]
    },
    "us-gaap_FinancingReceivablesPeriodPastDueAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesPeriodPastDueAxis",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Asset, Period Past Due [Axis]",
        "label": "Financial Asset, Aging [Axis]",
        "documentation": "Information by period in which financial asset is past due or not past due."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r316",
      "r810"
     ]
    },
    "us-gaap_FinancingReceivablesPeriodPastDueDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesPeriodPastDueDomain",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Asset, Period Past Due [Domain]",
        "label": "Financial Asset, Aging [Domain]",
        "documentation": "Period in which financial asset is past due or not past due. For past due, element name and standard label in Financial Asset, [numeric lower end] to [numeric higher end] [date measure] Past Due [Member] or Financial Asset, Greater than [low end numeric value] [date measure] Past Due [Member] or Financial Asset, Less than [high end numeric value] [date measure] Past Due [Member] formats."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r316",
      "r810"
     ]
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Foreign Currency Translation",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy."
       }
      }
     },
     "auth_ref": [
      "r560"
     ]
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r869",
      "r881",
      "r891",
      "r917"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount",
        "label": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r869",
      "r881",
      "r891",
      "r917"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r869",
      "r881",
      "r891",
      "r917"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery, Explanation of Impracticability",
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r869",
      "r881",
      "r891",
      "r917"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Forgone Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r869",
      "r881",
      "r891",
      "r917"
     ]
    },
    "cdxs_FourCustomersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "FourCustomersMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Four Customers",
        "label": "Four Customers [Member]",
        "documentation": "Four Customers"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_GSKMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "GSKMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "GSK Platform",
        "label": "GSK [Member]",
        "documentation": "GSK [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Goodwill",
        "periodStartLabel": "Goodwill, beginning balance",
        "periodEndLabel": "Goodwill, ending balance",
        "label": "Goodwill",
        "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."
       }
      }
     },
     "auth_ref": [
      "r190",
      "r333",
      "r615",
      "r811",
      "r841",
      "r977",
      "r984"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined."
       }
      }
     },
     "auth_ref": [
      "r332",
      "r344",
      "r811"
     ]
    },
    "us-gaap_GoodwillImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillImpairmentLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill impairment",
        "negatedTerseLabel": "Impairment",
        "label": "Goodwill, Impairment Loss",
        "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r334",
      "r340",
      "r344",
      "r811"
     ]
    },
    "us-gaap_GoodwillRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillRollForward",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Roll Forward]",
        "label": "Goodwill [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GranteeStatusAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GranteeStatusAxis",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Grantee Status [Axis]",
        "label": "Grantee Status [Axis]",
        "documentation": "Information by status of recipient to whom award is granted."
       }
      }
     },
     "auth_ref": [
      "r458",
      "r460",
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "us-gaap_GranteeStatusDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GranteeStatusDomain",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Grantee Status [Domain]",
        "label": "Grantee Status [Domain]",
        "documentation": "Status of recipient to whom award is granted."
       }
      }
     },
     "auth_ref": [
      "r458",
      "r460",
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "country_IE": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "IE",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "IRELAND",
        "label": "IRELAND"
       }
      }
     },
     "auth_ref": []
    },
    "country_IN": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "IN",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "India",
        "label": "INDIA"
       }
      }
     },
     "auth_ref": []
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ICFR Auditor Attestation Flag",
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r859",
      "r860",
      "r873"
     ]
    },
    "us-gaap_ImpairmentOfLeasehold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairmentOfLeasehold",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of leasehold",
        "label": "Impairment of Leasehold",
        "documentation": "The adjustment to reduce the value of existing agreements that specify the lessee's rights to use the leased property. This expense is charged when the estimates of future profits generated by the leased property are reduced."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r58"
     ]
    },
    "us-gaap_ImpairmentOfLongLivedAssetsHeldForUse": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairmentOfLongLivedAssetsHeldForUse",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of long-lived assets held-for-use",
        "label": "Impairment, Long-Lived Asset, Held-for-Use",
        "documentation": "The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale)."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r58",
      "r126"
     ]
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of Long-Lived Assets",
        "label": "Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r127"
     ]
    },
    "cdxs_IncentiveStockOptionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "IncentiveStockOptionsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Incentive Stock Options",
        "label": "Incentive Stock Options [Member]",
        "documentation": "Incentive Stock Options [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations."
       }
      }
     },
     "auth_ref": [
      "r221",
      "r536"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loss before income taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r107",
      "r151",
      "r261",
      "r281",
      "r287",
      "r290",
      "r619",
      "r631",
      "r805"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile."
       }
      }
     },
     "auth_ref": [
      "r221",
      "r536"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement [Abstract]",
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]",
        "label": "Income Statement Location [Axis]",
        "documentation": "Information by location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r345",
      "r353",
      "r732"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]",
        "label": "Income Statement Location [Domain]",
        "documentation": "Location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r353",
      "r732"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority [Axis]",
        "label": "Income Tax Authority [Axis]",
        "documentation": "Information by tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority [Domain]",
        "label": "Income Tax Authority [Domain]",
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Disclosure [Abstract]",
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r222",
      "r508",
      "r514",
      "r520",
      "r527",
      "r532",
      "r537",
      "r538",
      "r539",
      "r671"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      },
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails",
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Provision for income taxes",
        "totalLabel": "Provision for income taxes",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r154",
      "r172",
      "r239",
      "r240",
      "r269",
      "r512",
      "r533",
      "r636"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Rate Reconciliation",
        "label": "Income Tax Expense (Benefit), Effective Income Tax Rate Reconciliation, Amount [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Income Taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r510",
      "r511",
      "r520",
      "r521",
      "r526",
      "r528",
      "r665"
     ]
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in valuation allowance",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r1033"
     ]
    },
    "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign operations taxed at different rates",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r1033"
     ]
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax benefit at federal statutory rate",
        "label": "Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount",
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r513"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseOther",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other nondeductible items",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses."
       }
      }
     },
     "auth_ref": [
      "r1033"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount",
        "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1033"
     ]
    },
    "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State taxes",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r1033"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationTaxCreditsResearch",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Research and development credits",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit."
       }
      }
     },
     "auth_ref": [
      "r1033"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes",
        "label": "Income Taxes Paid, Net",
        "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."
       }
      }
     },
     "auth_ref": [
      "r36"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount 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."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred revenue ($0, $0, $245 to a related party)",
        "terseLabel": "Deferred revenue",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r599",
      "r953"
     ]
    },
    "cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accrued compensation and other accrued liabilities",
        "label": "Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities",
        "documentation": "Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInFinanceReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInFinanceReceivables",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Financial assets",
        "label": "Increase (Decrease) in Finance Receivables",
        "documentation": "The increase (decrease) during the reporting period in outstanding loans including accrued interest."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "Increase (Decrease) in Inventories",
        "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."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Changes in operating assets and liabilities:",
        "label": "Increase (Decrease) in Operating Capital [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_IncreaseDecreaseInOperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "IncreaseDecreaseInOperatingLeaseRightOfUseAsset",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Additions",
        "label": "Increase (Decrease) In Operating Lease, Right-of-Use Asset",
        "documentation": "Increase (Decrease) In Operating Lease, Right-of-Use Asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherNoncurrentLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other long-term liabilities",
        "label": "Increase (Decrease) in Other Noncurrent Liabilities",
        "documentation": "Amount of increase (decrease) in noncurrent operating liabilities classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expenses and other assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IndemnificationGuaranteeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IndemnificationGuaranteeMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indemnification agreement",
        "label": "Indemnification Agreement [Member]",
        "documentation": "An agreement (contract) that contingently requires the guarantor to make payments to the guaranteed party in compensation for that party's or parties' loss or injury attributable to specified events or actions, such as a patent infringement action against an entity that relied on certain representations as to ownership rights made by a software vendor."
       }
      }
     },
     "auth_ref": [
      "r994"
     ]
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individual:",
        "label": "Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r872",
      "r881",
      "r891",
      "r908",
      "r917",
      "r921",
      "r929"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r927"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r861",
      "r933"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Adopted",
        "label": "Insider Trading Policies and Procedures Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r861",
      "r933"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted",
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r861",
      "r933"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest paid",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r214",
      "r216",
      "r217"
     ]
    },
    "us-gaap_InventoryFinishedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryFinishedGoods",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Gross",
        "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r949"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories",
        "totalLabel": "Total inventories",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r201",
      "r797",
      "r841"
     ]
    },
    "us-gaap_InventoryNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNetAbstract",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Inventory Components",
        "label": "Inventory, Net [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r156",
      "r186",
      "r200",
      "r326",
      "r327",
      "r328",
      "r601",
      "r802"
     ]
    },
    "us-gaap_InventoryRawMaterials": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryRawMaterials",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Gross",
        "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r951"
     ]
    },
    "us-gaap_InventoryWorkInProcess": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryWorkInProcess",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Work in process",
        "label": "Inventory, Work in Process, Gross",
        "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r950"
     ]
    },
    "us-gaap_InvestmentIncomeAmortizationOfDiscount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentIncomeAmortizationOfDiscount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest income from amortization of discount",
        "label": "Investment Income, Amortization of Discount",
        "documentation": "Amount of accretion of purchase discount on nonoperating securities."
       }
      }
     },
     "auth_ref": [
      "r113"
     ]
    },
    "us-gaap_InvestmentIncomeInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentIncomeInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Interest income",
        "label": "Investment Income, Interest",
        "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r264"
     ]
    },
    "us-gaap_InvestmentOwnedBalanceShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentOwnedBalanceShares",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment owned, balance (in shares)",
        "label": "Investment Owned, Balance, Shares",
        "documentation": "Number of shares of investment owned."
       }
      }
     },
     "auth_ref": [
      "r687",
      "r693",
      "r756",
      "r765",
      "r768",
      "r846"
     ]
    },
    "us-gaap_InvestmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment in Non-Marketable Equity Securities",
        "label": "Investment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for investment in financial asset."
       }
      }
     },
     "auth_ref": [
      "r634",
      "r661",
      "r662",
      "r663",
      "r664",
      "r758",
      "r759"
     ]
    },
    "us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsDebtAndEquitySecuritiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Investments, Debt and Equity Securities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecurities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investments in Non-Marketable Securities",
        "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]",
        "documentation": "The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment."
       }
      }
     },
     "auth_ref": [
      "r558"
     ]
    },
    "cdxs_LaboratoryEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "LaboratoryEquipmentMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Laboratory equipment",
        "label": "Laboratory Equipment [Member]",
        "documentation": "Laboratory Equipment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total lease cost",
        "label": "Lease, Cost",
        "documentation": "Amount of lease cost recognized by lessee for lease contract."
       }
      }
     },
     "auth_ref": [
      "r573",
      "r840"
     ]
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseCostTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease Cost",
        "label": "Lease, Cost [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1044"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leasehold improvements",
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "dei_LegalEntityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LegalEntityAxis",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Legal Entity [Axis]",
        "label": "Legal Entity [Axis]",
        "documentation": "The set of legal entities associated with a report."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease Accounting",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r572"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease renewal term",
        "label": "Lessee, Operating Lease, Lease Not yet Commenced, Renewal Term",
        "documentation": "Term of lessee's operating lease renewal for lease not yet commenced, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1043"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease term",
        "label": "Lessee, Operating Lease, Lease Not yet Commenced, Term of Contract",
        "documentation": "Term of lessee's operating lease not yet commenced, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1043"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Lease Maturity",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1045"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total minimum lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth 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)."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth 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)."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Less: imputed interest",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "cdxs_LesseeOperatingLeaseOptionToExtendNumber": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "LesseeOperatingLeaseOptionToExtendNumber",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of options to extend lease term",
        "label": "Lessee, Operating Lease, Option To Extend, Number",
        "documentation": "Lessee, Operating Lease, Option To Extend, Number"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseRenewalTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseRenewalTerm",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Renewal term",
        "label": "Lessee, Operating Lease, Renewal Term",
        "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1042"
     ]
    },
    "us-gaap_LetterOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LetterOfCreditMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Letter of Credit",
        "label": "Letter of Credit [Member]",
        "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r220",
      "r310",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r542",
      "r543",
      "r544",
      "r559",
      "r702",
      "r804",
      "r854",
      "r995",
      "r1047",
      "r1048"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and stockholders\u2019 equity",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r102",
      "r150",
      "r627",
      "r841",
      "r958",
      "r972",
      "r1040"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Liabilities and Stockholders\u2019 Equity",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r185",
      "r220",
      "r310",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r542",
      "r543",
      "r544",
      "r559",
      "r841",
      "r995",
      "r1047",
      "r1048"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable borrowing base percentage",
        "label": "Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage",
        "documentation": "Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityCurrentBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current borrowing capacity",
        "label": "Line of Credit Facility, Current Borrowing Capacity",
        "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermPurchaseCommitmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermPurchaseCommitmentLineItems",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term Purchase Commitment [Line Items]",
        "label": "Long-Term Purchase Commitment [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermPurchaseCommitmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermPurchaseCommitmentTable",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term Purchase Commitment [Table]",
        "label": "Long-Term Purchase Commitment [Table]",
        "documentation": "Schedule setting forth key provisions of an arrangement under which the entity has agreed to purchase goods or services over a period of time greater than one year or the normal operating cycle, if longer, including the item for which expenditures will be made, minimum quantities, milestones, time period and committed amount."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_LongTermUnbilledReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "LongTermUnbilledReceivablesMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-Term Unbilled Receivables",
        "label": "Long-Term Unbilled Receivables [Member]",
        "documentation": "Long-Term Unbilled Receivables"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingency Nature [Axis]",
        "label": "Loss Contingency Nature [Axis]",
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r363",
      "r364",
      "r365",
      "r368",
      "r990",
      "r991"
     ]
    },
    "us-gaap_LossContingenciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingenciesTable",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingencies [Table]",
        "label": "Loss Contingencies [Table]",
        "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations."
       }
      }
     },
     "auth_ref": [
      "r363",
      "r364",
      "r365",
      "r368",
      "r990",
      "r991"
     ]
    },
    "us-gaap_LossContingencyAccrualCarryingValueCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingencyAccrualCarryingValueCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accruals for expenses related to indemnification issues",
        "label": "Loss Contingency, Accrual, Current",
        "documentation": "Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r363"
     ]
    },
    "us-gaap_LossContingencyNatureDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingencyNatureDomain",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingency, Nature [Domain]",
        "label": "Loss Contingency, Nature [Domain]",
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability."
       }
      }
     },
     "auth_ref": [
      "r363",
      "r364",
      "r365",
      "r368",
      "r990",
      "r991"
     ]
    },
    "cdxs_MAIAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MAIAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MAI Agreement",
        "label": "MAI Agreement [Member]",
        "documentation": "MAI Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Axis]",
        "label": "Customer [Axis]"
       }
      }
     },
     "auth_ref": [
      "r296",
      "r827",
      "r1002",
      "r1060",
      "r1061"
     ]
    },
    "cdxs_MasterCollaborationResearchAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MasterCollaborationResearchAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Master Collaboration &amp; Research Agreement",
        "label": "Master Collaboration &amp; Research Agreement [Member]",
        "documentation": "Master Collaboration &amp; Research Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum",
        "label": "Maximum [Member]"
       }
      }
     },
     "auth_ref": [
      "r364",
      "r365",
      "r366",
      "r367",
      "r456",
      "r598",
      "r654",
      "r694",
      "r695",
      "r755",
      "r760",
      "r762",
      "r763",
      "r767",
      "r791",
      "r792",
      "r808",
      "r821",
      "r835",
      "r843",
      "r997",
      "r1049",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054"
     ]
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measure:",
        "label": "Measure [Axis]"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Measure Name"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "cdxs_MerckMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MerckMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Merck",
        "label": "Merck [Member]",
        "documentation": "Merck [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_MilestoneOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MilestoneOneMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone One",
        "label": "Milestone One [Member]",
        "documentation": "Milestone One"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_MilestonePaymentPerTargetGeneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MilestonePaymentPerTargetGeneMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone Payment Per Target Gene",
        "label": "Milestone Payment Per Target Gene [Member]",
        "documentation": "Milestone Payment Per Target Gene"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_MilestoneTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MilestoneTwoMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone Two",
        "label": "Milestone Two [Member]",
        "documentation": "Milestone Two"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum",
        "label": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r364",
      "r365",
      "r366",
      "r367",
      "r456",
      "r598",
      "r654",
      "r694",
      "r695",
      "r755",
      "r760",
      "r762",
      "r763",
      "r767",
      "r791",
      "r792",
      "r808",
      "r821",
      "r835",
      "r843",
      "r997",
      "r1049",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MNPI Disclosure Timed for Compensation Value",
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]"
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "cdxs_MolecularAssembliesIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "MolecularAssembliesIncMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MAI",
        "label": "Molecular Assemblies, Inc. [Member]",
        "documentation": "Molecular Assemblies, Inc."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MoneyMarketFundsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MoneyMarketFundsMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market funds",
        "label": "Money Market Funds [Member]",
        "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities."
       }
      }
     },
     "auth_ref": [
      "r1004"
     ]
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Material Terms of Trading Arrangement",
        "label": "Material Terms of Trading Arrangement [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Domain]",
        "label": "Customer [Domain]"
       }
      }
     },
     "auth_ref": [
      "r296",
      "r827",
      "r1002",
      "r1060",
      "r1061"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Named Executive Officers, Footnote",
        "label": "Named Executive Officers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "us-gaap_NatureOfOperations": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NatureOfOperations",
     "presentation": [
      "http://www.codexis.com/role/DescriptionofBusiness"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Description of Business",
        "label": "Nature of Operations [Text Block]",
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward."
       }
      }
     },
     "auth_ref": [
      "r157",
      "r173"
     ]
    },
    "cdxs_NestecLtd.NestleHealthSciencesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NestecLtd.NestleHealthSciencesMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nestec Ltd. (Nestle Health Sciences)",
        "label": "Nestec Ltd. (Nestle Health Sciences) [Member]",
        "documentation": "Nestec Ltd. (Nestle Health Sciences) [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NestleHealthScienceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NestleHealthScienceMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nestl\u00e9 Health Science",
        "label": "Nestl\u00e9 Health Science [Member]",
        "documentation": "Nestl\u00e9 Health Science"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r215"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Financing activities:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r215"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Investing activities:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r119",
      "r120"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Operating activities:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 17.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net loss",
        "terseLabel": "Net loss",
        "label": "Net Income (Loss)",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r108",
      "r120",
      "r152",
      "r183",
      "r205",
      "r206",
      "r210",
      "r220",
      "r231",
      "r233",
      "r234",
      "r235",
      "r236",
      "r239",
      "r240",
      "r246",
      "r261",
      "r281",
      "r287",
      "r290",
      "r310",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r554",
      "r559",
      "r632",
      "r724",
      "r745",
      "r746",
      "r805",
      "r852",
      "r995"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounting Pronouncements",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-GAAP Measure Description",
        "label": "Non-GAAP Measure Description [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-NEOs",
        "label": "Non-NEOs [Member]"
       }
      }
     },
     "auth_ref": [
      "r869",
      "r881",
      "r891",
      "r908",
      "r917"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r898"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount",
        "label": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r897"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO",
        "label": "Non-PEO NEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r908"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted",
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated",
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "cdxs_NonStatutoryStockOptionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NonStatutoryStockOptionsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Statutory Stock Options",
        "label": "Non-Statutory Stock Options [Member]",
        "documentation": "Non-Statutory Stock Options [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NoncashActivityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NoncashActivityAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-cash activity:",
        "label": "Noncash Activity [Abstract]",
        "documentation": "Noncash Activity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental non-cash investing and financing activities:",
        "label": "Noncash Investing and Financing Items [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noncash or part noncash acquisition, noncash financial or equity instrument consideration, shares issued (in shares)",
        "label": "Noncash or Part Noncash Acquisition, Noncash Financial or Equity Instrument Consideration, Shares Issued",
        "documentation": "The number of shares issued as [noncash or part noncash] consideration for a business or asset acquired. Noncash is defined as transactions during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r39"
     ]
    },
    "us-gaap_NoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-lived assets",
        "label": "Long-Lived Assets",
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r295"
     ]
    },
    "us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NonmonetaryTransactionGrossOperatingRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognized from transactions",
        "label": "Nonmonetary Transaction, Gross Operating Revenue Recognized",
        "documentation": "The amount of gross operating revenue recognized in a nonmonetary transaction."
       }
      }
     },
     "auth_ref": [
      "r83"
     ]
    },
    "us-gaap_NotesReceivableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NotesReceivableGross",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AccountsNotesAndLoansReceivableNetCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total financial assets",
        "label": "Financing Receivable, before Allowance for Credit Loss",
        "documentation": "Amortized cost, before allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r177",
      "r178",
      "r197",
      "r316",
      "r320",
      "r809",
      "r810",
      "r943",
      "r973"
     ]
    },
    "cdxs_NovartisMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NovartisMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Novartis",
        "label": "Novartis [Member]",
        "documentation": "Novartis [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NovelBiotherapeuticsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NovelBiotherapeuticsMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Novel Biotherapeutics",
        "label": "Novel Biotherapeutics [Member]",
        "documentation": "Novel Biotherapeutics [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NumberOfBusinessSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "NumberOfBusinessSegments",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of business segments",
        "label": "Number Of Business Segments",
        "documentation": "Number Of Business Segments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://www.codexis.com/role/DescriptionofBusinessDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of reportable segments",
        "label": "Number of Reportable Segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r965"
     ]
    },
    "cdxs_OfficeEquipmentAndFurnitureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OfficeEquipmentAndFurnitureMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Office equipment and furniture",
        "label": "Office Equipment and Furniture [Member]",
        "documentation": "Office Equipment and Furniture [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OneTimeTerminationBenefitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OneTimeTerminationBenefitsMember",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "One-time Termination Benefits",
        "label": "One-time Termination Benefits [Member]",
        "documentation": "A lump sum payment to an involuntarily terminated employee in conjunction with exit or disposal activities."
       }
      }
     },
     "auth_ref": [
      "r812",
      "r813",
      "r814",
      "r815"
     ]
    },
    "us-gaap_OperatingCostsAndExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingCostsAndExpensesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Costs and operating expenses:",
        "label": "Operating Costs and Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loss from operations",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r261",
      "r281",
      "r287",
      "r290",
      "r805"
     ]
    },
    "us-gaap_OperatingLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease cost",
        "label": "Operating Lease, Cost",
        "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."
       }
      }
     },
     "auth_ref": [
      "r574",
      "r840"
     ]
    },
    "us-gaap_OperatingLeaseImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseImpairmentLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, impairment loss",
        "negatedTerseLabel": "Impairment",
        "label": "Operating Lease, Impairment Loss",
        "documentation": "Amount of loss from impairment of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r1041"
     ]
    },
    "cdxs_OperatingLeaseInterestAccretion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OperatingLeaseInterestAccretion",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest accretion",
        "label": "Operating Lease, Interest Accretion",
        "documentation": "Operating Lease, Interest Accretion"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Leases",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease obligations",
        "periodStartLabel": "Beginning balance, lease obligations - operating leases, net",
        "periodEndLabel": "Ending balance, lease obligations - operating leases, net",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r570"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current portion of lease obligations - Operating leases",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r570"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term lease obligations - Operating leases",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r570"
     ]
    },
    "cdxs_OperatingLeaseLiabilityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OperatingLeaseLiabilityRollForward",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Lease, Liability [Roll Forward]",
        "label": "Operating Lease, Liability [Roll Forward]",
        "documentation": "Operating Lease, Liability"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Lease payments",
        "terseLabel": "Operating cash flows from operating leases",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r571",
      "r577"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets - Operating leases, net",
        "periodStartLabel": "Beginning balance, right-of-use assets - operation leases, net",
        "periodEndLabel": "Ending balance, right-of-use assets - operation leases, net",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r569"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense - right-of-use assets - operating and finance leases",
        "negatedTerseLabel": "Amortization of right-of-use assets",
        "label": "Operating Lease, Right-of-Use Asset, Periodic Reduction",
        "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r954"
     ]
    },
    "cdxs_OperatingLeaseRightOfUseAssetRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OperatingLeaseRightOfUseAssetRollForward",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Lease, Right-of-Use Asset [Roll Forward]",
        "label": "Operating Lease, Right-of-Use Asset [Roll Forward]",
        "documentation": "Operating Lease, Right-of-Use Asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Operating leases, weighted-average discount rate",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r580",
      "r840"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, weighted-average remaining lease term",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r579",
      "r840"
     ]
    },
    "cdxs_OperatingLeaseWriteOffDueToLeaseModification": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OperatingLeaseWriteOffDueToLeaseModification",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, write-off due to lease modification",
        "negatedTerseLabel": "Remeasurement due to lease modification",
        "label": "Operating Lease, Write-off Due To Lease Modification",
        "documentation": "Operating Lease, Write-off Due To Lease Modification"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OperatingLossAndTaxCreditCarryforwardsLineItems",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss and Tax Credit Carryforwards [Line Items]",
        "label": "Operating Loss and Tax Credit Carryforwards [Line Items]",
        "documentation": "[Line Items] for Operating Loss and Tax Credit Carryforwards [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_OperatingLossAndTaxCreditCarryforwardsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OperatingLossAndTaxCreditCarryforwardsTable",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss and Tax Credit Carryforwards",
        "label": "Operating Loss and Tax Credit Carryforwards [Table]",
        "documentation": "Operating Loss and Tax Credit Carryforwards [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLossCarryforwards",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses, amount",
        "label": "Operating Loss Carryforwards",
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Organization, Consolidation and Presentation of Financial Statements [Abstract]",
        "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basis of Presentation and Summary of Significant Accounting Policies",
        "label": "Organization, Consolidation, Basis of Presentation, Business Description and Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for the general note to the financial statements for the reporting entity which may include, descriptions of the basis of presentation, business description, significant accounting policies, consolidations, reclassifications, new pronouncements not yet adopted and changes in accounting principles."
       }
      }
     },
     "auth_ref": [
      "r121",
      "r122",
      "r123",
      "r141"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAccruedLiabilitiesCurrentAndNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Accrued Liabilities",
        "documentation": "Amount of expenses incurred but not yet paid classified as other."
       }
      }
     },
     "auth_ref": [
      "r87"
     ]
    },
    "us-gaap_OtherAggregatedInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAggregatedInvestmentsMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other investments in non-marketable equity securities",
        "label": "Other Security Investments [Member]",
        "documentation": "Other investments in debt and equity securities and other forms of securities that provide ownership interests."
       }
      }
     },
     "auth_ref": [
      "r689",
      "r690",
      "r764"
     ]
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets, current",
        "label": "Other Assets, Current",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r841"
     ]
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other non-current assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r191"
     ]
    },
    "us-gaap_OtherCommitment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitment",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total",
        "label": "Other Commitment",
        "documentation": "Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherCommitmentDueInNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitmentDueInNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails": {
       "parentTag": "us-gaap_OtherCommitment",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Other Commitment, to be Paid, Year One",
        "documentation": "Amount of commitment classified as other 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)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherCommitmentDueInSecondYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitmentDueInSecondYear",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails": {
       "parentTag": "us-gaap_OtherCommitment",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025 and Thereafter",
        "label": "Other Commitment, to be Paid, Year Two",
        "documentation": "Amount of commitment classified as other 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)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherCommitmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitmentsAxis",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Commitments [Axis]",
        "label": "Other Commitments [Axis]",
        "documentation": "Information by type of other commitment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherCommitmentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitmentsDomain",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Commitments [Domain]",
        "label": "Other Commitments [Domain]",
        "documentation": "Other future obligation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherCommitmentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitmentsLineItems",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Commitments [Line Items]",
        "label": "Other Commitments [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_OtherInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "OtherInformationAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other information:",
        "label": "Other Information [Abstract]",
        "documentation": "Other Information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other long-term liabilities",
        "label": "Other Liabilities, Noncurrent",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r27"
     ]
    },
    "us-gaap_OtherNoncashIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNoncashIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Equity securities earned from research and development activities ($0, ($1,245), and ($1,955) from a related party)",
        "terseLabel": "Other noncash income",
        "label": "Other Noncash Income",
        "documentation": "Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other."
       }
      }
     },
     "auth_ref": [
      "r120"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other income (expense), net ($0, $208 and $983 from a related party)",
        "verboseLabel": "Other income (expense), net",
        "label": "Other Nonoperating Income (Expense)",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r114"
     ]
    },
    "us-gaap_OtherOperatingActivitiesCashFlowStatement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherOperatingActivitiesCashFlowStatement",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other non-cash items",
        "label": "Other Operating Activities, Cash Flow Statement",
        "documentation": "Other cash or noncash adjustments to reconcile net income to cash provided by (used in) operating activities that are not separately disclosed in the statement of cash flows (for example, cash received or cash paid during the current period for miscellaneous operating activities, net change during the reporting period in other assets or other liabilities)."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Performance Measure, Amount",
        "label": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount",
        "label": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r867",
      "r879",
      "r889",
      "r915"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Amount",
        "label": "Outstanding Recovery Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r870",
      "r882",
      "r892",
      "r918"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Outstanding Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r870",
      "r882",
      "r892",
      "r918"
     ]
    },
    "us-gaap_PastDueFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PastDueFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Accounts Receivable by Aging",
        "label": "Financing Receivable, Past Due [Table Text Block]",
        "documentation": "Tabular disclosure of aging analysis for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r55",
      "r810",
      "r975"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r896"
     ]
    },
    "us-gaap_PaymentsOfFinancingCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfFinancingCosts",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Costs incurred in connection with issuance of common stock at public offering",
        "label": "Payments of Financing Costs",
        "documentation": "The cash outflow for loan and debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_PaymentsOfStockIssuanceCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfStockIssuanceCosts",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Costs incurred in connection with offering",
        "label": "Payments of Stock Issuance Costs",
        "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r213"
     ]
    },
    "us-gaap_PaymentsToAcquireOtherInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireOtherInvestments",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Investment in non-marketable securities ($0, $0, and ($7,630) in a related party)",
        "negatedTerseLabel": "Investments in non-marketable securities",
        "terseLabel": "Investments in non-marketable securities",
        "label": "Payments to Acquire Other Investments",
        "documentation": "Amount of cash outflow to acquire investments classified as other."
       }
      }
     },
     "auth_ref": [
      "r116"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchase of property and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "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."
       }
      }
     },
     "auth_ref": [
      "r117"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Issuers, Footnote",
        "label": "Peer Group Issuers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r899"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Total Shareholder Return Amount",
        "label": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r899"
     ]
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/A401kPlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "401(k) Plan",
        "label": "Retirement Benefits [Text Block]",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r437",
      "r438",
      "r439",
      "r445",
      "r446",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r834"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Actually Paid Compensation Amount",
        "label": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r898"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO",
        "label": "PEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r908"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Name",
        "label": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r901"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Total Compensation Amount",
        "label": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r897"
     ]
    },
    "cdxs_PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percent of voting interests",
        "label": "Percent Of Voting Interests Threshold To Trigger Higher Exercise Price",
        "documentation": "Percent Of Voting Interests Threshold To Trigger Higher Exercise Price"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PerformanceBasedOptionsPBOsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PerformanceBasedOptionsPBOsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PBOs",
        "label": "Performance Based Options (PBOs) [Member]",
        "documentation": "Performance Based Options (PBOs)"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PerformanceShareUnitsPSUsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PerformanceShareUnitsPSUsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance Share Units (PSUs)",
        "label": "Performance Share Units (PSUs) [Member]",
        "documentation": "Performance Share Units (PSUs)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PBOs",
        "label": "Performance Shares [Member]",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PerformanceStockUnitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PerformanceStockUnitsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PSUs",
        "label": "Performance Stock Units [Member]",
        "documentation": "Performance Stock Units"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PfizerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PfizerMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pfizer",
        "label": "Pfizer [Member]",
        "documentation": "Pfizer"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PiperSandlerCoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PiperSandlerCoMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PSC",
        "label": "Piper Sandler &amp; Co [Member]",
        "documentation": "Piper Sandler &amp; Co"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Axis]",
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1013",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Domain]",
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1013",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030"
     ]
    },
    "cdxs_PortonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "PortonMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Porton",
        "label": "Porton [Member]",
        "documentation": "Porton [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, par value (in dollars per share)",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r395"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares authorized (in shares)",
        "label": "Preferred Stock, Shares Authorized",
        "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."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r704"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares issued (in shares)",
        "label": "Preferred Stock, Shares Issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r395"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares outstanding (in shares)",
        "label": "Preferred Stock, Shares Outstanding",
        "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."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r704",
      "r722",
      "r1064",
      "r1065"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding",
        "label": "Preferred Stock, Value, Issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r624",
      "r841"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Prepaid expenses and other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid expense, current",
        "label": "Prepaid Expense, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r202",
      "r329",
      "r330",
      "r798"
     ]
    },
    "us-gaap_PrimeRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrimeRateMember",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prime Rate",
        "label": "Prime Rate [Member]",
        "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromCollaborators": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromCollaborators",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaboration payment",
        "label": "Proceeds from Collaborators",
        "documentation": "Cash received from collaborators during the current period."
       }
      }
     },
     "auth_ref": [
      "r33"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from issuance of common stock in connection with public offering",
        "label": "Proceeds from Issuance of Common Stock",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from sale of property and equipment",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r115"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Proceeds from exercises of stock options",
        "label": "Proceeds from Stock Options Exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r13"
     ]
    },
    "us-gaap_ProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Product revenue ($0, $514 and $0 from a related party)",
        "terseLabel": "Product revenue",
        "label": "Product [Member]",
        "documentation": "Article or substance produced by nature, labor or machinery."
       }
      }
     },
     "auth_ref": [
      "r825"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Axis]",
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r292",
      "r602",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r794",
      "r825",
      "r842",
      "r941",
      "r992",
      "r993",
      "r1002",
      "r1060"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Domain]",
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r292",
      "r602",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r794",
      "r825",
      "r842",
      "r941",
      "r992",
      "r993",
      "r1002",
      "r1060"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Axis]",
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisposals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentDisposals",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equipment retired during period",
        "label": "Property, Plant and Equipment, Disposals",
        "documentation": "Amount of divestiture of long-lived, physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and equipment",
        "label": "Property, Plant and Equipment, Gross",
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r125",
      "r188",
      "r630"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Line Items]",
        "label": "Property, Plant and Equipment [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Property and equipment, net",
        "totalLabel": "Property and equipment, net",
        "label": "Property, Plant and Equipment, Net",
        "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."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r620",
      "r630",
      "r841"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNetByTypeAbstract",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Net, by Type [Abstract]",
        "label": "Property, Plant and Equipment, Net, by Type [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r164",
      "r169",
      "r628"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Estimated Ranges of Useful Lives of Property and Equipment",
        "terseLabel": "Property and Equipment, Net",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Domain]",
        "label": "Long-Lived Tangible Asset [Domain]",
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated useful life",
        "label": "Property, Plant and Equipment, Useful Life",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provision (recovery) for credit losses",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r212",
      "r315"
     ]
    },
    "us-gaap_ProvisionForLoanLossesExpensed": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForLoanLossesExpensed",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Provision for credit losses",
        "label": "Financing Receivable, Credit Loss, Expense (Reversal)",
        "documentation": "Amount of credit loss expense (reversal of expense) for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r315",
      "r617"
     ]
    },
    "us-gaap_PurchaseObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PurchaseObligation",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued purchases",
        "label": "Purchase Obligation",
        "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure",
        "label": "Pay vs Performance Disclosure [Table]"
       }
      }
     },
     "auth_ref": [
      "r896"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure, Table",
        "label": "Pay vs Performance [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r896"
     ]
    },
    "cdxs_RSUsAndRSAsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RSUsAndRSAsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "RSUs and RSAs",
        "label": "RSUs And RSAs [Member]",
        "documentation": "RSUs And RSAs"
       }
      }
     },
     "auth_ref": []
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Axis]",
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r364",
      "r365",
      "r366",
      "r367",
      "r438",
      "r456",
      "r487",
      "r488",
      "r489",
      "r597",
      "r598",
      "r654",
      "r694",
      "r695",
      "r755",
      "r760",
      "r762",
      "r763",
      "r767",
      "r791",
      "r792",
      "r808",
      "r821",
      "r835",
      "r843",
      "r846",
      "r987",
      "r997",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Domain]",
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r364",
      "r365",
      "r366",
      "r367",
      "r438",
      "r456",
      "r487",
      "r488",
      "r489",
      "r597",
      "r598",
      "r654",
      "r694",
      "r695",
      "r755",
      "r760",
      "r762",
      "r763",
      "r767",
      "r791",
      "r792",
      "r808",
      "r821",
      "r835",
      "r843",
      "r846",
      "r987",
      "r997",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054"
     ]
    },
    "srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name of Property [Axis]",
        "label": "Name of Property [Axis]"
       }
      }
     },
     "auth_ref": [
      "r790",
      "r1070",
      "r1071",
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1076",
      "r1077"
     ]
    },
    "srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RealEstateAndAccumulatedDepreciationNameOfPropertyDomain",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name of Property [Domain]",
        "label": "Name of Property [Domain]"
       }
      }
     },
     "auth_ref": [
      "r790",
      "r1070",
      "r1071",
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1076",
      "r1077"
     ]
    },
    "cdxs_ReceivableFromCollaborativeArrangement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ReceivableFromCollaborativeArrangement",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone payment amount",
        "label": "Receivable From Collaborative Arrangement",
        "documentation": "Receivable From Collaborative Arrangement"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivableTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivableTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable [Domain]",
        "label": "Receivable [Domain]",
        "documentation": "Financing arrangement representing a contractual right to receive money either on demand or on fixed and determinable dates."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "us-gaap_ReceivablesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Receivables [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Assets and Allowances",
        "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Revenues by Geographical Area",
        "label": "Reconciliation of Revenue from Segments to Consolidated [Table Text Block]",
        "documentation": "Tabular disclosure of all significant reconciling items in the reconciliation of total revenues from reportable segments to the entity's consolidated revenues."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r50"
     ]
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r862",
      "r874",
      "r884",
      "r910"
     ]
    },
    "us-gaap_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party [Domain]",
        "label": "Related Party, Type [Domain]",
        "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests."
       }
      }
     },
     "auth_ref": [
      "r447",
      "r586",
      "r587",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r721",
      "r723",
      "r754"
     ]
    },
    "us-gaap_RelatedPartyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "label": "Related Party [Member]",
        "documentation": "Party related to reporting entity. Includes, but is not limited to, affiliate, entity for which investment is accounted for by equity method, trust for benefit of employees, and principal owner, management, and members of immediate family."
       }
      }
     },
     "auth_ref": [
      "r223",
      "r224",
      "r586",
      "r587",
      "r588",
      "r589",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r721",
      "r723",
      "r754"
     ]
    },
    "us-gaap_RelatedPartyTransactionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Axis]",
        "label": "Related Party Transaction [Axis]",
        "documentation": "Information by type of related party transaction."
       }
      }
     },
     "auth_ref": [
      "r586",
      "r587",
      "r1046"
     ]
    },
    "us-gaap_RelatedPartyTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Domain]",
        "label": "Related Party Transaction [Domain]",
        "documentation": "Transaction between related party."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionLineItems",
     "presentation": [
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Line Items]",
        "label": "Related Party Transaction [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r728",
      "r729",
      "r732"
     ]
    },
    "cdxs_RelatedPartyTransactionMilestonePaymentReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RelatedPartyTransactionMilestonePaymentReceived",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MAI agreement milestone payment received",
        "label": "Related Party Transaction, Milestone Payment Received",
        "documentation": "Related Party Transaction, Milestone Payment Received"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transactions [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party [Axis]",
        "label": "Related Party, Type [Axis]",
        "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests."
       }
      }
     },
     "auth_ref": [
      "r447",
      "r586",
      "r587",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r613",
      "r614",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r721",
      "r723",
      "r754",
      "r1046"
     ]
    },
    "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionsDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RelatedPartyTransactions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Related Party Transactions",
        "label": "Related Party Transactions Disclosure [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r583",
      "r584",
      "r585",
      "r587",
      "r590",
      "r672",
      "r673",
      "r674",
      "r730",
      "r731",
      "r732",
      "r751",
      "r753"
     ]
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name [Domain]",
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r225",
      "r226",
      "r381",
      "r397",
      "r589",
      "r800",
      "r801"
     ]
    },
    "us-gaap_ResearchAndDevelopmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development [Abstract]",
        "label": "Research and Development [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Arrangement, Contract to Perform for Others, Type [Axis]",
        "label": "Research and Development Arrangement, Contract to Perform for Others, Type [Axis]",
        "documentation": "Information by form of arrangement related to research and development."
       }
      }
     },
     "auth_ref": [
      "r507",
      "r1032"
     ]
    },
    "us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Arrangement, Contract to Perform for Others, Type [Domain]",
        "label": "Research and Development Arrangement, Contract to Perform for Others, Type [Domain]",
        "documentation": "Listing of significant agreements under research and development arrangements accounted for as a contract to perform research and development for others."
       }
      }
     },
     "auth_ref": [
      "r507",
      "r1032"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Research and development",
        "label": "Research and Development Expense",
        "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."
       }
      }
     },
     "auth_ref": [
      "r90",
      "r506",
      "r1055"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and development",
        "label": "Research and Development Expense [Member]",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Expenses",
        "label": "Research and Development Expense, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r505"
     ]
    },
    "cdxs_ResearchandDevelopmentRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ResearchandDevelopmentRevenueMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Research and development revenue ($0, $1,245 and $1,955 from a related party)",
        "terseLabel": "Research and development revenue",
        "label": "Research and Development Revenue [Member]",
        "documentation": "Research and Development Revenue [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date:",
        "label": "Restatement Determination Date [Axis]"
       }
      }
     },
     "auth_ref": [
      "r863",
      "r875",
      "r885",
      "r911"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date",
        "label": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r864",
      "r876",
      "r886",
      "r912"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement does not require Recovery",
        "label": "Restatement Does Not Require Recovery [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r871",
      "r883",
      "r893",
      "r919"
     ]
    },
    "us-gaap_RestrictedCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCash",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash, current",
        "label": "Restricted Cash",
        "documentation": "Amount of cash restricted as to withdrawal or usage. 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."
       }
      }
     },
     "auth_ref": [
      "r945",
      "r955",
      "r1056",
      "r1058"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashAndCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash, current and non-current",
        "label": "Restricted Cash and Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage. 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."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r145",
      "r187",
      "r218",
      "r623"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Cash and Cash Equivalents [Axis]",
        "label": "Restricted Cash and Cash Equivalents [Axis]",
        "documentation": "Information by category of cash or cash equivalent items which are restricted as to withdrawal or usage."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
      "http://www.codexis.com/role/FairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Domain]",
        "label": "Cash and Cash Equivalents [Domain]",
        "documentation": "Type of cash and cash equivalent. Cash is 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."
       }
      }
     },
     "auth_ref": [
      "r187"
     ]
    },
    "us-gaap_RestrictedCashAndInvestmentsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashAndInvestmentsNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash and investments, noncurrent",
        "label": "Restricted Cash and Investments, Noncurrent",
        "documentation": "The noncurrent cash, cash equivalents and investments that is restricted as to withdrawal or usage. Restrictions may include legally restricted deposits held as compensating balances against borrowing arrangements, contracts entered into with others, or entity statements of intention with regard to particular deposits classified as long-term; that is not expected to be released from such existing restrictions within one year of the balance sheet date or operating cycle, whichever is longer. Excludes compensating balance arrangements that are not agreements which legally restrict the use of cash amounts shown on the balance sheet. Includes noncurrent cash equivalents and investments that are similarly restricted as to withdrawal, usage or disposal."
       }
      }
     },
     "auth_ref": [
      "r777",
      "r778"
     ]
    },
    "us-gaap_RestrictedCashCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current restricted cash",
        "label": "Restricted Cash, Current",
        "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. 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."
       }
      }
     },
     "auth_ref": [
      "r945",
      "r955"
     ]
    },
    "us-gaap_RestrictedCashNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash",
        "label": "Restricted Cash, Noncurrent",
        "documentation": "Amount of cash restricted as to withdrawal or usage, classified as noncurrent. 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."
       }
      }
     },
     "auth_ref": [
      "r155",
      "r946",
      "r955"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock",
        "verboseLabel": "RSAs",
        "label": "Restricted Stock [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "RSUs",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RestructuringCharges"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Charges",
        "label": "Restructuring and Related Activities Disclosure [Text Block]",
        "documentation": "The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled."
       }
      }
     },
     "auth_ref": [
      "r349",
      "r350",
      "r352",
      "r355",
      "r360"
     ]
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring and related cost, number of positions eliminated, period percent",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated, Period Percent",
        "documentation": "The number of positions eliminated during the period as a percentage of total positions eliminated during the period in connection with the restructuring plan(s)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring charges",
        "label": "Restructuring Charges",
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r356",
      "r357",
      "r988"
     ]
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCostAndReserveAxis",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Type [Axis]",
        "label": "Restructuring Type [Axis]",
        "documentation": "Information by type of restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r352",
      "r357",
      "r358"
     ]
    },
    "us-gaap_RestructuringCostAndReserveLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCostAndReserveLineItems",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Cost and Reserve [Line Items]",
        "label": "Restructuring Cost and Reserve [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r352",
      "r353",
      "r354",
      "r357",
      "r358",
      "r359"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accumulated deficit",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r134",
      "r626",
      "r658",
      "r659",
      "r670",
      "r705",
      "r841"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Deficit",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r181",
      "r228",
      "r229",
      "r230",
      "r232",
      "r238",
      "r240",
      "r311",
      "r312",
      "r496",
      "r497",
      "r498",
      "r530",
      "r531",
      "r545",
      "r547",
      "r548",
      "r550",
      "r552",
      "r655",
      "r657",
      "r675",
      "r1064"
     ]
    },
    "cdxs_RevenueFromCollaborativeArrangementContingentAmounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueFromCollaborativeArrangementContingentAmounts",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional contingent payments",
        "label": "Revenue From Collaborative Arrangement, Contingent Amounts",
        "documentation": "Revenue From Collaborative Arrangement, Contingent Amounts"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from Contract with Customer [Abstract]",
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total revenues",
        "terseLabel": "Revenues",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "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."
       }
      }
     },
     "auth_ref": [
      "r262",
      "r263",
      "r280",
      "r285",
      "r286",
      "r292",
      "r294",
      "r296",
      "r431",
      "r433",
      "r602"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from Contract with Customer Benchmark",
        "label": "Revenue from Contract with Customer Benchmark [Member]",
        "documentation": "Revenue from satisfaction of performance obligation by transferring promised product and service to customer, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r296",
      "r938"
     ]
    },
    "cdxs_RevenueFromContractWithCustomerPaymentTerms": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueFromContractWithCustomerPaymentTerms",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment terms",
        "label": "Revenue From Contract With Customer, Payment Terms",
        "documentation": "Revenue From Contract With Customer, Payment Terms"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r793"
     ]
    },
    "cdxs_RevenueFromContractWithCustomerSettlementFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueFromContractWithCustomerSettlementFee",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from contract with customer, settlement fee",
        "label": "Revenue From Contract With Customer, Settlement Fee",
        "documentation": "Revenue From Contract With Customer, Settlement Fee"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognition"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r436"
     ]
    },
    "cdxs_RevenueRecognitionAnnualPayment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueRecognitionAnnualPayment",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognition, annual payment",
        "label": "Revenue Recognition, Annual Payment",
        "documentation": "Revenue Recognition, Annual Payment"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionContingentAnnualPaymentsTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueRecognitionContingentAnnualPaymentsTerm",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent annual payments, term",
        "label": "Revenue Recognition, Contingent Annual Payments, Term",
        "documentation": "Revenue Recognition, Contingent Annual Payments, Term"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionContingentAnnualReceivableIncrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueRecognitionContingentAnnualReceivableIncrease",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent annual receivable increase",
        "label": "Revenue Recognition, Contingent Annual Receivable Increase",
        "documentation": "Revenue Recognition, Contingent Annual Receivable Increase"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionContingentReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueRecognitionContingentReceivable",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent receivable",
        "label": "Revenue Recognition, Contingent Receivable",
        "documentation": "Revenue Recognition, Contingent Receivable"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of days for payment",
        "label": "Revenue Recognition, Milestone Revenue, Number Of Days For Payment",
        "documentation": "Revenue Recognition, Milestone Revenue, Number Of Days For Payment"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionNumberOfAnnualPayment": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RevenueRecognitionNumberOfAnnualPayment",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognition, number of annual payment",
        "label": "Revenue Recognition, Number Of Annual Payment",
        "documentation": "Revenue Recognition, Number Of Annual Payment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance obligation",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r167"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected timing of satisfaction, period",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r168"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r168"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance Obligation, Expected Timing of Satisfaction",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]",
        "documentation": "Tabular disclosure of expected timing for satisfying remaining performance obligation."
       }
      }
     },
     "auth_ref": [
      "r937"
     ]
    },
    "us-gaap_RevenuesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenuesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Revenues:",
        "terseLabel": "Revenues [Abstract]",
        "label": "Revenues [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revolving Credit Facility",
        "label": "Revolving Credit Facility [Member]",
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Lease - Right-of-use assets obtained in exchange for lease liabilities",
        "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability",
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r578",
      "r840"
     ]
    },
    "cdxs_RocheMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "RocheMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Roche",
        "label": "Roche [Member]",
        "documentation": "Roche"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RoyaltyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RoyaltyMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue sharing arrangement",
        "label": "Royalty [Member]",
        "documentation": "Money for usage-based right to asset."
       }
      }
     },
     "auth_ref": [
      "r1003"
     ]
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Adopted",
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Terminated",
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, commissions and reimbursements, percentage of gross sales price",
        "label": "Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price",
        "documentation": "Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SaleOfStockCommissionsPercentageOfGrossSalesPrice",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, commissions, percentage of gross sales price",
        "label": "Sale Of Stock, Commissions, Percentage Of Gross Sales Price",
        "documentation": "Sale Of Stock, Commissions, Percentage Of Gross Sales Price"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SaleOfStockConsiderationReceivedOnTransaction": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SaleOfStockConsiderationReceivedOnTransaction",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from public offering",
        "label": "Sale of Stock, Consideration Received on Transaction",
        "documentation": "Cash received on stock transaction after deduction of issuance costs."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockConsiderationReceivedOnTransactionGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SaleOfStockConsiderationReceivedOnTransactionGross",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross proceeds from public offering",
        "label": "Sale of Stock, Consideration Received on Transaction, Gross",
        "documentation": "Sale of Stock, Consideration Received on Transaction, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SaleOfStockPeriod",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, period",
        "label": "Sale Of Stock, Period",
        "documentation": "Sale Of Stock, Period"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SaleOfStockSecuritiesRegisteredAggregateAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, securities registered aggregate amount",
        "label": "Sale Of Stock, Securities Registered Aggregate Amount",
        "documentation": "Sale Of Stock, Securities Registered Aggregate Amount"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockValueOfSharesForIssuance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SaleOfStockValueOfSharesForIssuance",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, value of shares for issuance",
        "label": "Sale Of Stock, Value Of Shares For Issuance",
        "documentation": "Sale Of Stock, Value Of Shares For Issuance"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Benchmark",
        "label": "Revenue Benchmark [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r296",
      "r938"
     ]
    },
    "us-gaap_SalesRevenueProductLineMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SalesRevenueProductLineMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Product and Service Benchmark",
        "label": "Revenue, Product and Service Benchmark [Member]",
        "documentation": "Revenue from specified product or service, when it serves as benchmark in concentration of risk calculation. Includes, but is not limited to, revenue from contract with customer and other sources."
       }
      }
     },
     "auth_ref": [
      "r939"
     ]
    },
    "cdxs_SanCarlosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SanCarlosMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "San Carlos",
        "label": "San Carlos [Member]",
        "documentation": "San Carlos"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Accrued Liabilities",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares Not Included in Computation of Diluted Net Loss Per Share",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]",
        "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_ScheduleOfCashAndCashEquivalentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfCashAndCashEquivalentsTable",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsCashandCashEquivalentsDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Cash and Cash Equivalents [Table]",
        "label": "Schedule of Cash and Cash Equivalents [Table]",
        "documentation": "Schedule of cash and cash equivalent balances. This table excludes restricted cash balances."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfCashAndCashEquivalentsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Cash and Cash Equivalents",
        "label": "Schedule of Cash and Cash Equivalents [Table Text Block]",
        "documentation": "Tabular disclosure of the components of cash and cash equivalents."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGSKPlatformTechnologyTransferCollaborationandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPfizerEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Collaborative Arrangements and Non-collaborative Arrangement Transactions [Table]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Table]",
        "documentation": "Disclosure of information about collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r540"
     ]
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Provision for Income Taxes",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years."
       }
      }
     },
     "auth_ref": [
      "r139"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Significant Components of Deferred Tax Assets and Liabilities",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r138"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of Provision for Income Taxes Calculated at the Statutory Rate to Provision for Income Taxes",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r137"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Stock-based Compensation Expense",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Long-lived Assets by Geographical Area",
        "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]",
        "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area."
       }
      }
     },
     "auth_ref": [
      "r52"
     ]
    },
    "srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment, Name [Axis]",
        "label": "Investment, Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r307",
      "r308",
      "r309"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivableAllowanceForCreditLossesTable",
     "presentation": [
      "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofAccountsReceivablebyAgingCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Allowance for Credit Loss [Table]",
        "label": "Financing Receivable, Allowance for Credit Loss [Table]",
        "documentation": "Disclosure of information about allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r179",
      "r974"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r811",
      "r976",
      "r977",
      "r978",
      "r979",
      "r980",
      "r981",
      "r982",
      "r983",
      "r984",
      "r985",
      "r986"
     ]
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Loss Before Income Taxes, Domestic and Foreign",
        "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]",
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions."
       }
      }
     },
     "auth_ref": [
      "r959"
     ]
    },
    "us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Intangible Assets and Goodwill",
        "label": "Schedule of Intangible Assets and Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class."
       }
      }
     },
     "auth_ref": [
      "r57"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Inventory Components",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r103",
      "r104",
      "r105"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Property, Plant and Equipment [Table]",
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRelatedPartyTransactionsByRelatedPartyTable",
     "presentation": [
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Related Party Transactions, by Related Party [Table]",
        "label": "Schedule of Related Party Transactions, by Related Party [Table]",
        "documentation": "Schedule of quantitative and qualitative information pertaining to 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."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r85",
      "r728",
      "r729",
      "r732"
     ]
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRestructuringAndRelatedCostsTable",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Restructuring and Related Costs [Table]",
        "label": "Schedule of Restructuring and Related Costs [Table]",
        "documentation": "Table presenting the description of the restructuring costs, such as the expected cost; the costs incurred during the period; the cumulative costs incurred as of the balance sheet date; the income statement caption within which the restructuring charges recognized for the period are included; and the amount of and periodic changes to an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost by type of restructuring."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r352",
      "r353",
      "r354",
      "r357",
      "r358",
      "r359"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r106"
     ]
    },
    "cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Right-of-use Assets and Lease Obligations",
        "label": "Schedule Of Right-of-use Assets And Lease Obligations [Table Text Block]",
        "documentation": "Schedule Of Right-of-use Assets And Lease Obligations"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r458",
      "r460",
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, RSA Activity",
        "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r69"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, Stock Options, Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r12",
      "r69"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions",
        "label": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r136"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assumptions Used to Estimate the Fair Value of Option Grants",
        "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r136"
     ]
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, RSU Activity",
        "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfStockByClassTable",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Stock by Class [Table]",
        "label": "Schedule of Stock by Class [Table]",
        "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r62",
      "r63",
      "r64",
      "r65",
      "r66",
      "r67",
      "r131",
      "r133",
      "r134",
      "r193",
      "r194",
      "r195",
      "r255",
      "r395",
      "r396",
      "r397",
      "r399",
      "r402",
      "r408",
      "r410",
      "r666",
      "r667",
      "r668",
      "r669",
      "r821",
      "r936",
      "r956"
     ]
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of the Beginning and Ending Amount of Unrecognized Tax Benefits",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r839",
      "r1034"
     ]
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Customers That Contributed 10% or More of Total Accounts Receivable",
        "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]",
        "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r42",
      "r44",
      "r45",
      "r79",
      "r144"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r855"
     ]
    },
    "us-gaap_SecurityDeposit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SecurityDeposit",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security deposit",
        "label": "Security Deposit",
        "documentation": "The amount of an asset, typically cash, provided to a counterparty to provide certain assurance of performance by the entity pursuant to the terms of a written or oral agreement, such as a lease."
       }
      }
     },
     "auth_ref": [
      "r946"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "us-gaap_SecurityOwnedNotReadilyMarketableAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SecurityOwnedNotReadilyMarketableAxis",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Owned Not Readily Marketable [Axis]",
        "label": "Security Owned Not Readily Marketable [Axis]",
        "documentation": "Information by name of not readily marketable security."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "us-gaap_SecurityOwnedNotReadilyMarketableNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SecurityOwnedNotReadilyMarketableNameDomain",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Owned Not Readily Marketable, Name [Domain]",
        "label": "Security Owned Not Readily Marketable, Name [Domain]",
        "documentation": "Name of the security category or actual security title."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Domain]",
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r258",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r290",
      "r296",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r354",
      "r359",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r811",
      "r941",
      "r1060"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Domain]",
        "label": "Geographical [Domain]"
       }
      }
     },
     "auth_ref": [
      "r294",
      "r295",
      "r688",
      "r691",
      "r692",
      "r757",
      "r761",
      "r766",
      "r769",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r795",
      "r826",
      "r846",
      "r1002",
      "r1060"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting [Abstract]",
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Segment, Geographical and Other Revenue Information",
        "label": "Segment Reporting Disclosure [Text Block]",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r273",
      "r284",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r296"
     ]
    },
    "us-gaap_SegmentReportingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting",
        "label": "Segment Reporting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r294",
      "r806"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general and administrative",
        "label": "Selling, General and Administrative Expense",
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpensesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingGeneralAndAdministrativeExpensesMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general and administrative",
        "label": "Selling, General and Administrative Expenses [Member]",
        "documentation": "Primary financial statement caption encompassing selling, general and administrative expense."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SeqWellMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SeqWellMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "seqWell",
        "label": "seqWell [Member]",
        "documentation": "seqWell"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SeriesAAndBPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SeriesAAndBPreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series A and B Preferred Stock",
        "label": "Series A And B Preferred Stock [Member]",
        "documentation": "Series A And B Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SeriesAPreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series A Preferred Stock",
        "label": "Series A Preferred Stock [Member]",
        "documentation": "Series A preferred stock."
       }
      }
     },
     "auth_ref": [
      "r947",
      "r948",
      "r998"
     ]
    },
    "cdxs_SeriesB2PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SeriesB2PreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series B-2 Preferred Stock",
        "label": "Series B-2 Preferred Stock [Member]",
        "documentation": "Series B-2 Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SeriesBPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SeriesBPreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series B Preferred Stock",
        "label": "Series B Preferred Stock [Member]",
        "documentation": "Series B preferred stock."
       }
      }
     },
     "auth_ref": [
      "r947",
      "r948",
      "r998"
     ]
    },
    "cdxs_SeriesC1PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SeriesC1PreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series C-1 Preferred Stock",
        "label": "Series C-1 Preferred Stock [Member]",
        "documentation": "Series C-1 Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SeriesCAndC1PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SeriesCAndC1PreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series C And C-1 Preferred Stock",
        "label": "Series C And C-1 Preferred Stock [Member]",
        "documentation": "Series C And C-1 Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "verboseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period of units granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r836"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Forfeited/Expired (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r479"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited/Expired (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r479"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r477"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r477"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Non-vested, beginning of period (in shares)",
        "periodEndLabel": "Non-vested, end of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "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."
       }
      }
     },
     "auth_ref": [
      "r474",
      "r475"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Non-vested, beginning of period (in dollars per share)",
        "periodEndLabel": "Non-vested, end of period (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r474",
      "r475"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant Date Fair Value Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other (in shares)",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other (in dollars per share)",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period, Weighted Average Grant Date Fair Value",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period, Weighted Average Grant Date Fair Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Vested (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r478"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r478"
     ]
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration period of options upon employee's termination of service",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected dividend yield",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term."
       }
      }
     },
     "auth_ref": [
      "r488"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Volatility",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r487"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Risk-free interest rate",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r489"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r458",
      "r460",
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Exercised (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised",
        "documentation": "Number of non-option equity instruments exercised by participants."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment ward, number of additional shares authorized (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized",
        "documentation": "Number of additional shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of shares authorized (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r838"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total shares remaining available for issuance (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "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."
       }
      }
     },
     "auth_ref": [
      "r68"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Disclosures",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "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."
       }
      }
     },
     "auth_ref": [
      "r468"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "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."
       }
      }
     },
     "auth_ref": [
      "r468"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value of options exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r481"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Forfeited/Expired (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period",
        "documentation": "For presentations that combine terminations, 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 or that expired."
       }
      }
     },
     "auth_ref": [
      "r1011"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited/Expired (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price of options that were either forfeited or expired."
       }
      }
     },
     "auth_ref": [
      "r1011"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r470"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average grant date fair value (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r480"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value, outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r68"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period (in shares)",
        "periodEndLabel": "Outstanding, end of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r466",
      "r467"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period (in dollars per share)",
        "periodEndLabel": "Outstanding, end of period (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r466",
      "r467"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable and Expected to Vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value, options vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r482"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested and expected to vest (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r482"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Options vested and expected to vest (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r482"
     ]
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, performance goals achieved, superior level, shares eligible to vest, multiplier",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase price of common stock when voting percent is above minimum threshold",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, consecutive offering period",
        "label": "Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period",
        "documentation": "Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Award [Domain]",
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r471"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r470"
     ]
    },
    "us-gaap_ShareBasedCompensationAwardTrancheOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationAwardTrancheOneMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tranche One",
        "label": "Share-Based Payment Arrangement, Tranche One [Member]",
        "documentation": "First portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationAwardTrancheTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationAwardTrancheTwoMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tranche Two",
        "label": "Share-Based Payment Arrangement, Tranche Two [Member]",
        "documentation": "Second portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r465",
      "r484",
      "r485",
      "r486",
      "r487",
      "r490",
      "r499",
      "r500",
      "r501",
      "r502"
     ]
    },
    "us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation, Performance Shares Award Outstanding Activity",
        "label": "Share-Based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_ShareBasedPaymentArrangementEmployeeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedPaymentArrangementEmployeeMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee",
        "label": "Share-Based Payment Arrangement, Employee [Member]",
        "documentation": "Recipient, of award granted under share-based payment arrangement, over whom grantor exercises or has right to exercise sufficient control to establish employer-employee relationship based on law of pertinent jurisdiction. Includes, but is not limited to, nonemployee director treated as employee when acting as member of board of directors, if elected by grantor's shareholders or appointed to board position to be filled by shareholder election when existing term expires."
       }
      }
     },
     "auth_ref": [
      "r460",
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "us-gaap_ShareBasedPaymentArrangementNonemployeeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedPaymentArrangementNonemployeeMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Nonemployee",
        "terseLabel": "Nonemployee Awards",
        "label": "Share-Based Payment Arrangement, Nonemployee [Member]",
        "documentation": "Recipient, of award granted under share-based payment arrangement, over whom grantor does not exercise nor has right to exercise sufficient control to establish employer-employee relationship based on law of pertinent jurisdiction. Excludes nonemployee director treated as employee when acting as member of board of directors, if elected by grantor's shareholders or appointed to board position to be filled by shareholder election when existing term expires."
       }
      }
     },
     "auth_ref": [
      "r458",
      "r462",
      "r463",
      "r464",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award vesting rights percentage",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage",
        "documentation": "Percentage of vesting of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1005"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity instruments other than options, aggregate intrinsic value, vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested",
        "documentation": "Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period",
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r837"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected life (years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r486"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value, exercisable options",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value",
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable."
       }
      }
     },
     "auth_ref": [
      "r68"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining contractual terms, exercisable options",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r68"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining contractual terms",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r135"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining contractual terms, vested and expected to vest options",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r482"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Option price as a percent of common stock",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent",
        "documentation": "Purchase price of common stock expressed as a percentage of its fair value."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated performance goal achievement rate",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, maximum employee subscription amount",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised (in dollars per share)",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Exercised, Weighted Average Grant Date Fair Value",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Exercised, Weighted Average Grant Date Fair Value"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, number of installments",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Threshold level multiplier",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance at beginning of period (in shares)",
        "periodEndLabel": "Balance at end of period (in shares)",
        "label": "Shares, Outstanding",
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Taxes paid related to net share settlement of equity awards (in shares)",
        "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation",
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShippingAndDistributionCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShippingAndDistributionCost",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shipping and distribution cost",
        "label": "Shipping And Distribution Cost",
        "documentation": "Shipping And Distribution Cost"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShortTermLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term lease costs",
        "label": "Short-Term Lease, Cost",
        "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less."
       }
      }
     },
     "auth_ref": [
      "r575",
      "r840"
     ]
    },
    "cdxs_ShortTermUnbilledReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "ShortTermUnbilledReceivablesMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-Term Unbilled Receivables",
        "label": "Short-Term Unbilled Receivables [Member]",
        "documentation": "Short-Term Unbilled Receivables"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SitagliptinEnzymeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SitagliptinEnzymeMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sitagliptin Enzyme",
        "label": "Sitagliptin Enzyme [Member]",
        "documentation": "Sitagliptin Enzyme"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StateAndLocalJurisdictionMember",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "State and Local Jurisdiction [Member]",
        "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Axis]",
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r182",
      "r258",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r290",
      "r296",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r346",
      "r354",
      "r359",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r811",
      "r941",
      "r1060"
     ]
    },
    "us-gaap_StatementClassOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementClassOfStockAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMasterCollaborationandResearchAgreementStockPurchaseAgreementandEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RelatedPartyTransactionsDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Axis]",
        "label": "Class of Stock [Axis]",
        "documentation": "Information by the different classes of stock of the entity."
       }
      }
     },
     "auth_ref": [
      "r176",
      "r193",
      "r194",
      "r195",
      "r220",
      "r244",
      "r245",
      "r247",
      "r249",
      "r255",
      "r256",
      "r310",
      "r369",
      "r371",
      "r372",
      "r373",
      "r376",
      "r377",
      "r395",
      "r396",
      "r399",
      "r402",
      "r410",
      "r559",
      "r666",
      "r667",
      "r668",
      "r669",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r704",
      "r725",
      "r747",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r936",
      "r956",
      "r963"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components [Axis]",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r30",
      "r181",
      "r208",
      "r209",
      "r210",
      "r228",
      "r229",
      "r230",
      "r232",
      "r238",
      "r240",
      "r254",
      "r311",
      "r312",
      "r412",
      "r496",
      "r497",
      "r498",
      "r530",
      "r531",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r552",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r582",
      "r655",
      "r656",
      "r657",
      "r675",
      "r747"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Axis]",
        "label": "Geographical [Axis]"
       }
      }
     },
     "auth_ref": [
      "r294",
      "r295",
      "r688",
      "r691",
      "r692",
      "r757",
      "r761",
      "r766",
      "r769",
      "r776",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r795",
      "r826",
      "r846",
      "r1002",
      "r1060"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "label": "Statement [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r254",
      "r602",
      "r661",
      "r686",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r704",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r723",
      "r726",
      "r727",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r747",
      "r847"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Cash Flows [Abstract]",
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Financial Position [Abstract]",
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Stockholders' Equity [Abstract]",
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementTable",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r254",
      "r602",
      "r661",
      "r686",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r704",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r723",
      "r726",
      "r727",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r747",
      "r847"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Price or TSR Estimation Method",
        "label": "Stock Price or TSR Estimation Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r866",
      "r878",
      "r888",
      "r914"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockCompensationPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockCompensationPlanMember",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares issuable under the Equity Incentive Plans and ESPP",
        "label": "Share-Based Payment Arrangement [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r964"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesIssuedForServices": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesIssuedForServices",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock issued during period, shares, issued for services (in shares)",
        "label": "Stock Issued During Period, Shares, Issued for Services",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock, net of issuance costs (in shares)",
        "label": "Stock Issued During Period, Shares, New Issues",
        "documentation": "Number of new stock issued during the period."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r96",
      "r97",
      "r134",
      "r666",
      "r747",
      "r771"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesOther": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesOther",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Release of stock awards (in shares)",
        "label": "Stock Issued During Period, Shares, Other",
        "documentation": "Number of shares of stock issued attributable to transactions classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise of stock options (in shares)",
        "negatedLabel": "Exercised (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r96",
      "r97",
      "r134",
      "r471"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock, net of issuance costs",
        "label": "Stock Issued During Period, Value, New Issues",
        "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r96",
      "r97",
      "r134",
      "r675",
      "r747",
      "r771",
      "r853"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise of stock options",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r30",
      "r134"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total stockholders\u2019 equity",
        "periodStartLabel": "Balance at beginning of period",
        "periodEndLabel": "Balance at end of period",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r100",
      "r101",
      "r124",
      "r706",
      "r722",
      "r748",
      "r749",
      "r841",
      "r854",
      "r958",
      "r972",
      "r1040",
      "r1064"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stockholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CapitalStock"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital Stock",
        "label": "Equity [Text Block]",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r130",
      "r219",
      "r394",
      "r396",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r406",
      "r407",
      "r409",
      "r412",
      "r551",
      "r750",
      "r752",
      "r775"
     ]
    },
    "cdxs_StrategicCollaborationAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "StrategicCollaborationAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Strategic Collaboration Agreement",
        "label": "Strategic Collaboration Agreement [Member]",
        "documentation": "Strategic Collaboration Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Line Items]",
        "label": "Subsequent Event [Line Items]",
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r592"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r592"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Table]",
        "label": "Subsequent Event [Table]",
        "documentation": "Discloses pertinent information about one or more 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."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r592"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Axis]",
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r592"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsLicenseAgreementDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Domain]",
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r592"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events [Abstract]",
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events",
        "label": "Subsequent Events [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r591",
      "r593"
     ]
    },
    "us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SummaryOfOperatingLossCarryforwardsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Federal, State and Foreign NOL Carryforwards and Federal Research and Development Tax Credits",
        "label": "Summary of Operating Loss Carryforwards [Table Text Block]",
        "documentation": "Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization."
       }
      }
     },
     "auth_ref": [
      "r75"
     ]
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Details",
        "label": "Supplemental Balance Sheet Disclosures [Text Block]",
        "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity."
       }
      }
     },
     "auth_ref": [
      "r944"
     ]
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental disclosure of cash flow information:",
        "label": "Supplemental Cash Flow Information [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SupplyAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "SupplyAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supply Agreement",
        "label": "Supply Agreement [Member]",
        "documentation": "Supply Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplyCommitmentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplyCommitmentTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Supply Commitment",
        "label": "Supply Commitment [Table Text Block]",
        "documentation": "Tabular disclosure of arrangements in which the entity has committed resources to supply goods or services to a customer. May include identification of the goods or services to be furnished, identity of the purchasing party, pricing, effects on pricing for failing to deliver the [minimum] quantities required to be furnished, cancellation rights, and termination provisions."
       }
      }
     },
     "auth_ref": [
      "r93"
     ]
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tabular List, Table",
        "label": "Tabular List [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r907"
     ]
    },
    "cdxs_TakedaPharmaceuticalCoLtdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TakedaPharmaceuticalCoLtdMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Takeda",
        "label": "Takeda Pharmaceutical Co. Ltd. [Member]",
        "documentation": "Takeda Pharmaceutical Co. Ltd."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TateLyleMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TateLyleMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tate &amp; Lyle",
        "label": "Tate &amp; Lyle [Member]",
        "documentation": "Tate &amp; Lyle [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxCreditCarryforwardAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxCreditCarryforwardAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax credits, amount",
        "label": "Tax Credit Carryforward, Amount",
        "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "cdxs_TechnologyTransferCollaborationandLicenseAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TechnologyTransferCollaborationandLicenseAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Technology Transfer and License Agreement",
        "label": "Technology Transfer, Collaboration and License Agreement [Member]",
        "documentation": "Technology Transfer, Collaboration and License Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TermLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TermLoanMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Loan",
        "label": "Term Loan [Member]",
        "documentation": "Term Loan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TermLoansFirstTrancheMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TermLoansFirstTrancheMember",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Loans - First Tranche",
        "label": "Term Loans - First Tranche [Member]",
        "documentation": "Term Loans - First Tranche"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TermLoansMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TermLoansMember",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Loans",
        "label": "Term Loans [Member]",
        "documentation": "Term Loans"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TermLoansSecondTrancheMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TermLoansSecondTrancheMember",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Loans - Second Tranche",
        "label": "Term Loans - Second Tranche [Member]",
        "documentation": "Term Loans - Second Tranche"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TermOfCollaborativeResearchAndDevelopmentAgreement",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term of collaborative research and development agreement",
        "label": "Term of Collaborative Research and Development Agreement",
        "documentation": "Term of collaborative research and development agreement."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Amount",
        "label": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r899"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Vs Peer Group",
        "label": "Total Shareholder Return Vs Peer Group [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r906"
     ]
    },
    "us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled Receivable",
        "label": "Trade and Other Accounts Receivable, Unbilled Receivables, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for treatment of receivables that are billable but have not been billed as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r297"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangement:",
        "label": "Trading Arrangement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r927"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangements, by Individual",
        "label": "Trading Arrangements, by Individual [Table]"
       }
      }
     },
     "auth_ref": [
      "r929"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adoption Date",
        "label": "Trading Arrangement Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r930"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arrangement Duration",
        "label": "Trading Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r931"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Trading Arrangement, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r929"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title",
        "label": "Trading Arrangement, Individual Title"
       }
      }
     },
     "auth_ref": [
      "r929"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Available",
        "label": "Trading Arrangement, Securities Aggregate Available Amount"
       }
      }
     },
     "auth_ref": [
      "r932"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Termination Date",
        "label": "Trading Arrangement Termination Date"
       }
      }
     },
     "auth_ref": [
      "r930"
     ]
    },
    "cdxs_TwoCustomersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "TwoCustomersMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Two Customers",
        "label": "Two Customers [Member]",
        "documentation": "Two Customers"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfArrangementAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfArrangementAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsAcquisitionAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsCommercialAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsEnzymeSupplyAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsGlobalDevelopmentOptionandLicenseAgreementandStrategicCollaborationAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckPlatformTechnologyTransferandLicenseAgreementDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsMerckSitagliptinCatalystSupplyAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Type of Arrangement and Non-arrangement Transactions [Axis]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]",
        "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r540"
     ]
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfRestructuringDomain",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Type of Restructuring [Domain]",
        "label": "Type of Restructuring [Domain]",
        "documentation": "Identification of the types of restructuring costs."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r352",
      "r357",
      "r358"
     ]
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "US",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States",
        "label": "UNITED STATES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnbilledContractsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnbilledContractsReceivable",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables",
        "label": "Unbilled Contracts Receivable",
        "documentation": "Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r600"
     ]
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnbilledReceivablesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables",
        "label": "Unbilled Receivables, Current",
        "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnbilledReceivablesNotBillableAtBalanceSheetDate",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables, not billable",
        "label": "Unbilled Receivables, Not Billable",
        "documentation": "Amount of unbilled receivables under long-term contracts that have not been billed and were not billable."
       }
      }
     },
     "auth_ref": [
      "r153",
      "r198"
     ]
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Security Market Price Change",
        "label": "Underlying Security Market Price Change, Percent"
       }
      }
     },
     "auth_ref": [
      "r926"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance at beginning of year",
        "periodEndLabel": "Balance at end of year",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r509",
      "r516"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reductions to tax position of prior years",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r517"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and penalties recognized on the balance sheet",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r515"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and penalties recognize in income tax expense",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense",
        "documentation": "Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r515"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions based on tax positions related to current year",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return."
       }
      }
     },
     "auth_ref": [
      "r518"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions to tax position of prior years",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r517"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized tax benefits that would impact effective tax rate",
        "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate",
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate."
       }
      }
     },
     "auth_ref": [
      "r519"
     ]
    },
    "cdxs_UpFrontPaymentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20231231",
     "localname": "UpFrontPaymentMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsStrategicCollaborationandLicenseAgreementDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Up-front Payment",
        "label": "Up-front Payment [Member]",
        "documentation": "Up-front Payment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Use of Estimates",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r47",
      "r48",
      "r160",
      "r162",
      "r165",
      "r166"
     ]
    },
    "us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowanceDeferredTaxAssetChangeInAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (decrease) in deferred tax asset valuation allowance",
        "label": "Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount",
        "documentation": "Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset."
       }
      }
     },
     "auth_ref": [
      "r522"
     ]
    },
    "us-gaap_ValuationAllowanceLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowanceLineItems",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes [Line Items]",
        "label": "Valuation Allowance [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ValuationAllowanceTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowanceTable",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes [Table]",
        "label": "Valuation Allowance [Table]",
        "documentation": "A listing of an entity's valuation allowances to reduce deferred tax assets to amounts which it is more likely than not will not be realized, including a description of the deferred tax assets for which the valuation allowance has been recorded and the amount of the valuation allowance."
       }
      }
     },
     "auth_ref": [
      "r74"
     ]
    },
    "us-gaap_VariableLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable lease, cost",
        "label": "Variable Lease, Cost",
        "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases."
       }
      }
     },
     "auth_ref": [
      "r576",
      "r840"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Rate [Axis]",
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.codexis.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Rate [Domain]",
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VestingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VestingAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting [Axis]",
        "label": "Vesting [Axis]",
        "documentation": "Information by vesting schedule of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1013",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030"
     ]
    },
    "us-gaap_VestingDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VestingDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting [Domain]",
        "label": "Vesting [Domain]",
        "documentation": "Vesting schedule of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1013",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average common stock shares used in computing net loss per share, diluted (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "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."
       }
      }
     },
     "auth_ref": [
      "r243",
      "r249"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Weighted average common stock shares used in computing net loss per share, basic (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "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."
       }
      }
     },
     "auth_ref": [
      "r242",
      "r249"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482338/360-10-05-4"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "SubTopic": "20",
   "Topic": "940",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-1"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(2)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Subparagraph": "(c)",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "60",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482053/820-10-60-1"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.20)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.21)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.22(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.22)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.24)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.25)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.3,4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-4"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-1"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-5"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-16"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-21"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7A"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-9"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482130/360-10-45-4"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "480",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(CFRR 211.02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480244/480-10-S99-1"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481142/505-10-45-2"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-10"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-3"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-4"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-5"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-8"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-12"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-13"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-3"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-3"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-8"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "820",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2"
  },
  "r82": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "845",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482864/845-10-50-1"
  },
  "r84": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r85": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3"
  },
  "r86": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "940",
   "SubTopic": "820",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481753/940-820-50-1"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.17)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "825",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480981/942-825-50-1"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "985",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481283/985-20-50-1"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r102": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r103": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r104": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.7(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//235/tableOfContent"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "250",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//250/tableOfContent"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//275/tableOfContent"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-2"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-2"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.CC)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480091/360-10-S99-2"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//440/tableOfContent"
  },
  "r129": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481284/470-20-25-10"
  },
  "r130": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//505/tableOfContent"
  },
  "r131": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6"
  },
  "r132": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-7"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r136": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r138": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r139": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r140": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r141": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//810/tableOfContent"
  },
  "r142": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "820",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//820/tableOfContent"
  },
  "r143": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r144": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21"
  },
  "r145": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r146": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r147": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r148": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r149": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r150": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r151": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r152": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r153": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-5"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482659/740-20-45-2"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "SubTopic": "210",
   "Topic": "954",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480632/954-210-45-5"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482989/270-10-45-6"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "808",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1"
  },
  "r159": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483406/720-35-50-1"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1"
  },
  "r161": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "808",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-1"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r168": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r169": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-6"
  },
  "r170": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7A"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r173": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//275/tableOfContent"
  },
  "r174": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//606/tableOfContent"
  },
  "r175": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "808",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//808/tableOfContent"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r178": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r179": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(c)",
   "Publisher": "SEC"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "c",
   "Publisher": "SEC"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-1"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-7"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-5"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-1"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-17"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-10"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-16"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-2"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-3"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-7"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-15"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-1"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482987/272-10-50-1"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482987/272-10-50-3"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//280/tableOfContent"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-15"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-25"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-25"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-26"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-34"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-42"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//310/tableOfContent"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-4"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-42"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "44",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-44"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-11"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-14"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-20"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-21"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-8"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479130/326-30-45-1"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-7"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-9"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//330/tableOfContent"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483080/330-10-50-1"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483080/330-10-50-4"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482955/340-10-05-5"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483032/340-10-45-1"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//350-20/tableOfContent"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-2"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "410",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481999/410-20-25-4"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "410",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481850/410-20-50-1"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//420/tableOfContent"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-1"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-1"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-3"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-16"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-16"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-3"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-17"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-19"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//715/tableOfContent"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480126/715-20-S99-2"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480266/715-60-50-3"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480794/715-70-50-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-1D"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-2"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-3"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483406/720-35-50-1"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483044/730-10-05-1"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482916/730-10-50-1"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483041/730-20-50-1"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//740/tableOfContent"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-10B"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-25"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-28"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-10"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-17"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-19"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-20"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "808",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-6"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482477/820-10-65-13"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//830/tableOfContent"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-17"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-1"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-2"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482900/835-30-50-1"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-1"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//850/tableOfContent"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-2"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-6"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//855/tableOfContent"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-11"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-2"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "330",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482105/912-330-50-1"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479941/924-10-S99-1"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "35A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "35A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(d)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r664": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-11"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-2"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-5"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-6"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-2"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-27"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480737/946-205-50-7"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-2"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483580/946-220-50-3"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(c)(2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(c)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "12",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-12"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "19",
   "Subparagraph": "(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-19"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-1"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r774": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-6"
  },
  "r776": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1"
  },
  "r777": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480632/954-210-45-4"
  },
  "r778": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480602/954-210-50-2"
  },
  "r779": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481027/954-310-50-2"
  },
  "r780": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1"
  },
  "r781": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(b)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-16"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-21"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-22"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52"
  },
  "r804": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r805": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31"
  },
  "r806": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482785/280-10-55-47"
  },
  "r807": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9"
  },
  "r808": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A"
  },
  "r809": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "79",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-79"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "80",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-80"
  },
  "r811": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24"
  },
  "r812": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r813": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r814": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r815": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r816": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r817": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B"
  },
  "r818": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C"
  },
  "r819": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69E"
  },
  "r820": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69F"
  },
  "r821": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r822": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r823": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r824": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r826": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r827": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r828": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r829": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r830": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "217",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482663/740-10-55-217"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481372/852-10-55-10"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r852": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r857": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-23"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii",
   "Section": "6"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r879": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r885": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r887": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r888": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r890": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r896": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r897": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r898": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r899": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r901": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r902": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r903": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r904": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r905": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r906": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r907": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r908": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r910": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r911": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r912": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r913": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r914": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r915": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r916": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r917": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r918": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r921": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r922": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r923": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r924": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r925": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r926": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r927": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r928": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r931": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r932": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r933": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r934": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r935": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r936": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-3"
  },
  "r937": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r938": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r939": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r940": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B"
  },
  "r941": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4H",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H"
  },
  "r942": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r943": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r944": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//210/tableOfContent"
  },
  "r945": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r946": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r947": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r948": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r949": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r950": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r951": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r952": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r953": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r954": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r955": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8"
  },
  "r956": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r957": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r958": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r959": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r960": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23"
  },
  "r961": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24"
  },
  "r962": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5"
  },
  "r963": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "55",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-55"
  },
  "r964": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r965": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18"
  },
  "r966": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1"
  },
  "r967": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r968": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r969": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r970": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r971": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-4"
  },
  "r972": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r973": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1"
  },
  "r974": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r975": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-14"
  },
  "r976": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r977": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r978": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r979": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r980": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r981": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r982": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r983": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r984": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r985": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A"
  },
  "r986": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r987": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10"
  },
  "r988": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482047/420-10-45-3"
  },
  "r989": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//450/tableOfContent"
  },
  "r990": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r991": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r992": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r993": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r994": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-3"
  },
  "r995": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r996": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r997": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r998": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2"
  },
  "r999": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-3"
  },
  "r1001": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r1002": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5"
  },
  "r1003": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1005": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1006": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1007": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1010": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1011": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1012": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1013": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1014": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1015": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1019": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1020": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1024": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1025": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1026": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1027": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1028": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1029": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1030": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1031": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1032": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "730",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483041/730-20-50-1"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-6"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479365/842-20-25-6"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7"
  },
  "r1048": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7"
  },
  "r1049": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r1051": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "912",
   "SubTopic": "730",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482517/912-730-25-1"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479432/944-30-50-2B"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r1062": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r1064": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r1066": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r1067": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r1070": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1074": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r1077": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>127
<FILENAME>0001200375-24-000009-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001200375-24-000009-xbrl.zip
M4$L#!!0    ( *:$7%@RQ=L^*R$# +8E(@ 1    8V1X<RTR,#(S,3(S,2YH
M=&WLO6ESVTC2+OK]_14(S9P9.X*4N6GM'I^@9=FM:5O2%>7IF7OCQHDB4!1K
M# (T%DGL7W\RLZJP<)$H"Q0*%":FNT422U5F5E;F4[G\^K_O)ZYURX-0^-X_
M_M[>;?W=XI[M.\*[^<??^X.3L[.__^_W__/K.(++X%(O/+YWA??]'SOC*)H>
MOWMW=W>W>]?=]8.;=^VCHZ-W].N.NC2.@MR%]\/ I4L[K=;1._A57X@_B)67
M=M\)+XR89W-]O</3J^G*D-N[-_[M._@![NAT]87B/FK";[E'ZVN%!V/E__YP
M]>5=%# O'/G!A$5 !WA">Z_9.FQVV_HYW':6OQ!^R+UP@3CYB>#/0Q8F$[&=
M^S!W.9">WXL0_CNAY[8[Z2#"($JN';%P2(^%+W,#L/W8BX+9\M&J'^=)M'S
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
M2 Y+<MTC6%K.0P&;U*KNBD^8P##N2QZ,_& "BY5?#%UQ0Q;+Z?V48TSGM9C
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
M1\*3P1)7,2SX7FO/4DHBHV5 7^P^;R<+< (F4?$_/-RR&27ACELUJZ="XG^
MO/^.XCY0TGY&PIX8&$?@-OC%6FG&T2Q) 'G,,MI^!>CY$7SS(Q9H(8%A-,(
MQ8!"B$-KNF@Q8;"L'Z2?*&@VM9IJ+6CZC&HMB%KP7[X;>Q$+**PV")/DL%:M
M_8K0?DFPA3G:[V[,*;YI3@6^:;^UQF#GH=YS+.:ZB?++:L4A5Q? ,_.*,*<
M,Q9A@K:!4L2?,6O <JB8)%TZ#;C-"9EL=RS*9PJM-_"\$?P3QO;8"L<^AN7J
MB/QHS*+YL=^Q<%%WT\UJ#F_!A/4<ZTU'SG'(.3 C'OX7P0*XGBZ%FW 4ZCF8
M2A+2(&B0+(RLHY;EL%FX;9K]J1I#I:?)[!J$MR(6Q:GB:*N]XM5ICNK/"A7^
M5DUHV1;_:A4\*C[0>1,11: E"2@-? ^GXLXL+&$^L\X0V60V1;I\9!&363IS
M^C]]1M8JSF("5_PF=F74Y*!Y;;U!1/'@%ZO3[>PFJ(&@?(LIYEML>C>0 TZ4
M/ _?OG85GN$SLEEI]$2%=VH57M59O5X5#H;'UJMPPFE=%H US6P;5'C 4 ^C
M4D.0UEOZK05KN+GTAW "NA_>$FA3#J@Y 1K,&FC0@PF,IS,WUDW@WT5C_=LN
M&/><!D:(,&7+4KCDSLJ![2Q\MT/F^,[J :@+5HQA)T&AVYUALZ.]CJRK\93@
MA@T%VI>Y;+XLY\4K4 X_D7I137#S9_*F@Q.0A1L_F"TY8J>+2$IL=5%ZVM[I
M[KSO+PK3BR41KA5-2>+YXKSH+#,FT@2*[5$IY\NVD5JAO%Z%,L#=^T,<PH/"
M\-%J8[V=]X-5VWVM28K3)$L%LMC+7H=XGRK;\S.9GB?:\GRDFE!G;^?]Z7*K
M]34XU)OUU$H]2QZA@[7"(<$4FS6/FA&&(_ -ME \<XY\*PZE0P63I[)\R^H0
M@4.&[W)G^/([ :^&UUH>3,U'A7HK0MJ252]/M/RQ0@1>C*6''18XH87YH,*9
M ^[24YPW[.TR3VK;P+(:%)Z31G7BI[9EC(I'WYM%$<<L8I0-$!,LD -#8S=T
M,I;DFK$PA,T?O]*BPT<C3LBBI](H\4Z!@*,'<HE:-_!=RP>*9<0UM0@H>#41
MREZK]V:8GBJR8,C@L<V+>Y?/Z$#Q37O/^K8[V#W9/>CL8P;16YQW.DF*=YW&
M0Q<T?F9-C$0PD=CQ%%[-\")81A3MYM" 6>R(2 UKUWH,*UPB*7+C?,*F<V:/
M@CZ^U0_Z*>D_N>SF4=,*&U0M+>&Z36(]LL+T4!DXEF?P$GW6R4@.B,I*%9U=
M&:E$AKIJ?:B?D<7A*)]2!D/*V]31\8C"S_$KVP\"GM0.P9TC"/ PV4>)NQ5^
M'+HS+7#+WJJ$[@%?I BATT43/PEO$$VB4QSC23+R5<*7-W@.7H/T/2PZN!63
ME/BPDTM&I_S7TIJ1*-(\R1$5:E[;IP,X4+#N+!0D<Y0.BM4=/-2FS2'#'1YM
M .Z%4BT'U+%;!F,D0\@*:J*FYQ/8@S![Z!: /7*+<IV,0UD=V74E#_$ZO=9N
MN_6QV8;%M6O]O(R^BD#KAU#\<,Q=5YN/UIO% &N=D9'!MT&+;=W191U76(U9
M;=W!XI/1+ERP:Z, AP\4UY_W.]:I.-'=?,G6Y7@4YMBQFQM07ZC?)I18I](^
M02O=^F1.H[^ IXSJHRWS1$/,$[6 ;+1!T2GD""TE>!!M<*J^*":7P*=_QAZW
MNBU9EIQB.-@4'-9[ 73F8"O]53'L$P4NP..QW2>Q*PZ=G3G^P2[B<!MN=<-_
M[#3W%KEY22[!)]=G<P6BO7C2='S*I\/;0;1!7#F5YU*L/=IYW^YT=GN:L7I
M[RV@OIODTLG].I[ZTD2T73]$VDQ!!G1<.7?2N!:':L_):Q_(:5Q=]C<C+/ME
M"4N?./F)#X.8!3-)ATZ76-IKX-3 $+K#?ZWD):4/A_/L[&;9>7;^:4E08MI!
M:D"/N(@C CZ YNLQN)74SF_MO#]H-;JM;F._>[3(93G$!XRMM=.D&Y:?CG(U
M9^<Z-DU]"0T=@]G&T*9;V<-)Y56VTEO8,/3=.%I]RU*5L[K+D_SW.$@W@!NP
M5 /.OL-:!]_LF+EW;!:BN5=Z&ZK<O>W6H=Z?5&'L[OZ#CZM Y>CUUNC_6>M_
M<Q6ARJZ%M%ZYYX\7)]^^GIY?#ZRS\Y.+J\N+JS[V]OKP'^OJ]-/IU>GYR>EC
M,U)+!FMP+YNCDI7VX<^YV6%:R)<['V9P*2A#\/"NX;X/+JB+1 ?![1P4TQ3E
M!J&>4D3E$C$Y%=VS0M=]5#% X%E>PF8]LY)N?[EL 0*L\1&9"O"YZ-$T8K3=
MZZ,+!-3T%'Z2W+SD_;BS6++KD?65<S(_8+2D>\>^ZZ"G^P;OW:$KY\:X\[:1
M&V:8=$#$KRG&";=EW+?\48/\>)'A()HU@>8A8IR^=<F"R#H[.TN"7*\4A#C
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
MP)K#0!-I*L*]O:6'?W3H1,=[0QUV);<C3M$_F<>ZPJ:C?GUL]<1IP CV9)"
M-8I=-_=D!G;\6%VT;Z!I2D\\%A&H8'L-S/@WBFR9Z0)JW+I.U*-Y<UL//IZ"
M"'.YK&!5H06ID>,X4K!0N@F(+-PD,40@AG.+D)0*4A@(]&HZK58G/=B=,$<>
MCV*S"!E2I%VX4!\&9_TW%;:R93AUJ5O($BNVH3!&])#12(T#B2L2(HEUMR(A
M6ZTA?R.TTN:CM60<Q!:PQC@'8\Q"R1U0V@1-)R"T_#J/!,.@Y;8*+&5"X1-"
M1L&Q%&-7T1$ZKO*=GVQIN]8W6O;T.E#BL&+M,8P4#Y<""DN-?-TN(?2G8X+@
M:;M4/@,+&I;-75?^A9>!=J"07KE%@]OS'4/9I'OJP,9R(V,[0W /.!X@# ,6
M"*YB7WSP"C \$#Y0>*32$^A;P*]@TMR,03UA4 M(+D+;0*$12N8=Y]\)8<<H
M.1W2V,A")O(>]51U\!)(D2&BA?IB+O=U_"9+;NR'0P-Q9UF"-N$1'->)FM$N
MQK B#-0,$/]-YR=_YHZR*< Y<IOD%&8M"CQ$(<,%2.6%TCU">(E08H=%3&)&
M8%5Y]+$Y$9ZT:[@"JB03)K$;B:E+YRA@36%]*7U D_JM:&<P/*S@KES0,DY,
M$HL.+U(FR.A:4NH,E<10>$R'Z:B3"R=S;)$>TJ1^(%.>:2,13/I PA#I@QQ)
M')23@&<ITU !>,J.2R)I]2ZB75_X9@RN\JZ*$5XR-/SS%L\@DN,<00)-JY%D
M=H[K%$F(_GHTOY"(I/IQI#V5G9:=MD0'U7,R)I+#IZX_T]N>=-5U(&GU#:8K
MCA$-EFXF!<M4!Y=; QG+.ULW[LD4R^E!N)H63Q3$VDY6VVF"+Y.>PA,XN(PV
M7%)6&J].(&<5?2X7&OE"4>![$BH*_&$FO!?%BY8J:E1<3*B"<K+F@0IOPLJ?
M2+7,9["8LG S7I,QX1;.HI/U32=Z3W -\$$8GYR<<H)-D38Z7 O,W+7Z(9T!
M)U%TR4K6H>"V)*CD!$) 1GK",%K.)BYIZ30@?9X-Z3%'0O1G'7:L.N8HT]QI
MY#-V4F+@VL!!7W'GSO?!OZ)MX01$$*3)$[#I<N;\B$$8>*"B!#24B+]021\5
M QKX]Y2&@:MT[W\]$%GY&L,)>WEJ9/]=C<A ,[>%BX7UMC0%1(8#W*E<,QN>
M0^I/PO8\^9Q9X UYM0X?0LLQK".Y7L8-(R6#IHNC\B-D3(]"*[-G/GXVSHF<
M-3S(D BYNGR&=C!^J\Y7P B5]K:,M));L).8#'.Z.[$1[N I)Q__W3QHMPX;
M1FYVB"K1$3BX/5-@L8SF=U3(%R6DA,DU@B*LP(A)\K;XO6\'Z'S"G*1Y8\,3
MPC@]_TFBA"[/]+%WLK)8J;L;V%>4VRJ7;^+E,3.MDD%B0YWXKLN&*M7>ZNM.
MK](%+I.@YV#]N'_[2Z?;-3.0QOH-''B@T4"%<R01&>FXD[BU-VCC+?YN#4[Z
M2?1&WN#EUMQURN%PK$?H\F+3ET8]6G+,NASC8F^GNUJ$N654'%OIJUTSU\'9
MW%D,49EL-()',!P6''W[1RQ"E96<7R!9)F69W,_<DJRI5&--XR",F8P U':!
M?#2=B;&04#*=P(F.):%@FIC6F]1[@&M]6P(8F3;-=.CU0.[G6WQ-=O 4]@2N
M(J(Z?)G\[5K?2*$1& (7)KEJ2Z?:R-VNSZ+ 3D;+'.8S!;-?(*2ESY'3(*^L
MA[/2(TVVP8P?A8$,&6I0P$1#L@DMI'N!OC<Z43);U>+P3HRU2FB<@9)PP]5X
M(UX;3\$*0)>+S>3T5)IHNI.!<,(C?-J\9BD3/ X"B4F_UI# H,"?@=9  Z @
M\,.$)80FO8S;N%.Q+W/A1^H89$5 C;:?$+'F"12<6E(JJ]61TI(+ML&4Q*%Z
MYX*-)=%S,"/ DL/@NUGHAS!?3+2'_>Z&+&L_<,BIU&CE)S8$<^VC"!&[D_4-
M\$!$?T.5%NXX21H,=^BBORH38).G*9F[9M^Y0ZHQBW:<^+O6E\C93;8+>5FZ
M"ZC;4F@)A+(/IKXKSXI7@ 4REW$9.& @DOAPUE4&>U6Y#,;.8+4_N"QQ(X$"
M$081J-)3V 99>.?/ 66YB/V'(Q]TV/WZ(-USXM.;J^+3Q5P 648WZ! #]&1=
M-B5=FP#N2S*8," "7,:0IVF^= @YU=D)Y 6OG92@IJ7QMJ<1*H5EA^":28ZH
MC0=/0W1YCY"3\9;N"<EIP"ZV 4F*,KB^=X,'XK1K/3B%]#@!%5B63[=I',B2
M,_0%5C34*07>$JNX%;1LD@->8H?:U>=K3NQ:G^( G]9X M$Y'NFX(AQ3>A%W
MA$*N]8;_%#QY.,M$ZF00D%L\D5*!&70,E8I/(ELRX 56U7TN=HWB+U='7U)(
M3GJF1@D91+LIRG%RN#;A8.C:\)6GRY#H!9&6 4DQ&S1!HNS$3%3.3SSFF=O>
MOF89:-[D'@N,T<N<K,#\S&!\L!B#65H2(*2EGYZ]J,(L_A33_&-/"[N_8CM@
M"SE5&?%3("&*/)TL<Q: KL802YCK7,RN$\0W4F(I])BL].RXLA$==&J*^IH4
M61ICG$87PW?ZZ%*>/TV54Z*FI]9O]JS2NO91S0=TS$6&B'X-ZIV'YDCA1+0U
MJ+)-,UD(!;:<!HVIF2Q"=4XLTPYI3UH5UHSI?#0T/4L:+1(.*97!9'69&)%=
MFFI2NNP%%HP0,&2;?J4'A&S$HYE6$3 K#"8\022/B$F;G4@.@*D"##X"A$)Y
M?/04#12!;G_SW?/O/'E6[OFW#$NCO+6PY[** ,F26T?6T:8FISZ?/$8*79=/
MDG?IW1[/JUV&H",,P,;@+&#GQ ]X;J^6M$^Y"-X.Z7\)YX7(IMQ@+1RJ'B8C
M_(_?P^X8XG&_5J<RKA%-"MS9)6:2B":0C&#6C 8-2*524#BH6+ :0EV@ROBC
M\L?-P[4V_<1$4Y8&A<C*C>O&]8?HU:]87++>&U!.[O1QF _A3N#J[(ZHT-DT
MZ1,7P81SM2QT4J_#1W26B2G#6$&HD0;!WO@2\\%X4Y6%GL]9T,*:1N$FE;%D
MRD)NB2<GW0]G,0QGQYG'9Q^G0H#E$0L%!?^B=N,[K'ZDL.@D"L[%0CF_6!S+
MHWG2SABS/UG@^#$*^S2.PE^D/:SGH2K+A5@7"F8%9FH*6Y NT!=Z7)FO-CBF
MF*A+-;9@L8&<_Y)>JA(CE,%+(,(O^0=EDL'04-.)RL-94H$,LY$QG>*7!T:!
M);^:4DT@748JHB5<NQ*-*6NI3_I (WBR+D6WW<A$:&!Y,7#7\^G,LA+6RD6(
MJF=D9FI:8+7WLX:]VOQ+C2_524^I>T('\;=:Y#,[$P)A5=/7F:B?SHHD58*)
M1O!,[']F[RY/S"Y==A3@) ?Z0(KRRV4BCYFS"+8G #N5=)A.@?2*MA+*_?CO
MYGY[OT&J.ST#7U$N0R*#9+VF6 5+ZUT0]#L![Q11;Y163V"U!S!";P6%LZK\
MWT5OX 9]6A6<<]G_]Y>+?YU]5&YLPTII3,E^&/L.S\-SD73I9@ 8,/_2-:,\
M^F^>D'U"R5+57G-Z7HKNIG =6"W-B>]PZN=^@H-HMH\HL)/[N"FQ2,;.4J4^
M62CD1D=.(H$Q*!9\#=>5&:3D16 L%8NCL1]0E"B&$NO!@2>NB^K=Q"Z3*1'R
M4FGHJ9H38VFB@%GYAZX>1Q%M:O_"**Z,AZ*R;:4)*'F."ENQ&L<I";I8QA86
M99L&+5=G)$OY(D4U0C\4$F=!-232HV8E4K@-Q.!:2;!WEJTZ\@,/:,@"2?Y6
MT+0>%PTW?D"AO<8@H[TZR&A#X(1<<BCX:-',&>IX%H*H5/.[<'5(J9_#IZ9H
M\7I>/)'511IR]Y(!W2X6W,:3%.YEW(.&O-*QXJE*HT,XPE65-EGBJ"1Z+K/5
M)^D%GRBN@Z&%W*#;,GBP7M5W?'%*^/M7>-CWAC4 W3NU_@;/^,7ZZ(\G*RJ?
MF++!TJB3H_\R=]@4JYF#ZD&IL!M73,')D;E :I?+;VO_[)]_^]=9OXXI^YE8
M5Q#?;[!G,FIG1FA':'V>#'\S6W;+I)DBE[GD*=M<1A7\^W\NKL[.EYPJ-]2Q
MLKGD*U>Z?I]A<IRYU"E;N+2',;=3W(HAUG)_:)M0ZS:Q CZ??KT^'?3UF1Y)
M+1$_N>+#Z<6_ZFWEIZIS:)AOJ4.(9^N*14,7#"VTK3+Q*NA9^8$\0"4G+M>V
M(#UK3BL:3N.ABR"3"/$T@HX"5+WN2!J+F-]=04!G+B@AY!)6#RPLY3F17E[>
M&-4@%WAA3G*LEY!,2;;E>]3V('^"GH*Y::H2F;LN MCSSN4#Z/QRHSMS](]U
M'.%I;H+HHN^:]=3)C4>0/FVF8CV,H>K(.6S/\W,X:F"U.PLG;[F0$QD]VI$P
M&OW=G8LD#76=SE1(,:]8IB?C,2FN64L"2$0U"AU?>F(@X_()-4T=()+EE&D9
M"%,U_9F**2D!H*:0C39"E=GFC?#H4B:*4G>BM""ICFG$OS$=3N:Q)1$2N%JQ
M0T7E%A!VZW%56XM4FA'#D4?32V1:"O*;:#95,1FIBYKS6J7'^3;/:ID:@(>&
M6LA5%13IE>8E?AH'H-VYE!B6AE0GF?*Y,!&5)UXU#BR)JT)L?5YMI1R2!70P
M;H$"">::0>C3PG LIDDV7B9X2:92K[Q;Y77K0_T,DU'$/0D;VKD\@S146<.@
M,K]<-<]*WS7B<P&URZ.:Z?@OE)F5,@(B":M6=094V8,DUC2GQ>B<(I.ZC>/P
M>*;O6'+D3"HD.WD^&F%W$3H_EUM);J:2!RE) M"SN#]3#*"CS_)T6PP,=L)]
MW$O.Y=.6.JI[VO%\+#*>TB[$'C=2HE&5-Z*!CA3,+ !U>BO- 7UFSS7NGBQ=
M'(VL%42=D;@ZTD^"F2U5M&)A<TH2X;(EKBMW!*1KS-%>H6HF+<0XU_9L0:EW
MBR9%KBKBF+M3%+9)$M @I:XI:XLL*\>HBG;D"Y#K((1H560!Q36AN9*6,\H=
M5BVKE)<NDDPR!BTQ*DL""^JSR^[]P02^^IT,BK.L/KO4^NQC1L-\D>W:\,0+
M*RD)1S 9[SC_J*EK)V'EGP>_I^DFA$C*Y"$P_S"J5@$(5O]SFK>D?C*XG.P3
M8Q.7AICF(A2M2\7#"LWU"84"E\_5N@"-@'V,S)OTP\$>5,8^K?XP#00>.\HH
MRXR?LJFR%ANIZ#X?,9_WQJS4$9-'F^2"BOOT0%;&@NJR\#C<0 S];"'.9(&'
M MZ7G$OD4HQ]U8E4AGC.G4#K#H8Z5T&6PJ%74=O-8(K-$!R5,H/'K4DX4=)#
M+!T]&374/J&WUUJ@@"J*/4?6;)87>4UH<LU2_;ZN#TF*6 W 2"00J=(J=4-.
M<HE2+LN(PR7\39*F^NZ?\)2,W=>PQK,I]NR>@HT[$8S80E]1_*CO4=U*5?.2
M:F#=44$F/J$F?;">%Y9&XD1G @=<BD-=O%0'.209?,NJ*R01TRO\_HIIQ^LQ
MS_304['JE&7" DG2O%9;I!HV3B2LL)GF;H#5H8,,FS*!<<*CL8^%K^@<>#KV
M0_@'/'=L7<KEQ?AJA9L0.='RP;)V%&2MK*]4#<BU/ -W3SH5".R$N>2+I$[U
M0MX1*2&='I2)AM8E,V9I,/0R$<@HJ)43P>P^X%*2\D'-<Y7\)S6]/!2"?.K,
MVCE2>3JIV82Y^!CAC0*FBTMQ57A,!I+FJP11_J$\^.>1W B3VK".CHA1G6-)
MQ:Y>;[N@1E>1! >,_E"Z#:8MA2V*>.=-1]R(R$IPG2&+8'8HT(G'GZ11V&,4
M)BH3QDC[2D@GFA%E ]]5]0*9J\"U3$)2$@*;ENQ-2"@55P;2!4Z"ERQ@.W )
ME /&X/-TQK-N<93M(&1Y'+T!M+@S>07+-N[LLVDI1?X];&@JKECN/12*):N=
M@XB"UT;.C0Z25OQ1SC>FMJ+LR2R0 )N=ZO["X&3@M%@DH486/JPYD>'2M-"@
M$7:CG-]YLWD1*&39&,Z56T N.4[&5L-0DY<LX<Y\2"BMDDSQ/I4K;E//T, ?
MBZ%(&W#@YH&I((B:-E4R@DX-T5)$"(6O"DK/IUI(6Q"$"GMGSV\&>;WB!S?@
M<_ZIEKHVHDX^?KU(7:2J;1*Y%"<6/3D1+UFR%#>(U8MT J$\"<BT/\DG!&6T
M)BQ>$8110Z+A&=\9L?&Y&BJ4C 36/D4WX@K"#LXZ52<_1K669?)#9AS9</Y)
M+'UPG/:<3LWHT5R^Z0,FO*KRM[C>:*D_N#,^L=*V4K>:.@KFF(MJQ<5 ^ @H
M4!@]*;PT&(Q:QV.(+.5!4"\I# @CM:P,8R93CJ@5[A16+&BI25K )YL7)E4J
MA9;!%S<*!DT*JR?G RI-DS!3G,2/F&,N!1D2>2Y-5/OQ^4P%4I@K-'ACSA1T
MN$ZX2O6.U+6R!E^V=!PE=W!V.TOUL,X224X22#'7P9U9_;%?!W>:!^=<)OGF
M)ZFRNDBS4*N[1VG8=54V:W[W 6\4-0UV(D!C@=LQ]N#VGKS)91)X&]+RP9!;
M4(83VF<H1GV&F5H(2,OCD[6SXK-I]IGR!TFM@SQ6I=/OL\4#GE O(%/S8$E!
M /*U%NT!$5C$5L%HHTCFESG73NNU*+.<+Z38B_GDZ,RD%JO*/X$[2S$EVAT1
M'-05G>VT/LQW+@V-M+*?%"$9RY!-UF:A/&@(Y&Z7S]A?KV;MY4.7R=P'>0BH
M/!0?A#_RFWAR)UGWP!EU)AV4#IQRY$6#6.UNJIQ_QJ AD54 J6SJ!$O>&M%!
MGZ+#@_-+F.HI+)(."@F-DZ6-,CD1M/M) BYDQ:3)'W@"3'U04?ZB.SR?_6MG
MMX4'F:XZT_[K4>8SQJT3Y=!F4232-V930+J[U@?E-3)I8CYMZ=M^[&*FLJ[S
M/91^(KD2F;6%8%92IC\I93B?9$3E(V6T-2R_C,^:OR_CU^HU'NJ&PB*<+U).
MO%QI6V8@:NV1 ]-2WUN)B)*^>>,JY[ 20O<L9T$24\'AY#?)R($YEPPU][P3
MJ+J=YJQJ@NM0K<@B]>KQ62,2=0RII)Q9"'*"R;Y)M2^I?U4#WQ0SDR*F4Y&D
MG[K.JC#PF.R14Y0D^0VU':@>V<XXHG,-5.-"UQ_ZF:9 H6KUE 2Q.7Z,_$<$
M@_P(Y*MVIITP>R(!YBU5V$HK%8#N1<F-_!M. 0K@L=W((]5,\K,[4[$=C22,
M@G"41AH)1A=I".)/.8@Y^8;=$@>C!K%\>:?]^&1]A"&WF6X[1U^H3'?I8H$X
MCX2,R5FY7IO#6( HIXVX\;T4C!:.L21$UNE*TNP1Y(@2/];/-U:6^AW;2@^5
M.XQ4R<PLN[.DL6_SQU@2-_?C2%8=NQ4Z\%#V.TPZGJ>U:>EHA3LBEK5SE]?7
M253H0Z:)=)!S[-!B1=E/ZI0*QHE0I*>D=-$-SXNHO&NA)%56?Z15!.*ILAOO
MA.M$LRFG@5"W#XF":[PV%\K(;IEP9>T2'&UN!@1KP9*]525PP2-2Z(:"%!?L
MH.K%DUQ_+?7H:H5*RD>-CGT@O9=IM":[_>F2D$GL: +(*_%Z%,<W;QMX8K3$
M!:G8CWES0U7@JQK..;?(50?*# J=Z>,2IN$],O,9?ZK#NUZB@VYV2\G$NJ?+
M59XHG'\>R'/]DZMW/^!?=-&&Y_5$O 84R:T 55ZN M0=N<!I8#>>'Y(B\S*M
MNI+.?6DL;V8A%':<47H<1;ZL<_MH25EG'<>9+SBA>SE=^;"W6X.T>=A 63R@
M+62)CQVZI$Q^/Y V5CH#WB8E)G4CL8^I+83+%]>T;(V&EC*?DF'VB0^#&+_!
MUJ;+>(9%W!;Y1J^2' -CU-.G"!-5ZUJ#.7 S H.I:Y(.">O_HC/*G;2ZI,#\
M@>0=8DZB$NQ*S^^ZEWF>;,L*I@*HXANA4 0=^DU%3N#!-WBH164\G*8\-+?D
MH;E"/<ARU\'>LCZW!@R3@.\PB?-6@00B*2^;4";7ABK4O;>2?E0^M;O/]*2B
M<R+92"J%QY0C\6@5VJ<ZC++*W@2F$DDKS ,;V\;@$!4)ID[]<)1?Q(BGR=0X
MLA%X/_XV5=+^9^QA"]5.:YGTVWY3>C%I(#\A82I@8$6&A12"O@NLHZN_?#E9
MGB5L0#)PZ2Q(R%0Z@8Q5[#KS- /7R5.+C'!F<KXH? 07;JCZ9.0M#MDT&)[G
MJ8" O!13V!@AB,Y<1&VV&0!"V]MDGY?.9>LW\4G0?G;IN\#&@/;(FLZ;H?-O
M?H1UOH*HIOB+4[SS;S)%OXK[FMH;H?8)FQ+\7(OUYL7ZVY<%#8);<TWN#9#[
MFD] L#$2 7S1:VQ68P=BBOVYZY"Q+*D.7E?(6.FB^9@3^14C(H.YMG^H):XT
M)#C7 _!K A[VP2.?#%T*L94@F*YXUS^K_:55_E*V+1P0:ED[.%D>7X:S),RC
M;Y/.3[+TL,MEU,Q6GTZ4SK-5QQ;R?%B>]^,^.TWVV<64\R3((FE91L>*'[.G
M4+M67T;54/36_%+%'W+R0A*@J]4ZUE_;F0 IX>&U2=F%@6RCUK=&PF,$8!.^
MFDA3.U/8A^+$\$C;RZ:'_+6UN[_^TU%6*?QBP*=1TDUQC;<</#J'#]DYE*EE
MLO33A< =XE"^('@CT_%G2U=HF0M1G=8ZF2P19GFP+-U&KA&S[&6)Z7[^_2R)
MCYFYLK'@2"[;I F?<YV$(2E05=6/R<:P9:7S$T49GR8+>P'OUH_^=#I07Z6I
MU^FL2%^HK+)0UZF84O12* ^?>#.<<AO#V4AY^#IK3R[H^"8.H\<D4E-LSA+(
M1(M_T6<JGC[RMP825)XW!N#A1NKL^5UV?OA&U./-5B;2FC$<4S.G;.0HAC!B
M12V<$DBFED@LB PSRU2#\V@QSV\J9TO+%ZF(^+1?I+6,3"1%ZJ *%]9"92&\
M>7[GR98NRNOW=F/O\*#1ZAT9*3.ER@+P/9!AM\0'O=E- PZZ"5<ID-W^GNL4
MO& 1$*^_DM&>=#Q)#80\*XX.]QI[O3UKS?>BE($-<"CK 2IFZ_(41G)S>07#
M<HM H^+%#D1&$FROT>MU&P?=WG*9Z"_(!"JF=K=QV.TUVH>M-26I\1+1.H\5
MU<B=M[>/&IV#@\91>V[B?\]8MCC5Q44!_K$G&V*DJXP"\N'N;3J%3E1*9QF"
M,"!:7.JV&7,6 I@M?\#F-8<0J&\S+B]&6-P"1V#WH262/2-4B3C>;$6G])3Z
M[080 __)L%*]*V7GR5+M5J9(_G4OW4&-U W+=I9U@*14&!Z"E!2'<M"(_FX)
M/+)4!M#)3GO:YFI39FN%SI4^A#LB+KQ<%'RF?"6EEX-H>2HYC3+%O'!ID<;,
MWKI,]O"DVO>DO.U:?Y0I;1F+KM/: ^5W].B(I5I;6?$3 ]F%K=,?->N$D:(L
MN8;U92R9R;[<4%C(#$#_76#D$R9H_H@QI2.34Z=CG10A=01Q0FAIZM,5\X*]
M")0\;+F5*3J'AXW.WKZ1?'U0XS?;2ZV7,DG9 ZNI<V@F*7-+_XX%&$49EK]+
MMG9[9N^2U4N+R 2QZA:92["B^5*GS,L4!UY2XU3'&,(>$8 <K0PQ+)UC!C0B
MT50RESXEMR)!YT#U-W8Y<ZCM=*:Z] -EFV2RI<O"B:#H[@9%GF3LOK1OQE#X
M",,FI?(P[13D?3A+I7BAT/.]1,27!K7L6M^2'3^M\(!YC!P+UB</30P$-</%
M".K%$,<TC!T?^-A(%HS87"5P#^R@)@YP:30YD-[UL3\R+N=,R89,O#FADYCU
MKS(ATQK@(S]389Y:(WN4K4EMHMUL(Y(;WY^OMC6EQB5H4M:*8\40/G^]-)<T
M9;<OTF)F[I:\(NORVY4UN+[J7Y]^_H^Q0U_=R#Y))Q%I@5:94"++*#1D&GRD
MZLV0@3GV7=24,L,$%*X*:JC/3(NQY1T!>TR4R])?%L^0H!FJKP1FI(?'ZXI@
M+J"JNS\GE,T2I9*TT?ZF6?"D]- \M=H]%"%0YX&D.\K\"-4W4_Z^6CM-52YG
M_?)#I8K='US5"ISO?$3HW9)4,LHAF9\757: F\A\B(,TKF:A^D:XI*:Q+(:N
MJVG(+D^[^9$EY32HS&!,KA!5Z%A1J$(9C[(CA/209,4 KJ*V/ [J3<)EE&0H
M(Q%PA,V0W::%8K(-9Y("/T](N:U7W+-7W,>TZ,B\H4W54,32%O*Y_FNYPOK)
MF7NN/GU2^>.+S';%5ZE"F$FW^B=D2):YJ.?6C@J#407VDM"75331U<J0,CQ4
MSE#JNF&M*R/MV9_GU7P-L,6:-"Q7"4_6O=)%ZG/U1^"KB&?EBHB?K<8V7_X5
MG=I8N'3QT 4["U@08HX+#Q+K6)EA:6W_B0^S%+S60R^IA[ZNSG:FTDFI/5S6
M^GAB]0L$&SSN)FWDU+%0%/CSO3!511TG0"!Q"IMG%*3M6*@ 31+6UTB)HTNM
MF1E'<;(DWWY)FGVF6)8&6G7Y,0)<Z:R(2,;!0BA3[<,XAYF*A&@PD;+(%IR4
MWILRXU)02=I$,Q_#@>]XS@YT?5\>O.<M051C<CWPI:L![U11[]9#<L:#(B0M
M'X60R-T5MZG(]3W#,J<*VQ.9:@IJE\L6,L"*F ?MUF&BW\G@U5$3<]#Y.?#<
M-5*Z__:73K=;KD>KSUJ?<@2ARW,82=/'(-R&-?1EA3\=[A!DSVG$PC%.!EM=
MDU"R7(J8J[F2P.,/U$JIT]MR!^2O*[WMI6#10=+E+1=?%)H'D3ZQRMZ79$%>
MO"S6^:1QFHQ^/I'@UD>-AYXF>.AUBH=N30/(N6:@YLWGL:+_N8 # D6Q34Q]
M'/!,XREI$Y$1^FN5 M58D@:L4X'2D,U,2]F:&\_DQF(^DL"47Q?-KW9/FF9%
M=@@>_+XB?)8*Y<%J0Z8R\G\2H[&1Z<BHB^UE(/E:!(I/+M:'<0(CX;%54PSO
MP09%;C2V,=(9[7)@U=]#V>K5FVME"2P&>E2O&'T:,[,ERJ54W":?Q9>$+Y'[
MK#1^H,*9;)@&PWJ.#'$K/*:G/W+%V>C&[YY_UQS[=^D)UQ9PR;CU#^J55+5L
MHY.T0=-<0_V@<\_;^VFH&1:RSO$\ 1+G^A;(PJ,2C:-V;4E,&$&1LE,)<?BO
M>^!YYOJP= ]WTR^P_XKJ1], #33EI$(0W)3:*>W!E!4E'0N7B&1*@Z12*M7>
M7E8N-0TPDP%G\#B/1S(&K6$)3#G%5G,C*NDK>YZ$G(Z75(7",),J/IR1IJDS
M]#<HS57;A*Y5R*:6TBW9BLRP<Y,C %BKL>=B"6+LXB%0?\D2#62XQG"1J[#+
MJ4B1>HSG2#+/A[H)1YA)KZFY52"W=HF<V'HG84Y-Y,*7Q'"6R5P\:ED.FX76
M72 BV+/!%<,P:.EP5:Z_\)F7EMO/5)' WFZY0@++ZDI(%XB: ]I<1XCHF A>
M[^$ONX=;9YXJX91E973G9S,3%[@82B.2V%-KZ(UH:/,TPA.!ZJ\\L+^;-XM'
M:W_I4DOMO679\+6 ;PZF7H5+9TL^H5#53"@<G99%OY"XLBM?3>=B34&&V1>A
M(FL&9,\&H-;4?BG G5K,>F("IDV*O5?."%^1B%HOW4*7;B-[BH:E^8B\2Q+E
MN3*%7S?D7NK!R#(-H"/==,9RX[&\<LKL6<@) 6=4<E[GJ*NNQ)E>DW+]Z1R
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
M[)6WV-_<@*TST$$;V?(1%568%^3@-/'9FL(@5F G"FP8V@0\2^60K%PY:!Z
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
MPXNK%MF"3R-=3:E=2KZ X&??%'_GPW,JZL8GXBU8"T5H9X)9P9A@:F74-W\
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
MLJB:=!HN=1VU4CT-4N6QBV2U A" <ON,%QGI8WVRY7)W.*MWJEN"*M1L2EB
MCX>A-Z*U1T__9^_)P1.<9\YC#WE8,B-XKI 5/K4S$O#K6B+&U27'K%$\I=QS
MJ@QE</'[%CJ?H#OC*6>*INT$:X"4H5@U V>'*XN/'CXZ2!G\OF#&(NV6]TVV
M=9,[G0(9ZJ 4+T*41>#\MUZH9#W$"J8Z::E/M(&%ETL6U50@!&:Y*<9%3_H^
MJE'9FV7,WC&JE8*SD!?D'58%_*4#LW->-/MZ8W\JH!"NJ+"J-AF\E?U.*B*^
MFN0/X/.K[@T'1P=VGJX!T3H^^O'A_[QZ^\^73S57\<#>*2%%1NS*\E_47WT5
MAI.7LTQ8GCQ_>AB(#8CE<<T<CIJ>Z-"MUO@8EET.ZW9O6>>L'W2$3[-W\!U#
M\\ED:20+I]T9+"_"X]/5B,4/?3!&[U.V*ES!QG88O=/^5TD E,K*NK/[MJ6.
M_9G>_$M&*K07A/*YA\\\".,&EBRP@L.EY/L&)$6WPRC\-:RQ&2)RDV-V5XYK
M,&66:O3U\;&RBW[U*>RDF>"4-@'*I(4NE#2FNDHQ1AK*E>NYVEC6VXFQ2Q5
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
MYQL1D''HOOM,S.G32WL+I_-RT)?&'V3BSY "N)'H:5)"D3AS8I\\4'D(%G9
MP09Q1Z3"QW -VQT.5\X)YS79535/GF>G#;+EM(Y;0O/D&$DX]#<1Y(N)\SS,
M]WWVP>59<AA:,^$/_]V7:P&<42FMJGMRNJ1=E%$[F3"G6TB2!&?1ZT1;OC#T
M5W1LC$_EC$X;")QK8CC')F\I=Q.>!-ND:U4#Y&N-5[AVWQ/]N1F]Z4?$QM*:
MT<MSA]!C_ D!,C/TW,IB#A'O3.2::6[@-*<0*ENN$!&G&C)."#%)QP.!?J)-
MXP>7'_H-#%CY'__VZ/'C[P7@YEU!P^FI'#JUU##W N%/6:QPGH4V B&JWQX\
M_+LV]/K< TK&K< TX"&=K7W3'M?2X.)4:*HOJA;7TA*9#N#!ZDK@$TV]SDI&
M =GYYEH9<E&='!V.G(%LXYN:2!XG6!5+L+-^27QMC;^-\Q-.#&YA4KD(TA$-
MAA#7F+\JXCM+D%#5PMQBB!L95>_5>)O*2RDPVUM,<V"?HZ.WYD4Y6+H%AO=(
M.],&L3N2AJD3[9)662%]"CRI!2W5Q"1D#)V:6-BLW@C+^R)K<N]5IH,=PU\W
M7Y-70?YYH03@8Y8$;CKQPWD*NXZKDL-D/CVOST8@'&Q#-N)RB-8]2 ;>/$A%
M9YT+<G7?FA:+8F)X<&$I>3G,!6V4N+1'-1=I"I'<GJ239F56+&,( A&!KH@V
MH,I+*GC@&46IGR:HFQJR1'TXQBO38Q1:OS.(^:FG",X9G7.8[^J707IOL+BN
MEL6[]TOE2CZOC7%37-HWE?H)7,S$THK< V%G!BN0Y44M+#L4 1>>8,]_D\$&
MEN<#*1 UO1IN1?*XED$O-.%X@C[%9=#2F<T(_,I9R"X+?=Y<N"/0*+.1^ 0C
MZR+\VC=K:_;,HSYW2+M3XIJ&7Z9"SBA]/PY9K">7*1<O= C300<=;X_4[QCM
M6]*=P@[ 6;]$'63,DU)O2)V.'^\7HU<^3J+*F]7-8$"$;)27OJ?#H;D.O4R$
MSR@:UD&5;I3!_?DY2??"WYLE/6=.LB46  PFI$0.FL69E7'V!(6T;!2G2Z:I
M(!AWR$1+E;;=9+-2R69MU!\]A^4H,P1O$UT 9L.!O\'[1$ /-+5>9Y0*!0-Z
MQBQ.W<F4-4V-!%*R'E,"?_.F4](Z?]Y3G@5&YBA809;Q#7;P:MNLIZOG>?5L
M//Z&0F6K]A[\-Z1A1>,0Z8K2U8<5N8ZQZ*ITB 1$:$%3LS[6H:S.:?\@_A.6
M1L;R/RVU&<K:Y ,E%3=>Z3KX_;@M$/\MPJV$1^E;>LD(^B2[/$O0A/E"83 Q
M-UZHK_S'V$&>F -99+^"/Z2T;<P%3V>LD"TQPD%'/VLRD6:$D=U/GDU<5(XW
M @12WA:+1Q"LXRQ1:P0>>SP96&$-&3]=/314$NH0$HUX=;U -XP=>]4C<>ZP
M-P: &^ZXJ,U9DL81I"4 ]NE1LF *P- S=Y#V"RZNEU)'AP)&?%EA"X-UPXT
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
MB%6N^N4I=Y38*2A0#H!^U"KF,.@@VM?]Y$0.3#Z8S=<"Y50]GFV>4FMJARR
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
M]@W^E2&89&.$HK/53(LF:BU*[S3*@D2I)Q^2F<CE&JYV$%F0</MJKW"RN23
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
M;J9Q7E(6<,K'XVXS-F(SZ);2(YW%?-+!B:6L]I@Y:)$'BNFRM-NS2KX8,HK
M^4RK"MWUH!DT6;";">:L*@?L.$Q':5*(Z?H[TO=&F"2'>ZH3A@T4!C\5ON6E
MPFV)@\V)*]\AY5VUA]]'=P:#%P&?R5+(2[/BEQBI$&FA-I*B4]F/<_%3[&Z(
M]IEX;G2W^HTXW;8\_+8X8CI4H3Y!DF^ Q8'YA8=QB0_.@WL.21YB5.PQ*86B
M^A-:YT6%V8 JA670>BCE563)T- !OKH3BL=1XLE5DDX]7%LF'Z58N=RZ)H D
MPOQY>J4E,DP57@65UQS.2 OR]6PP0W@#P24E,#)^Z]1PYJS;_(???+74,%0*
M+QB5FDS0V /R'M8%&F?XQ8H#C/@%C[A0N-3*JD@DBC5,YBQ-'G]/,IJE&=*P
M"M&QHYZCJ(U[$4<LA:^U633.<#YQ1.^*!<;'0_?!I.(T'6.VT$'\Q-RKANRB
MF/P@=-\J+4/XD1\$^V<CQ= 6.Z,UEZ/<,&%0J21MG66W(3LU2I$^%QF4S'(L
M%K8+/A4_CXX?]=O(OGEMU?2%;O,>XZI78#0?"R:(FX:1,4KS^M$YCV!70FE#
MCM,R3WI;(-YG!V'+4#/P.;$'._M/6+I":Q$_N"&6_T.6$!X^LQ+"C4T^_?HP
M'3D;F*6[40!/P@X)S#\+4216/EPNF$4[CBY-[MWG94F4><OQ]QDH@DLTY+P&
MJ$0RF"DQ$\//P23$( )_!4$_T#H -70YS2]P<9%<L+*>AE>?XJ^\L*M?Y3A>
M#"BE4]X!(;Z<LG;4,C2B7+<,R$X$/-,$>WC(LIT8S"S_JP9OJ6(.)1F2[UW%
MFI<E%PFMYGI&7.W9.&442ZEMES(@1$TK,4L'RQ"\*>"WUL(O60H>YD*U;,"#
M74[S:WAA\$V8$-Q5UW 37.9R8U\GQ2B.G'M09YQ[))^PX.PBL;7;;\AD1V:<
M:-]F85!+$L\S:' DH1:.4)?0(W_ 7"X4*ZZ9Y&&'@^#_L7S(CA?K!*JZP/VT
M>VD?:K*KM,@S5ZBD><^1DQIBAY_CF(?\!_MH-EY(#IW8/+ED\D=:^^F"CYN
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
MS 2.*'O<WO%PZHDR ^A0-&P_4D1@+/ %_"><*IL.-@[:H(NY39(QPFD#NAH
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
M>>&GH&W+J1US"UW&)XKI![@?#H==_&?9B8NZ&$EXG^PI$,Z@WYK40NB:2[C
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
M9^3@[T \GUP@]'T6O1]6.5K.!Y3K&\21'!M3\I7V9_P?JEPGT!!,ND:G!.6
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
M'L/7FM'/T3?8/-5\HU2<+\UDPI9GGF8,JG<2;,@)2/ PG8IW7KJRF"EW2F@
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
M#NP&7@K& <Q \BW@"PO^\PHTH0/ZU7 ?(T:S8OC+P4#/8K"=#$YL? @Q'%P
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
MUM!.M6F%8>4ZJ KK;/B<B&9O8A)6@3N<$H%V*U4G2C1;$ZTZT:QM[?HITJ4
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
MQFQ"9BI='A#YC95]YVPBL K<P9,'6BL9*=VRD1= < %G"?X"CATX$#EK('*
M+0#%0:80/H2H@D2?Q?B?N+8,T $\T2?1X=^!18$% #9S&7+14PQX$#."F&LT
M\@8>_@RY'2>"A*\H%::&\46^W0W$*_#HA"B)#E:TM$_,)\?W]\9] \QQ\*.^
MR&9?RH>;Y)+^"E1F)(R2#GB0("TQ#(@9(^]A-$--ROH?^(T -F-8X,[!^YY0
MRL0QA <;,$5$E>1E<',OS;6Y(@SGOH1\%>QV-G(3'P5#:-/P71!,%[3Y-?>&
M>#:9^.3=^.S1Y6 >'"P^8H\SG_\@709^S%4;P@R(E)^8.^1O4#!N6!F2CD*,
MX)%(\6R,5NP_%(PMDV>!R<,1>>84PB6Q*/1NDHMG"FP1^!F%NCETB;?O$GTX
M"BB)=K\V* G+:G2LOF)]]LHNREY.=-WLK7C#S?*^;MV*JUMQ=2ON85IQ]]3\
M-O:&0Y\=QJ;>+G)J=._;.=:O=]JF92E7[Z<[,+0$K]U 9#EFOZ?<8&\MPEJ$
MUQ?ACMGMJS@*J-Y8\I!^SS_R:9H%5#X9E3D>X6]WS8ZSW /9C2%>8F^U&!SD
M&._9RP>M:SDX SFP>V;;6GX6UG*JJ3=K8NDU]GTXBP;\RNEV[@A3;0.+ADLD
MEZ!XH8@7+.RG%T_YH;SPYI!NJ7BM:WJ;+"^9<P_)WBZ_,+I6R][(8NE=>H>:
MN>(:P-+A]WB--G%?>260O,V;NY0=LI&']7MT!4,W:;B;\.%?C"YC^7+ES6T4
MOKK^]#5]*-Z<1^+V.OM[5]Y-QU1;J.:<B]]8-/AA'K00YC.PSO_C?]F.\]Y4
MDD;$_L_A,Q9_Q8>D%,HJ+SUXT^XWFMR89L8LN(\@<H^@2G.E$UQ"4?#_=O]W
MJBW_^!SZ8$=WLIE.H[W&;DK:+-"R73F-DLO-!S=F^ "Z.^JVWA]47O,U)U1*
M0Z-6PBG\#2LZ@#^B$B5;'U)FCZB2/L(V %ZD\J;=Z.6YBKQV>HUV4E@RX?65
M:)IX>4:F+(AL(:PE9G,6L>S=LK!XZHW)S(Z$513U#-EGQ%B5E*F?9EA.A ]+
MJES"V90/IAG-&<(PBO_X7SW;ZKY?7.5 )2^\I)K*6^),^3+0AVKLL5A42>.P
MI-KE+/N*6N?55W0 -ZM8"@<4',>RP>#K"!X;&?=8^_.:+9 3'TQ<;VC,L$EG
MQ'@5KMUN]+/3>FYFC[-XRFM:E-2YM" [[=^)TR8;X5@VC*]S=')38O2;?Y $
M0S)<OK&=M,CX+=J@ 3S*XQ4[+LXC HI<>F]%\9=!V3GNMHNR]EG,2WC3 BUV
MT&,*FZJ^WOSOIR__<_<!3'"K9[_G?FC\Y'&[.Z0&$SXB#!8NZQ>,M*P)S?&E
MA[MF:)SC.!QXY*G3@["I*X#%YFPY_,+WP 3%U"TSYP(+$20#Q<>:A>G[;^#?
M?'[ZM?@"&B#%#S'$#2SE(4,'7S#.BX I_YZ!7X8.^$@L^H7E7^"*!67X;[Q
MA, >7N6"9E./]Z6Y<(Q'W/OG[\C)A9 )6,J+&V&M;?)D>(V@@A00V0,Q (IX
M1&F3P@\ANRS;\0#'?EHY"I*,W0H4,JTJ!)>]$KC2&)X'WYHC1T-L\4]QUE$0
M^^7#M/B>N(_H3=F8Q!Q.;W!?V,^)AW2$92V0CMS/RGY7QM7?R8=M<Q5$*2H0
M/6N1.,6>B"Y3XX$QR0>6?7W,ERT%MER!*RGO.LK#>SQ:G!8E.T';0DZ>QU>?
M"!H^3/15QA,V\$;> %T[+\2/?!^VB=(R8E[:)9:("]D];N*.+%E06GJ.!:B1
MQ\#E&X(Y>237B&<,1G[X$L_7F(OV3>[2BI%V5!"-S/C!0+[9X"F #3V^YE1&
M.,W"QQQCQZ(P32)M<0)QT4&#TPS=)[!R$-^QF5A%'H6,Q]@00#W ='+@7Y-$
MC["8V6)G9,O'VR_&_6N (8D72UW,5T'+UXGG32@)!#]]F,$IQ.*X<$+E$S6D
MV+B< ;@]$,5$V<+W<ADD'<V*(.BK.QJ!?#'J;@@&WH2$&\X8>1+$KB\[(<1?
MP(F"Q7%5Q=X)^@*]*CU"<1\9RI*-^A><(Y,G-QJ[ S8C>>#M4T'2R9;9('4Y
M+SA&@-7/WH"<@/#9&W(;F% AAZZ Z\""<&ILE77G:4SH!0O?PHDI"^QC2GCR
M$OM2\J+;D :$:,?Y20@!]60JOXK<D<ND8Q5<X@$<$3R3*B7)K$H'<\Y_J4I\
MOE6?^@:GF5X"W.C"+<I& 3:>^.$K8U>Y!@'1MH-- IGHW22;%U !?[IU6!^6
M_,,11"LO"AXZ%O"("*BRF!BJ5OQ7[!3.]P?1+K]#G$1]0W6U#Q\\$OI2TK]4
M]("+[5+<YB4]46C*8IEO!\_E!7X3N<'@"04/_L!=L-3G%A_R#N-LV].+F*_J
M,_+.)KP);##+^D3YE5#3DW1YLHG]8>2^R(&OPK?-OK;8;;6@TRJ;Q4H.%OGA
M)&)7PO]* T>\AV Q8@'$O']TDR#88M;0&NZRQT4*,XW#Y<FS!!K@*@S * N'
M$HCA=$1?$N]MX>1VH^Q/,-7FHCWF!BKB_7F<_+,Q_NNE^Y;^$UCGBA #?6ZT
M[(Q_/W&_NPWP[N%\\$&V+A_>&D[#;O_AJ" O*EJ;C[RC_ ,H4>0]<'E/9%P]
M6[HJU_2;^RIF-!>BZ< HVZN2>:+4W%UB$MINOO_XX>:0/C*MPBIUTP].K+<B
M1>/A#<,]:+(/__RC.YZ\A\@H(>#7^UM-P 4$E!=M_+0$2IG2<68_X>")Z4+H
MD=*/+O?0AEX\B%C2&2IAE::T+,H;O#!J11XRS/'"*[D?2= 9>+##/TWZ0HQN
M.C9M@@W'XXM=$523. 'XCS![-G\8@T+(;F9XSD]OS$W]FW;V>,7F88156-"F
M?4B!^) FP&C#C-K8%[5I.F:SVS=;MK5D/T!RQ+.*XYG(O,3@"!12[D W$S&B
MLADX[AL]N?XH34;2<9OI3$?X"?#+!]2KCX3NIIDNPLY:TF3ZII4!PL@P)6+8
MZ8VK?78]G[<H0SR!;G_FZA=67,ZJ@RO./<4G9:R0J_<P2J)[4A&AS( E#^B8
M4(T&!> BUC<-]!7#L3<P9//UU*/H#R\5#RFJY'$FMYS)E>R @O8Q)@\33YNC
M#\#_7D.1RL"O0]@F!(J^Q*DP<&<QH08@.!2'2HM3?2<9**,L.M@>HB_ N\"T
M<% ;^AE&G8.I>WSHFE7C0PFY<63>V3]0+GR,=/@)L5[%%:9"Q@]D)>B8QU^)
M;'B6X3R7,@??M 2@0'S%E)DWN@SAR!4BS 03*9)+ACN$!6&8P.$G\%5A\!C.
M%WE-?#>@:JP2])+2UOP(]QGE/&VE[!O?*K#*9RX&SP6PB,,>H3(IC\GD(3>V
M$ YZ8PH \3X*PK\)EPX2.#1.E#T7><^7"+B8G'3<*LD+)HZW(-D4BV+'.(1P
MG' D XHO2 "7V)H%FE=VG7_NY1?M8R^_4,3*)F"AP@%'/)Q<-9<0:D^<K0)[
M&&T7-U)9M>%(KW-%>>+!@Z<PY!?(,6,_1.UJG%8%)U80#"V^[24U_[+Z+"V@
MS4#\9++K<VGA- F= ?FA_9&9*NZ1C#@O^D*#0*X*7KZ$43P/@I/"&D$@,V!Q
MXM:E[IFX\@SH-\)T#[,7Z#5=%1WC'1Y=;AWT$J_\8HUSC=$%E[RS=P? .H$K
M2EPFR95\1J\AN3DA=-((908K$+RYV';L_L K^83_XEI<HBPA8Q-Y"0,2!@[E
M")*,0CT+,A".^4I,CC"<8#C!V_&D NF)11@,T4( 'P_2.P*L(D(G!J^1W"EI
MDN]Z8Y3T$;P;9=J-7D&71PL.-XZ&G-'$+,Q6B<L2)T<G_G(6N+*P'8\1GG,+
M(X[EQ8%E,U>7HJP&82D#O DCLN)CZ"%8;8+!(NJF0(3C0,89@*D1['X:BU I
MHW)4RR"U3')+<@@OJVB=9,7(// RV-"(7"_.E;TF4&/I;>D3RZU!6(C,/5OF
MCE0&2_Q*@1>L9!;JREQ&>N7GD7B:&=CHY,HP*Y#$0>$!"ZN%.'1>0!4 '!PX
MQI"?7U:6((;F'&^*JO#* -GP0CX0B@"+.# E1?<E-=GXC!(@.V1A)K8E7%)O
MP LCP/&"U4JN^!Y"?,_! ^)E"3KPN3MP3L=BX)PK44Z>+8JM?I(&O+#LX31D
M#].49'EUI=L<.B^I5,>0PLS%(J,4!0G!FQXJ8TQD>.0^@YB+!\P$9Z>8="'>
MO> W/+_TZ?R1N&/Y%7E&9K^5H&DB%?CE41)\Y*[F):BB",(S)ZBX!Y^C?Z)J
MV;!FBF;.'3X#?0G7;P0R@RMZQ$Q%WI!)/4MT(,S++H&@$C-><.,@'I-0KC#-
M=TS@[S$%32G;X<#!4B-8 X3[)#L(V7XWXF[_DSO!""[Q37@1TD >SS[\B5:"
MF4@.)I_38K3,V26GM^J4U12Y4'U([^R0%N?<4@.YRBZ:Z,M.46OP3"#4W$S=
M"\K= P>PY'9=PH+FZBSFBD#3S%TF@A0G(%8BDX6#;:(_\919O4']?ES:'R-,
MOHIRRS)K@09GSF*08,\E'>17DU1I>H3-F2SAP.)8@%>1-V=YBXJV@I^<XF3+
M?JI@ <72=!@!"/V*\8*R"U\'ZQ$SQ0+P\76^R$BH!]X3Q"LN"DX+S[%E=TX;
M.K&V1;6=\I=H/,<EO=TGBN?X3[Q/_%AN)O8)[=@\0OR]K= =LQL^)Z)MA?%X
MKD0["-+C(:TMCN$@KR:IV7YX-2ZI@<4+WI:6&&L,R!UM7VG(E<NV;7:<GD)S
M[S5XGI;>]8&C3%O#/VH)/EX)OK1:IMWIJF5_*SM(<[.NCT#>$@=)^$2B/72Y
M2Y30PJY&BU(-5$\46V:O7<$3*&?ZSDSE.O/83Y,OEF.VNYHQZC'&MLR6;>^=
M,3I^32^6MS36)90Y#MGKF59G0]!H!7S;T^;-9;O;KNS0::[LF"N.V3V4QNS;
MG\Y<QRZHLCV .1^R=+XNFG9S$> K+V-BO#UAKA!XS1-VO1E%)Q885]N[TKIZ
MV>J;CMVO[%FM/9OJ$,[PQHL_<[D],M&US5ZG1LG5PJN%=W_"ZUAF?X.(=A_9
MR+F.+8=\F;J**>!IQC"<8:56E5F(Q_PB10<AT!/7;]!-*Q)YI>J7Y&;[II@9
M4+\]>641XYN.DT&]S/K405G*I!PNC? H'4/ ,+FBM8K*&1&;*0/BS7'K>#/J
M--/;(U\<2V\^!2\HP5X3CP$NT51QCI^4K"(0W<;T_@<6L)&75A[CJP6L&_44
MS<%^(G0F?4]@M$H8S56PGB:UP_"&]G TBF%S#Z\ENR(<9#Z@/:8%).T !!^8
M4%?.1Z^KH%<-60-2=S*8SYO+FETB:]9B6:O \#DDZI5PKH3K&2P7WJ1?/860
M+I,6^9AA!BY_#OSX"2C*HOE6$ 6KOK>TNG?)Y=F)6MU>H[O<Z"Z[1JQN<(7<
M\"=+-."YQEO^)BYW\()"[QEOD)M#O 1!G/+6.?P^;\H1O5D<8AOKWH\*T&,U
M[[J-WM:\JV# ]LT[7$EM'%/'I/R:7/&<@4E9>;:677A5-RL)IA11.-NY6@JH
MQ(&_J$^+/+?4(\+.*O<GH4IQ%%IX.*Z;L*9 CJ=3/X'8%,+M$AK^:?E'K0S2
MUDI7? D+-[0NV[$BP]B\7+"?V%DG[ Z7B)!C5"SFWEG"J'06PZC@<KWA7RZ\
M;K/3[ Z;SJ@_:K>LONLRM^4ZKM-EG5['9?W_:[<OC@M[Y= -?N7'QY=??[WZ
MZ\VGF\^W'XW[__[X\;MQ\^W;S>>_??SMX^?O]^J=CLLA29<B_!&B"\)T8RQR
M]>#Z9,3C)X2/R+71\G$W!.<%=N9NRL;B44T'G_^-/<Y\WOI[?_5W@ZQ-.)[Y
MCV1&P&+A"7#_\;9$Z]<4[=Z%@B1?X'Y\N_M^=WOSR;BYO?WR^^?O=Y__9GS]
M\NGN]N[CO7'S^8/Q\?[[W6\WWS\>FRS]EN"LB1%K,0&*SN(X 10%C_0U]A(4
MGA2>!R$BO 1X5.(&XM<R@S8B"0I&^-H"AI RP"1'&;"?*?R!)),#9J_\FD <
MPUDNDXCQPY' 31"-98PG&079'+4!8W-W,& 3FH4RH D$' 6(YBSX_+!%D?X]
MH'DI]U,:SB(2 OYLR%NSQ4_3T7?)'P1Y7IY"R@.\!(2E]!![0\^-""SD.X51
MN-*DHWXM>L@^=XY]D$'&HUD"/U@"M4;3%A+(*(X)\Z_9\#'3-L\'3(@T"@)&
M(#G&R0[@YTQLSO<X&H6,-U L_#"F9,DH.PUPT6_X6X89#/"RS:60.V7KR>73
M9!8MBY?J3B800%!&A^/4 IU3F2;1 \Y.XP4TFB,1,"4=*Y,9*L/3>8'Q#)P,
M9[$ ,1'X52E^@ #5&@I0.W3X0H[%D_K, R\:S,:P?W@LK/4# 6@*,BY8%8>"
MX0!@'%)%[B6)3:<;BI9(8IGTC%D4F!(1-'W9'!YH&*><XK!?&8%DSZX_XT.-
M*I <$1 $AB/PRU,Q ;;2V1]@9(Y"D[4M0'I$9A7Z2XG@]34U ]*6S <=8YHY
M \"",XA<3+FO:5E)2H<LAM4^X"'.P,%7E]KE1_$W<4'PC0^S0@(JNX,% S=F
M4<:P$4<B2B^GX1PIVQR&:I6A/.G0/'[LT,@9/!)3PS"-W(&<J9?>Q4Q?)V*D
M%GZ%9E\@TLO$9WDT+8G+HV)J::6R%JF1)6I*FP())"?B*=CV<9Q@$LTFP# .
M_O8+IO*" )&4Y6 _''RX!/\VA3C*'*KI[-UT1GC9@!*Q5GP=FB!$8>;61(X8
MIZF+W ,3@U#$LEC\IX*$P=IG,1AS$\]@A,K#<RXF0*X4/9[ %^'\&D*4C0M$
MV'CA2L%)*4'^[^^_"J!]/E$/9"H<H"] 8V*&PD'D&-*85855P&F+GAM/.CU
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
MYO*<Z%W24H6*_#D,KGZC^7]D\>^3SBKU=E4Q][MTGQ]Y@X?*VUVWL&*N12Z
MC8[3C18[YF0VP$5W?^AE;LGXK'O7BX3O+#-[XDT\JYS)T/+I4_Q#LEUXB9II
MS1-I"@P!1!0*+P'SAZ5Z7L3'\\GY@A-_1M:3?X-?=Q2G:SU@^H+G!BC0D-^C
MM#;N/,+71VG]I/$W5TZ<\\-8SKHJK#3*N2/HZ5/\!+8=C<:E"&??4M&)NOJ^
M4%22P+ H#72OF?!#%*1D"W.!"/QBP,A.&9T?2,@&W!-#?D.(2P<-"5$RPI"_
MI(3V/-:$)WGQD\S_O) 5IQR4Z%0G]O'EE6;#(I:QXH$A;C&)C5<X&?L*3E(X
MN-SH55QK8A\:$HO:2L7Q-<Q*OS@C:#XC)LUSI'O-=:'A#43)MI-;S%RI<LE+
M\A3A:I?-("49/:[K+.FX)\)R!^3=NF*9R]TZG3E!O3J@I!)G.@>,L?*TL5H8
M$5Y<W\R&U >!DCH+7/%?947%[S4/=L2#K_S>$=4MF:Z(Z<),5BSQ:4DS@U?-
MC-TS(YO"32G/QZ^+J]%I+$QH>DN@.;,KSE"QVA#C4RR!@A-K*/+QSWSP<$2G
M-850F@F[8L(M!L]B;#+.4J9<>)ISUN*_<\HO-DO%@>KIY&T<N<R&;*CYLS/^
MB'!-9)(A: C"L3<P6/#L16$@(A#IV/+4:%KVF'9X\2)*"165:;?5Q_\^N)@M
M'Z,K<#-7DA1&"38U+Z>:P_I* QED^'OTJS6O=L2K+[GV7.$91,QGSYA>1BRZ
M0A\U5N3%L<%3!FJV@*PLDDP6+RO4(5"?#=A0EL,+&_&GV)B$4VP: E%^HDMV
MM#5XB8;9Y_0>VG]-ZMASK<Z^[,:AY\M;LO3MF%C"Q BFD?A5=<G*W.&_9O%4
M%[K-%;KU=*';3M+_:;(/#LQ/(6SN$U6*WQ!XP9$I>S:Y64P^DD^ 17=7/FV1
MXS.8^6*H18AQ5(F$K[H*1U=4(Y;\F@58CL*C*JQ_2MV:!TS>H?G,YU"IPI5N
MM0,LIJ.2P9*5S>5:19N4W)($@\CD7T<SO(H2V5=>2Q)E?PLO@J\8/F^*I!(4
M>BM>HJ=UR=*VQ=RZ\9QL?@/LIQ?SBCUQ/(SHE*?WOE*K J5#D_ZP-=B0.@.B
M"0(;.B%D*BEBB]-F!UZ"Q*NS,^@[]$C:ARC#X4 <^8(G4;Y$"L!XFT\V]YUT
M3B3W '%RR2)?PTN8X+_2&]DY_D@WE!>V9YNZBKEEOFIE56Y13P6>"]E6HJ_@
MN\._#W@25-GME%N0>\:,S^ $&+8I;PW^Z@J0GZ_87!%,W039YWXVAEU@8+EC
M1V_A7>>"TJ!#UB7=9^KULE(A,#_D?8L(^I#624'(;1:FX]<DHWZ?PG2@$H&M
MF3Y)9"ZCQ[4'.'3#P06^444"QH6_8L60U;SZN[@Z0O,H0#Z2*LR(BV^FPS26
MG7"F.!*D%0/NH]7!J\XA0;E@N_E0-!#284$00O$*T!'I>YF+@*&"K*FK9@ZX
MHX;^HS=Z7:129=[*N7N7_3H@"3N6AB2LPR7]_O$WHWO3,/[?[S>?O]]]O_E^
M]S\?"4L._O!)_O>'N_O;3U_N?_^&.'-__?+[=^.WFV]___C=^'9W_W=E#YU%
MM2D@& @B\0V=O7L6H/X\>]-79?>QN*IW%LQ-(DL-6G9DV32$P\QXTVDWK 0*
M%OS4<NS&N=YHGBT2+JIT@Q&-)@S8J\&K72C=+ENFT?%[8CYOHI MC -W@@<J
M@AN P1*EJ*)VCFP1/!(O\S/U-%0/&;ET(F#W.1P',VX4,T]9#D))B<YD'(1K
M/+U.L"J!0V19S3_D\'#%5CPI'A$=.[SF75:*OFEFP'33G*B;2650K00\3CC6
MR>-$/<LV!\[A=0<.>?C/P.#)_L&K\<V+?RB[AV6X5ZN= 1+D3(_YR)]AWI5_
M50 =9Z+/D2#-0)(&P@\.7T>"1- : ALPK9O,HSP.L8P\,B[+',J#8TD+__R0
MSN[O]Q\27 11013+G!^;1Z<6Y?)9G@@LZZ2\FYI@,_U2A"O*?W*5L)$7$R>@
MCPD(.N<A7BWR>EFR7[!"L$D^%OD]/A'N)OBWHFA5U+Y2(R"5 7/,M8#JC?D3
M\/>FM!PY>1,.?"Z"A2]3/B(#IBDJ\X ,8.305%(^1+8Q)ZV1LRF&Y44)%$B*
M\_!^):(]X1"<7J()6 "8J5Q/OIK=(!X94PSA9#8G/64R')HC22BZJ=Q Y%5*
MWD(M\3';9!'S6AZQJVS)97HC)MKFY[G"ER?$@VH43>KR'T_@/;S\M1">)$5+
M)?9'-GJ4YRL20<@]+X>NO/VA. M&[G/(4UK"A&&=7LZ<X:FW'<^2]E.TQ!SF
M:^$ARMP(X;/BRM2<NQQ82EDD!N;E?E*E(,CDFY:%;6 S,%FG56A^ @78X4M@
M;%I\O:+T.D[*9KF4<,^W^+@$42'?,\DS'-$XAB Q>)P^R5]FJU!X^C4.)]BU
M+) _</F(83-EC]Z ''MYKN N0YH&1NWP,D."BX\+1:QS+Q+6+7,,Q1YP!+P,
M<426_XP_^X%-7YCP5))E\%), >@I76!1KBM0A =D,+*MGF*M_%'"T<[I(&:1
M1J#285(P(J[H\)G> $T$+Y8&P^")PN=_SW!3H]=U=5-G9!8I5*=92T:F=;P9
M&;1F[_?/CB4YF5[#^/7N\\WGV[N;3\;]]YOO?$@$I6;N?__Z]1/]]\VW?QH?
M;K[?;)"X/.@6L1WYIP<V[2X8K-1?H5FX?D6W<_?YP\?_-;Y_,6Z_?+[_\ND.
M6/+Q0RG_"GO=]PA=$<RA3RC7P@_,Q(S1=%9J:9[$[)W\E_=#+Y[X[NL[+Z#G
MT8_>YSE4TL1-'.(?IRK=:'*UIIFYR>!>\7$#/OJE^/>^T^CVG-*/F@VK].^+
M'M5J-*WNTB>):;ZK!MVN.20:I/5B.:]'H]U8=R S7QR$RZ(]_1UO1Z6^^C^[
MRJS%>(K8Z"\7_[7&,=/%>U!T&,C[N8-'0/ UY,ARC^!0T7WSU]F##WY4YD[L
M5R\:__D7]_I &0R2>./RS][/=^#J?9Z-X0D#ZMX&FGS#O0^NK LC<,>PGB'S
MWE'K2QA]AC]<T D\NG(Z%]=__? %(O\;T_C:P*$WN<==OS<J/_]3R-$GDW<
M>>^!,K]&>(46#T+3N+TION?K[<V7OQIW']Y5?R,RXFZ8O*]W<6VWG/DWO)T[
MN\6,[^V5,9E<7NZ'4=7)XE-$*VHU1>W8697+\%);6'49UVU2H7&:8OFK2##=
M4X)I 4>U=BJPEFI,[K2U=BJRE@J,<^:T,U.Q _[0ER0#JO7T5-C=Z6@]560M
M%1C76:JG]SBS]BGTX<'QGT1*7FOLJ3"^T]4:J\A:*C"NOU1CT^'O6D]/A=V=
MGM931=:R/N-Z]L5U4LJ^LHQ=*^NI\+S37Z:LO]"-1.%F15_W%J][K5JN>[O'
M>]VKTMVA;*&I?)6Q::O*H9J]GMR(B8"'BDC^&KH189M^\")&C=T+]Z3,)M:[
MMU9FN=_8\"4,A\8M!)<F.+"^-PJCP'.K5<SL6R.^3+R .L:"-1O5CDX7) ZW
M!+2C,L2!*'VB?HG%]9T4BF3%T+C$GU_<\E]?O,5*Z(7UGZ1Y\"^VF4/[+:^H
MG"N0-^&3-&F!I=A6][VH;S/GJ^='<MB1G" "1STS7ID;)46L8C0;6KSAPG)5
M.;5"KC0@Q^]2S):%$YJ:L#/367G#KRA77SF+7!:44WT^UI:&7/C,8IEMZ2CS
M"6]3I?I!_Y4FV&.A=SHOD/<QBIDOQ<9$21[!O<5M.1G&I21)NA@0ZFV^DIB
M,6OGAT=#<Q$?$ZL&^?"PS+#YR(/]3;"\/9WBA>-Y)M-T"$2^ZP'6<T-WONX6
M[9=*(,ES9>8R "2)AJ2U2:M]TNLJ62 .=LGZS '_!2=NX'O$(7F9(]G;9%(D
MW<)+$3:S@O2GF+<>4<EU*"#B$3@A%<$437R9P3#30M=DU&2"&<MY>B=?="M>
M1*;!>D\?/'*L@%\C=\QH+MREW;2<MX87Q[,40P!6#?(T9500>C]!M2- @R_1
MHQN(R38)W;YC!2^XE?Q7<9R=G7G[Y?Y+;N(WG]-'+A:HL9*M-4@>]A#-"" 7
M:6_WB/8M["O (6X$@&K,@G_/\ 2GP7#BB"3TW:HX0<LT9X_$*#_\.0  6BOA
M!AR=4>"]**N/#JS-EJWN")21!\X3>BQ.V3@#%,6[=.9^Y8EYRB0O?"CRG!.5
M?]SJY25J3\.OT;;QRGA<MFM,N.W*#HN&H 0'\,BP);%[O%2(VC$(ZYLF#">(
M()F8AP]WXP=FBE+ C>,"F_I[X[YAC!C.2?&SQ?F^^Y+.KG0G$U@K%3E&,U_@
M7HM105F[<I]'QOXH.UXR9D8^DO9TE.<5,!X[8M@PP]?U3RS:MO&=AB.EGPJ>
M)BCEB+5#I,H.!:57$03J TV\QC:ZD#=?X/RSB%[M/F"'1G:&UGIZA-.Q:3".
M]+N08?(K9O) T:P&SB*B N%0;5A5Q0%G*O#Q2Y9U8L*6H+68:SI@0SX9( &5
M(U/CQ3_BA71*41Q7D'P%0<TL[^?7@R+";9=HTPQCL:Z&<3_C([?EEY.]L9]
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
M_%('R)T!9Z-L+B/C)'/BRF3P/"VI/<M90<]4629T/<M)%&'U !.3W :2;+-
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
MC(]\;RS<#GT>;T=96G9\,YL^A1$(P;"BRV$UK27T+E]@-5)OO4 ;2SZ;)>-
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
M,K5P5+D6V5ZE.PMMD!:>(Q>>#4Q+1>'I+CP/=+ID_]+Q>Q Q6.9_X/A]=+W
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
MA/K;0 D=?E]EV?^3)M+KT>/P?_1SIFYTYP4$#V)0UT9EKMM9)G(]ZILY42
MOA\^H(M'2]4-M&*:H@Y2-_1\C_ X&JBS8A%%I&9AA/^%':^]@,HHX'$$D:,.
MG0/7IQ[8\40I>$82TE>2$/T#*;N(0:B=.!U.''<*)(=OQ9/P(7#<07BOG%?T
MU# %"HSBU\8MY6WHXV(4%A#4=V>Q>J/_\<O(BV>^.W_C!406^M$O<B@L7V]0
M;14DCR23/_[EP1LE$]1=[0[K+_'BY,WR<1L^^F?Y[Z>@%<][E1]UVMW*O]<]
MJMMMGW4OUWI4_=_[%R?[O:C>8J(O<<?7#/ \TX6ZTG5:?2&9/75/5]G44&%2
M=3O;JHY:_;=R(^==@!W^WJJAF@Y4Q#OM=UNYS?XT)VG=36N,^&SV*?<ZO?ZF
M-KSL0M\GHO4.1%N?:-UU],:FL-A NNUHDQNJ< U&)2MN8[4/11[8MG/]PK4\
MI>UOR^_>1H7K=5 LTKE.;MPHF@,U_LOU4[6VQWUQ='5VVNIVG[U\KD)U-3%L
M=1"[GTWL5BAGW;S876*I7+]U>;$IW-5![IK$?P>YVTSMZL8%[[S#]>+GS]^Z
M81."]T)(F:U9RU_R4<V60TF$("$+FD S\M][TUGNI:W&4KGW$XN\SQ'DWSJ]
MZ#8$Y_\SM_)Z:5-HX[S4PW1?IV+HWX&7=IZ7EEWO&V>F/C'3Y9.A1LTJ0&KL
MU?V5,HEK9"S+;=]FU&'XD0:79!&+S1]VHP/.LSH13Z/,WBB@)C6,.S]YGH9Q
M3SKJ9D<"#O)]D.^=:4-W?OI,;>@. GX0\)]5P!O5W.[\[)F:V[VXA*\#G"R#
M"[8$I30!P)?&3M/;;Y5RW.$PG,++,?2,952*,)4YR*64\X%;%"?PAVDN[5\D
M]$2_D-8P"V./NK+1@'7O7F7X1Y0:ZW?"+YWL)^X EI F]3]IRB%B&9!-#?O_
MXG)1U+SSSEGG?-3ICR_'IR?=2]=5[HG;=_OGZNSBS%67__>B=Z1_-#'0[)E[
MIXX'D7*_'[MCV.$;UW]PYS'RN\W<P-F:[CT>NUM'LX(<B- =XQ5C(8JO_M<@
M0I$J[VJKY"]A<8C\-^%(_?#BEO,A&+9K^=+:^.E6%$#UXC]JB;NQ)>Z]D;C;
M!1*W(E^='JVH#[U@!"]ZT[UX 61Y/36<;MN1Z_1C.H7G#,LU?X7IF2Z6:GP:
M?YJIB##G<7:]G?/MZP6I&ETG\C=\A(*K<(9<'*7JZ.HM_&?DS31@_=<TAK7%
ML:/O1%E)023@,WDX0]W-2^$%C:)VM=[Z0/#Z6&5JOX2VKU+]+?K:__P?%[U>
MYY<;OCQ:5?=8;0SRI39(:^S^\BQW[*H7O-#I01U(M(1$:7P@41V),/ L9 K3
MZ$"F&C)%:JPBN4XMHX#(YV$=4#J(O9'G1AZ\%!2V6ZPMBKUX)1.B05K\#T5M
MD4-PC%K@5]XK/YRU'!5,L$RJQ9C=< K7%ZIQ>"YH>_A.RYG ,S!50?XB5E2I
MX.\YK@M_$8**CYRA[\8Q4FJ,]5V)\H+8\>$-D7N'W@)P(OY]!M1,W&A.-']W
M'_KPA6?A@K.5W)H*GP-/[+C?KJC,@A-7^  JES@_^>5Y_+$53W+D18KR2NH>
M'1^T*!(UG 3P^KNY,X/-X%FUG=UCT%FD[KTPC?VY X\#GV9$S#/09I8;.[41
ME%C=H=FQN*;]P\?W):LPQ2J?3^,O5%&(88%;?E(^1@*[&F*<Y"&,1K$*3(BD
MD]F0%T=7R4-8"H]DRY<E@K;Y;,G3.TN>/J+,.;]Z)%=@=\+I#N.V\S:-J(22
M"BK3*)DX?Z5N!-X(BAQ6L[2<!P4D&X%91E-)C946@]TZ3*01.M(RC.[<P/M;
M#-$ J14H)B664M*/*'5)/_-XP&7N$)*)F^#KW"" :V0(9P2/^<\4SHQ7XND1
MJ?0LTCF6[0M/XR9 2 E: $B:"_\K*HG^#-KB+G*G0"A0&L"MP&SX55I&GC9F
M62U+1<M[0F/G(S7PQU_4Z"$,1\Z-E\Q;S@W(-IQ"X+G.1+DC(6G,NA#_,L2J
M4*#&*"4"M>&2J*(76,8V5<D(UE27X\#514#661@09?0I/:A(S@U6. D?\I3V
M8BT&+?H0'I#ZF%Z.5%8 ZZ%7"B\%$M&ZY2$W$T^-G7<_U#!%W>9\&H\](+7S
M2AOD[S[)3?RZ13\8T@^$9K!$%)H8MSEUO^.502H>M;Q]%^ ;X=7AT$7/ -8'
M3QHJX-AKKO#%]4JZ.[:(P3<"R_IZLF M4$L3$Q'NK@%0C>@1PKN!A'>^)A/7
M[/+WVPZ/ZR6B#),0A-_IMH1WD6/%5?E';#.02^?$*HFS^T)^D3,@9ZVAX'R5
M+ZQ#0OPMJK^*TF;-!CD6;SM_X%1:WP,Q8A'-T1P^2E!?T'5F>,9Z'2X#M";_
M^2[$?8'@?5>)U9N+9!#CLA3ZBQ2L!G8\#8$V"MG+T]!%92A<)QAMYUM #YH
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
MC TQAF2S87K4Q1)R6+""Y8U:MN-"\**LH[^!F!MHB#$;<_.H:1>E%H&5A-_
M/4D#4TKQR5N:Y$>1RCJYO=@'N2WG8'GGNYB#)<\;XR\!.993RN=QN)J:'7"3
M^"@V/57-W,%\R!A=.#)H160RT+B^DJ2"U3@W^D&_H 6/Z2@VTL'.]BFPHX6:
MJEWU4_&FE3PIE?XE+F6)40%%R7$ZH^8:%'<AK#F5"\(=Q;,>@SE.V83-*#(:
M<<  2;J+$:0HG65OQ-.DZQ*].PPGV66'& $;P1KPF3*\DC+/'KN4J$%\=<R
MW"Q)"03#@@[MA9D_MVQ%8P<SY-%(]Y2IC3T>Z:FL93'X_C(!RFHQ.-YF=)32
M'P7E+E$Y,Z^4S1:.3&3?1&8F4)XUX@ (?HU.O^=R$ALT07&LT@%/MPQ/=[)G
M>+KS2CS=Q=&:QNSG"!$<R1P[FR?@4[[3\S-J+\G+"M_Q<C]\1TT,$C-#B0UZ
M[K74+M.Y6Q[! 7]K*)T7MZJ33;>RX2P\M07K62<AW,-PW\'U:TV*RBQVLARY
M4\=PF$ZE 59N'HPUGY3_8'7*RGJ_Y;L8%9H)>793K#16&!+UJ4>9B[8%A@GC
M-SDA%1B5UHMXG1]3)F06JS?Z'[_ S3WSW?D;+R"RT(]^D5,298K:@R8OP*I%
M4=*Y\<>B6"XOV^>=<]0M203_?Z1?+&JG#63^9]7?+\\O*S_IM+LUOZA^TLEI
M^Z)7_=$6'P7[NZC^A7[2/XE<3#(X%#RZ_^^H?Y2I>U+';SI.%Z3CG\N^UIO]
MP"_^8MUIJ,B+Q\<G]^S"5E)A</GPTD;HE9$HO.$.G/"MHRO*A3M#'UQ48\$:
MU9:,]GOS[\K2/58K[+XVR5]BG<VP6OE]0_#CK?>M> QP!;R\MB?KY[>*65R/
M(O3C-OY"_%>]]X7&P-G)RM; -^+1WX!%<TT'8%G#-Z,TPJDXF9W0/;HZ+5HE
M/#AG)_B[\+[&\S="?L'AB0K&3!R.DP<P739!\]UG]5)3C<VP>N_HJK_#K+YK
MJOS3>(Q9FCRCC],HH :J!Z6.G'[V/)S>/RCU%S5:*EW1GT67_X9-82F@;AG'
MW"'3E;%"F^>Z?Y(SO""J4IGROMR-B3"Y0%*F/[7S)5WX0JHK&VH F.Y1:, ]
MV0]E@JS@ADRCFT&:&-C)S'>'>GHGM1MN.Q]1RV#W0H2@2,,8C."K@!+UBX>"
M;K8$\H/!T'R*WGKQ+(Q=_]/XMS"X^PUWPCCMNI!CMSQA$?[6T%#8NEGV#%P$
M\H<$.2:*"'1]@]"5&I%B0E:0M[>]G)]@V 0@HEL+9;-%$-9U[!.9\M5:&K \
MJY8_JG2D(& X/J:IR^;74G.&\!G\@P63&V ,$>4RWR!&)QSAFF=L@*I<&:7Z
MA[P7!B!X4;8E#1;&Q"$*\D 1<&!.B74$%PRX^-KZ;3XZ&=%,:7PKMK1"&,(L
M\K@)U5AW]77UK/+\!M0/+V9,)$,$*9<G[YU3MT#"7^KXZ2K'8)H)8^,EQ@QC
MCA^N!,' ZY9S6$X3YWJ5#S3<7J!]!C=(.Z$L:PX:RG@?\UL-L^,LK878XX\-
MKHAF(61C;.9V1V/X+ZGYL[>;M3O.$)P,KH@7%;FW%S3(TR6)UC(1,WQ7@:=
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
MTS07]CL!--P9TMTNP$ T.KDMN%3P3W%E\#\9N Q##Q*SX9)^W013U\?H+,1
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
MD+VU<DI04^:4-6\@##UQ]5$W^LYU?L7Y)$-50'6O-8>BZO[&:SNY#D:_>>[
M\[UD7C.5XN2R/ OCY+)B3E(3:/R(H3LTY3!V!D)EF@^G2>\BC>(6F%% (I]F
MVPR5=X^_A+^:KPW#.)%9.>9OOI 59RCO\O"+L]-V[WS?YTST%CYJ0R,"'I%2
M;E[3=GLF@[/BK( U*P5WD@[Y]O\_0>G>35Y'/I.S?0@T[$&@80F&K]8X^5<4
MQO$-#P*M"!Z<=HZN+KJG.QHX.(3M#M+T*&E: EA<49K6B].=8DO-5K?[Y!3^
MLPO;2^/ZML LWRJ<D<-LAY^C&FO)5:I90RN!^(MAD;5%OG=T==FZ[&RJT4P#
M8&$'H=A/H5AR(VY2*/I'5^>MSM/OP0T)Q<_D9U*0[2FE$'LFTE4[W!N17N8R
MNC.*H_^=2?4-L,='E50:N&/OAQH=_ZVBL$JF3SAGT.W]TNCZFXTZC >Y:,[6
M-NG\+9>+,O]C7\_+AK#^3^"^F0O-RA"]@5,=*SBAT6%8W\]ENSXB-FH2MFM;
MK]0]M'5^UNP^&@>?[B 7CXER/EXNSH^N^IW66>?)M^ FW;H=!RO]H3 ^&=X%
M\!O''0Z!3$ELA2R=AXD*G ?E3-Q[^ )R W"  3<1A9PDM!ZBD4T(LZ ?>7&<
MPHT)O_6"^] ;*OQ^,E'.4#BB[7Q*(V?FSFEV5Z*B:>RXD7+N5* BU_?GSD E
M#PK6L1!.<WZIV6\X^A$OP\5^YM=]Q;?E.!$H.7PS2J.1.\]8[P)9KWBZM,6%
M2[KH/-^2+H^N+LM+@J_$;2=WJE6HF T<:Q FU4<;PF%F1UL5!J?3A>T'L5A3
M\*LJW@/E@V] P _B?;+7+'CLT'?CV!M["L>9S]S(310P4!@PQX4!)3$8;,=0
M(B>>*(4#T'$&.J?)B8!3UPL2^/^.Z]R[?LH /A=A2;R>H&K)/$>]BN)MYYI
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
MX8BYL[P<ZJW7;3<RWD(XY-5O; S Z:"+1B=;/:NW(JX[9-^MVU+9#\%]<BP
M5LOY-*OOGDQ_O<7,F[JCF\/N4;'#,7"KE.B\;/BB:OH("L;_G_^CU^__4D$6
M8F7[*__!O4IOAY["BY0J8N/01PR-;M0^2Z-9R+$Q_$^\GN\L' [^#4>%I@F&
MT2BL@A\-?1Q0:E))"Y?56K2DV_9UNT4%E]Q>S;EY^W^.S[K89AICSG+U#SPR
MH-P9U2>:N-40!_:.4'3-;K+JSDBYB5;"G__WMUU+AU85)AF=&X0)XH],J.%;
M^Q;G9XME]S9*[YSK$2@O+Y;TM,'KOG][;6"Y7-&94#S#JL0@T_+>@VU(MN3#
MQ[=$8'TT]!*XN&0*@N0@.?6"641)R.FD([+7R/E,&9GN(#-(W7@HS51'R(!Q
MDH[FJ&FY1\:<4@; C2HR[LPWN#H52CZ"L.BZMO'6EPL9K0J<BGPG\&/;\P):
MAY$_>O!&\$\VC^?' S"?"94'M^ QNV:$UM->FN; .]9E=@4 DTM?/=[?)HYO
M"*I_#%SCWBF;:YUOV&A6%H^TRE:_<+M3=T1#H&6CVB!A-%F<3I5NDAO/$'M'
M 1A/LF#CE!S&(3 E%0.OL9=&WOW=$^*53+L*@$#R3$:<[&#W8D4K@I'Y,NX
M"(.$B+).+86G% [H%2?&O$B.Z#6+BYN058UDYG_;/86EES&#?S-IS 4NG5,-
MD<!G+%@ ;GKLP;/2V*3I<%PYD<.(BZR1DFZT46*>/-]003 !%)<L?P=U\'I7
M\NW-=8Z+C.F\Y"RH)CNS8KCIJ*]D6/VA1'X+G>'K3\N$S> ;< 5X\038 1Q4
M% RX)/$L&9P^(NWY,4TBHIDSP)PT G#@*V[<;F9B^JL4:E29=LC>&*^TBCWM
M*@/4.5@EB!H-PS\I-\H%91&H!]?7P:>J H63)D)Q5K?/)#I00*SD[LV5C?2-
MZ0]M4;N@2=#",\8R@3#N::7Z+/ V*YQTBVZ8\V[G NQS. )%SU4_PB'807A3
M!4,TL<$<]X#UQV./UC)O\>YG8*MJ^P$7SS@&\R<T]K#=@_.'0NL?'H[QT26D
MP4>#)-$%Z&J#,GMF0O 0,45PW:8=6U4\IRN8T";*8&@;MGU]GV]3?Z[ @D$
M%!LR]\-+IF@C@*G?5#V7C302:S#;P(R&/./M@(+"V6R2$%N@,3H?1HG-;[N4
M;UQ(FRPM4=3^)B10I=J*2*-M,NR:8=<EA08O@'+J=; 8I!R=SH%V&BE)ZY:I
M])8T6'L)8G>/KLZ7$?LQ\(>:UE\ON;7>T=5911E.?FLK-"Q8M]-V;>W*KZ'$
M@M92)HQJS\?@+8/K9)O*99<4_9JA^.OA7ZG'/MXN1])S;DE#M695JS"+^M7]
MM2O/)]]HP1:S;4I)WD!LZ"%4>UM(V)&$N[R[P 3[0+$E%(TV+L8K+Q"=C=\-
MA^*=Z)/A4!C^U/<5%>-21%Q%R5R [*^+<<+#D2W6O19H)M=0HE(R6@TE;3-]
M(ETZ(BE"$^3UL_2&0?>NGA7@$((E)_ 22U:&8:SKW#4$B-:A<16%^I:63D]D
MJ;X*5 H^+5"P>ZJ2*S:9W"HCK#]5IY&\LJ9AO*11VTL8QGVL3U_:(G>;K%&>
MG=[(HZ_!R%NYJ5I]K+O <1J[KCJKH3Q<4RV\<&;8-]9>[Y7BT9)K<^W)*ERK
M=226[!3\I(*O<BC!*9;@= L$VO42G)/*$IS3IY3@--!/?2GTU]:5K5T-4=%?
M&E7HYS!*[*VS&RA_Q42RX!>^J[FC?&5PN^C5##QLL\1-_JP<J54,S<\Q24_!
MMW")'SM%4S5"4XY,&*LON+$,\XT&=!;4-N2+.VCITMY*H&T0I#07V3YWT'RQ
MP-J7].$L7T&<52H^T48XKWE1/*59Z=H7Q"G"=\N3AY\<RJPI/GM&@#88B95;
MR9#(W.9A<<^_?F?)4LWX3OE(C_5\"PK]?1A]U@-#*SK_C=QYMEJL/NN4NOW!
M5XQ+FO79&FGY"/6$J C[D@4!?!C%>%=7_T3^6I:/?(@5R_"E5ED7$E7(R.,Y
MNK^D3]9GAOW%>5QZ&*T[2/NT1QC]9>8.S; 89?UBF)HZERWIWHRXGJH[D1KR
M$D'S([E(-TJ:6?!="[++W0M=8J/]/"E#)P/9"K#C5\N#5OGC@CT]3H.A-+W4
M"MT V. KL@<WP?X4H2=MI[ )S,-$23NXT"],I6><NVPHRMZ5%7!_M?2C#0LI
MW3D6)D3?5U(WB^_@,1.!>E CW<23FU?B.Q6.JUC3+2X0I[2<&K?YI6[M]:1K
M2=^V)SO'"ZM_0=%75O\VTO5<-]?8WWYBM]]9TCQ\_;NYO_T,:K^[N)AJ+_N7
MK>FC_ RS>7]WYS5UVI3Q#>_A5O3B WQU<\-N*,4G=.7[>9^HW(PYE7IHKJ&L
ME"L7VV#M <$;A\JNGJ%;&)RKH7O= G1/*M+1<+=Z95FO,=:[@)'%BS"I7]L8
M/ISVBV#PC9#9.(>J*_,S'9D&.[2=:^R)/G,C:>N-8EH^Z'REC_VZFD: K=P?
MX=^)HJZ;</\JI5ME)B%0C0-.W+U-,ICV3^-PG#Q0-8!_%T:@MJ=<LZ8;YG&%
M8Z+<*3_(+"S&'#'\ YL=X%^&WDPCH/(;!,<,EH,VG*>'F^5G=I:G>X)_B&\U
M'KK'S4*^J-$#E@_>>,F\Y=P \\#I!)[+!6,)@=D1"4'K, LU3Z&ZO5^1UUK.
M+=Q0X&KX\,MV]M4).8$/>@24B.I!HC8O4533&=OGE1U3 VWJA1LL]M=<O;'F
M^B&N)=#-C09MP>-?(:L73\((6RU0QFE!^&J?[+]F6-D5 <!8 <.,;(G+8"?&
MJ$C+_7RD=T3'[KDSVDRSD'X-J.(90_3]/J+4ES!N-O*D&)0&L@!=[H1WU]SM
MHO3[,^VV)OF>-><VJ*B2R3GQHAIN88;HDBV0'WQ2 ;+RXJ$?QJG4%.JP+;S$
MFZ)1(\D\48_6ZSCOQBUS8VWEYMJ7F6H\N# &<":!F2=#E?VQM9EZ8RQGLWVP
MEX2SEK2IULI4%$&[@.,-UDLR%5EN MM6+<GP7*Q\]M?T=$GIQ+BFE28Z]7%"
M&MI)U1.=],!9FL4CR-UL)-6:;/W8/!MO+6/N#U2/%Z_/Y&='5Q=+[R+/DMU\
M!O5I4GU2TS"R9ONY\UQ[I^=K!N9/UFM2];3%751KUA5&NF<IL-K=S?2B%N[P
MP\?W2[:H<Z7U6R61@NT:D2I-) 6.KS^&VH5V7GZA\,ZKY&&5V:E%)<8JWD2V
M^QRGNX%;P@WF?"M.I-FZU;$F@SCH2>O +S-%5GB+YZ5GK\"#ISPH(BZXDTM<
MFL%NU"YW0Z<.^)$S#:.L32#]E"[K@5*!-=,=LW01W59V_BUKJ[X'QF;CQC9;
M.6VYGN%F]H* #V_]VYDJK[G'COR<TK1L;=@NA._&,G41L[C:SM!-/-K.%]U2
M/3-X!M3@7^>&M67BYFUD.]QF^CF& SB-; AT85!!?G#)!&YAE*=ABB&Y;"'9
M?#B<*&X;'M3YQB)DR2I!01DH'A9@WKSH!SO7FX"OYT8F<'>O-OADJU/53I;D
M61MYR.MFZ4^V.N<-#K@2<_2$!/W)D@3],V^HCQLJCV=;9USYIJI_FZ<YUTSB
M[W".OMLK%<,6$O5N=F_G$\Q?PB&.2:5NKS0-]U8Z/\8M!QS-MNDG2%_,.@J&
M9G@//X$>1HT<R5(<.5]/G+<?KQTT ."M$UCHL6T:3$-?#5/?C9R1Y]X%88S]
M9?2P(;2AI1V?(^WXS/KOP-" ZUK>JMOWZ6%!:"-PNT(V@BH7(_VE@W3H*WBK
M._1&3IQ1P$Q$(TQ;&'T?8XK81C&7:%F*4E<CC6G0RF.#@"<O&;<&O7;56302
M<R6$[LG9RR!T@317)Z?K('3EK]8!9A.0LVC'8T,])R\?P3PA2/6"H:SE,'26
M;2A$-2NL>B_75;%IM@CIOTZQ3VCOI*I75P!O6Z@+2<&(BS"U] HJ-_BQ/S<I
M8KPIC5;!?J&@X,";(2>,4LXX@2J7'\@I:/*Q:E4F8[UK*R/RH;BI-SI&?]W'
MGE]W7J)/G0(4.F-F/#9"-QM^B$VHH;W>U)J3IU0_++%]*H"L5KAF[?#>4^;K
M/&FE%T=7'U>(*VW)22*Y65Y(4YH[N@KDTTQ26AGQ394]C50M:]_5IT^9CO1T
MM^!RR5U@G5_%\6V5&7.#!9IC>6^H:'%OL, HOW7=,-?:?!X+YGY7([>NW<WM
M!".6_T$HP7^I0*''\)6:Q7M*O!4PXYR'";QU?AP^8-02)UEXX&%PW94\__/$
M!7$:4HMYN EOPK;S6S+*7!W^6I;3K&P=0Y'TS+S7K=#E%717E_6<09F)NY&?
M1@L6(+DML*-YYH7@%X8JHN;E(R]6-*85LW1#'!M+SA2]F7($TH09S06: NU.
MJ<GAH39\26UXKT"@7:\-/ZVL#3_;A?&,GZ@+_C"U019%Q5"+"H/K[CA28S 5
M2 :&;CQYO,=]NJ08<J,>-Y@,5Q<KE?<^Z$(]:D"%3BUW]->8I$CEA9]5R'MW
M $KP+2N0EO,97#Z5_2>A/Y$<@D/!K.+_8^]=F]1&LK71OZ+@W3WCCJ 8) 0"
M^QPBJLOVO+6CN\OA<G>?^;1#!4F5ME6(D425:W[]62LS=;^#@!1D[#UM&] E
M,]?]\BP;ZT0QR>@@(&H$^QL/^R7+0GC0XPM[N!<5\(;](Q@VY(=)$">+I75"
M#/KDQ(9@E2E?/%@;;2\,16/\U5WTFQZYBH"/<;RV^P$QJTT.5IN@'UP"?VKX
M)ABJB:6*6)5/"E@XIWBLT+@%9GBQ4-XS,<J FV-=I<&BXDHD]GQ>E)9\@9&
MAE*C*L]<MB[R>=EDO3 MSC+A/-;W3C2W@2[7^KG!:(TKE@F-W/(^IE(Y(#<E
MYOZN(]C&Y;/&#A&.&F,V:YA7YI)(MKRS8(] >+DA:M=;=,)A:ACX6&'X7H@R
MG[!P>*#6Q[U""P(T-+"8B0&:QVAJ3CH\0N,YMO.JL ^OV(>#@![C"-?Q'F<^
M(BFA<IF"\I+8IIR96QN#<7)*#I+Q&>&5:57W$BT8?$-3R?^BUO6@(C*G?;VT
M=7V_CO*T$-K!3BC(:G*\J":N_FT GG>W(5@,\@L;-MV8_;3>7"MAOJ9YVW%!
MFO.$*Z3UR24QCN:YW'%!@N6$B]01O;ID8F/]WNM^(6IS6^/0NP3$,*Y *6QK
MX#J05'<@%W9AF8)$UV$\I(H4U[D5)/QF>FCK9X-H7P,-%S.<[WUG\5T! WM!
MIZ4D)VA^8L,5[]F<Z0X''O][NR8E<<>"+: ^U6]AP0&"83P_V&'0,(S[_79]
M&T8<K=@XW V_Y;(X/^8]@=OB9?DCD2(;IMGC=OT"QCZ^XQU&*[F6N.?WJL,=
M4:H)6'&N]L=3HS\<YRA^]H(HI&&5?_>4>T([0J]Q?@^7Z![=/_2J&PJ!BNQ:
MV)3A4*10E]RA)Q>MO3%VU+@ .RHQWQE><DW8VX<S*F/D0PU*=EU?^6_G::W\
M;F&G+^O5Q??!XEK8,FL9<-'-DT56RB<6FP*'] Y'(6'?\?\ZM$*6DP\%SWMP
M3)<VM2]AO1A! >_BGF 'GT\4G'D:5-5P6_2+B4#AWZ*7"H(G+,H1!3^L-=LK
MZGL$>.7!3B+5PEL(*/I*&1NT!*WZI>.FPT*BH(2& ,WX;[%5YB.0P+KC\C W
M9L\+D)#6@W ,'"5XX$'*_@Q*W85K4X[*MFEUP\:Q01RX**&#S@2+CF1]0B1=
MENW V"0P@A\S<>FMT/V/6*%0I"&S_I(6;&*:7+S!S"7*BVEC'V 8]*!!R0>D
M4W15(\& 924+6O3A6?!&H,\\$$@N"P&SO5 LS]L&#B[&+2FXP*GAT*/RN12K
MOA+6+$@S:C2(BE<%2"QXF$#A-JOBBBIOPK:6U"(YZMQ;-.^:Q@U](*^PJ<%[
M6V/0QJ(;MF8("D";\1*_G'=TMC:V6G['07O--.1DGW* QMIQ5@<G-$B*P/;A
M4K<;KDS,!6BYES 0$F]?;AP7F91UU>6M^1Z#?&%-8-.%PRXW\P*/_7YJ?I-Q
M@X;,6-B81T0SY!_4.V8Y)> +/E/=6B\<X! ^1I+F>%R:#@G#ICGW*&&N4L:Z
M]MCF/V_L$.$DE\M8ZB]$#0E7^VNL[:C G>%V/MPR9M!G?A6W\ -P(0W6A3A0
M0;8E60\99)@P4(EBS5/0RV0CE?DZ[N_^.IM8[U^G5!+I?-K7OYG/FP\? WLM
M.N)-*I64H*0L9&PR<:91#R$^.DKM9S*"H&>?L6XD6SA;_NSF8K(\/4,9AOH'
M,?<@%$+<N?K*W[RQ3*IJB4F;7XE,;%-W>#+*=8?I0C]1,_\^M&50[CI;N-1<
M IE])'Q W(--/IN6^R=:2\Q13F^%UVPO(@]Z,@H]:#TGRI0P-P-C,V-F@@VQ
M<7(J&/)$44($90DP.V>'=7E2X>>Q>T75Q8<GT[(<P*')5#\JF8Z%)M-Q&9F*
MZ>:<4J74Y=MT<4+6-HDE&1NR3D6ZX7=G_0R4@6!R,>;YI^MXWMV&, MM[ZI@
M> G@(:W-C-FD(OQ_G'49Y;G.6DV0S.:-A=\B2Z-&CJUX)"IG]LCSC,J T-4D
MRR WSL1^<; C1KLLP%%,R&68+8U%X?$"V)-IJ?JE,]R;OOWL>&\/7O>HK\]@
M!<.<P1;-8E5[T5S'@K^QL3=I(\@,,R\*K>!C7(J<$+#3$ARR%\**NP,WC1M(
M87$0CW!PI)8$J*S&065I[#[I>N;::[3FC,:J"%7Q]%<8IZ)!9%JG&/1R<3L
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
M/]#=>Z&/A75R[X/C>^))Q!-5"Q8X9+O"=C*'I.%CC[0H)4KV;6?[IIB,KQ_
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
MH!CIRQQ5C>R;,AIA]<%@-)(NC4P9=5.CG"!E-#* :8QLK$WFC 0@,.G'M*J
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
M%*];#[LU\:M?;% Q5[#3CDV\J]_ 108R=>B6*1LX(_S=L[,D-F:D\ *X!QS
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
M78WQ>?"9CBE 9CI&$C/@V/L[*T@+)C?OC*);RF**KA!QI#':RP 9'!D92S>
MA\X'.G)0 .MFW#C"2.&!F'V<.8.BF-'J^(@R8XFXF&;[^9>*"[UY+I/3^4=)
M!@S"9@K>G9)_=\S$S5[<#Z!T>C<87(;TR66??'--:V 9.K>>B]XFMF;N+,A$
MCY46P_4P#NGR.6?<+XYCSCB\:>RUKI)'"^.NND/=T)\:D#TSN!+H';?N>NP*
M,7/9\ACHV1A/E,W4T$.AT,S<+AL7*=*=<\9_\UOB#8QG-\S3Z=B:0Y>G32?*
M@6"ATV19B<#A\0G3J5'7S(/Y"E<539E$G0TT"_@?]*$AT,3 4C:HTQ"2VZ$!
M=VP.V#0XGN[*)?HS%=-]\=^QQR6,@ZSQ0:J L]$,;<K26C.#TL5KV5LLA[\'
M?N@:?+XF5Y!2R_$;8Q.U<=>,?OWI=_(WF4@>IDA89X>W*=M-Q"FGN6&<M:YS
M+R_;4W+KQA!D BU,0*K67,S\NKCGZ_@]/?::%0LOT]0"QG&KVEK$^P:"D6UV
M_\G6[P8W$<86WW[][**^8/L8E4HU_)Y#&L4+EY:=+LOADK/>N/X[[@A=PM6<
MA)WHD)'(S>$(E4AH";*(PFV,OZ70-#4/FV,2074!C"LZ*E:])QYFCE6>QI ?
M,)D>5[I2BC*3'LFHS <\[]W@NT\9-6"Z,G>7)N;@O%F9K>9T5O(!ZW&LS@8/
MBADDP R)/X3_I.O+X(X8<IR[@_,\<9&QH+,NC72 *[WDXNH'GA0::=I1>8,)
M6KWX2'B2IV:%SFC6!S+\LP4\M%9T".:\SQM:_DL*#\?L5+7FXHF=*TY7W$P5
M^$$-E'M(DPMG+^2<3*7E5U#9V>O8.48B^^B$F<--TN!A7,5G\*E@[N@4-YER
M["^8<KB3_B6GW+SD2#N7+.D1-)5&EE4D"A>/MS ;OE-1FUL?!U26=KUEIHWN
M"%-!$J,Y1_-99;ZJ;*&YC?Z^"PDO?7/O;>30:H-)6*G79MW+.^_->@+-,N,1
M&>^B*-EF_OT$Q6SAJ)=\U('VVEDBV'+HI7-VT>ZTCZN;?)E)YB$*H/#<LI F
M68RCE.-;BJA=BZ@MQ292M-;&8<B=2E.=;:,DA=/FD2+QNTKI5 Y][SV>\#3]
M*#@,K=.9=?BO3CX'*J@.Q=&3[Q!>P]^S0*0M^\U)^GN*G;W4?&B#W=<WZ^]I
M8XZ!5E&T64;TOK$,6_?W;+Y7[=JM7Y?U?4U"0/,2PF5\2,:']A4?XNG@J4CS
M;'3(/\G(T,U,/%G&A<JH)\BXT'(]H6!.:5I#T,XNZEJEJ6W*L28C0FOSI"@S
M5WK6RN$,N!?W49RXZF<7G4I[+3> ]**M[$6+R[4,PZ/O=DV?K#=M.Y[I=-]O
M^CYG= .,V$HG)U J0S\R]',X]'4@H9_FZ89^#L,4W;CG6EJDTB+=M.=Z#8NT
M!0RH6:FI6Y\;>NH^Z^D.]J7O/2)F1WCTS]#RHJX+?H#E@'&E*:87Q>T%T\UK
MDS8C6/WX%BW%6OKC2JP_ URXA?V#$&?C615\C%A4$,)+DE"7%>I1JJ88"_%F
MFDUF=F'SCK9LYMJK17GUBRA4Q!8JR5I4-[#_+&L7!J\6=2A8W3+"+I6\AZXH
MF>23SZ)E?%''DBD'G%NG.Z\.ND*P5C+TL4!]$'JLYDI_=E]YK\;I@EQ;-!E9
M )N"E86+"G-9-.PA?DWBW6;*$.RJ<.U:FXV%RID:%A?H.:(<[$>F8][<\_J%
M#[QDN,_<,Q<_:R=_I QGKPO:0^R]@*QX!>22(3Z; VIG6:^(??;;6%0#E^H(
MF9Z*%7=?\6@T.8$UJN#%EU'%/78)7Z$O)(FM_V@F8[K:%7G70DIZ8YTI1XPS
MI^HV_86%F_&Y9'^U)?W5VL?67TW+[Z]6+TE_-;;BZB-V;N)F4YSV+(>SIK0#
M9O72Y*3/(:S:<_U@7N5Q9V8>4BF MQ"5;T1/3!]KAD7/D33S2GNU@"'FE!3G
M03G-JWCK!&!MMLWR.=PI,YW/_0).A=Q/?,3Z->B^Z.KCSZLE/H@$D7J[JBS)
MQ5@YK:-1K:O%,D3F?ZZUZT>^*6UK"3!*XS!36_Z)O1OZ&16 H/0ODLY2W-)>
M[$,H-\0RCL(%+L*EIST9<*D27$7 I>PCE6QDF:9-]^- O4J+>JYY;,F/O*H/
M?9_0V)L/?9^'WE183Z!2K)AG71 #ZQ<US_]#/3?/:=Y1SRY8WUKU2TF]YN*&
MYO/ $H>E)$F5F*346B&:RJ$=[>Q"*6OZHR0;23;;(9MBHBB';' P4FVV?6G9
MZ&9'Z5K[O/>I7!&FALZU6[:66W4HF%\H]W=6$5LAA:'3.+MH5C1EMA7F^ZKN
M=B4Z]IJ:=RCH,T_?V"3^-,\N6A5-G6WU+?'G\/%G!_RGA:VEM,[:PGE#^+-K
M/]"^\C@?AZX7G+/<GQQ_T$8WU*BV&ROL*2>"C2K6N595<J)$.!0&5SB[^*!\
M7))0NK42B$.AXR5DS' !I\.]SY_3WK0_IP3FI\2=576(/.3)09(.L/FU=4R)
M'R7$CW<PEQG\4&LU4"/+@A][Z$,T%>.=3BW:\?T_N8%NYQCH!Z46J'/4@F6W
M*-P[(D%E.EG])/V.FX3,T3"^)7SOW2:16E,VZY+9Q+7MR127M"II=1=*[!K$
MJC+_5ZLCB77%HYTR.9X.P6U/.F(7H$JC-5O_5(XV@3-FQ-*22R6Q(4M5<SG/
M+%%JU?94'OTY_VS3>%FO-I::".I\$T&MUNLK>@XWNNW6:@5B^2Y8K%&*DO'Y
M4&IOQ ?"8<&FZV!;"P<'$+,Y8SZ.=(2MX^=89S1_CNZ17J&ZURM\2HVM'.HF
MV22+_$/W+"3'U9VRM127K&_4F%EO+XW-*FOK;:9Y=N&X,[)C^0?D5;PV3:R;
M&EN]JZ*C[GL*C60-4,G+;4JY*5D#)&N 9 V0K $J-;B.L0:(+9A7LIUOU?=P
MN/I8M\S/JZ#.^W-BE^'4NZ*OI[*S#44DN6NMMG<473%#V$#4'+ Z]('GCF8*
MV-?)#3M.-^-Q.A-WT@%9K;7F=4 ^V$Q621#'21#%\KK?3Q%M#$0WUB^<D10A
M*:),F>KOIPA,8ZPHI9$1)VFQW+*^1J :(NA?K6"REN6R;RN@=+\_35N#M^,Z
M)WFS&=UG[-?*O>7T%V]8RGJ1<E]YJL'@3BR2P^@\_2YQ<RC]I9=(FZE9B'<"
M?ZZ=OL">*]=;J0?UPLH+5:EMK/)B+7F4=)DNJX8F26;O)+/,9MD5S2B29B3-
M' K-[$K.K&#Z*.K9A=JHU.MKSS;:$-WDI]<U=C;1H!R/[66:[%X>6SFFN!N#
M(C^F.&50R/#BW72'8FFLRY#AIF7J#_8/T/ITV)3^@AW[1R )DRY#+,D6\]A8
M+_Z9X6#KZE^G^/L#JF/.;S-?7^PCCG"JRU'J(<(H]B76,RL9%0IV:'PV0P\1
M+*4T:6<76K4],[YH"V+A, D5Y_9@2BH!R%,I&623 2!-,$:>J;=PY-"2^,X4
M[5X*)'L '+NG'FJ-L85SKJ:HM7YVT:QNJDW@6K&=O=S(7V?YTN(I; 6G>("-
M2N>8H]_T(/3@?^=,^% QY_?0)GQT%TPRJK!)0B-Q:J([NCWQ+?8#W7%"W09R
MB'@C-=.94&(VVO+A'BL-\EA2MW!V(&G^;;6JM3:8YK\X<WY%F[L<]MK2E'0V
MF@H1)YV4OH(H/F2[W-^(!E:L=+3LNIG*QI@6DW%S(3 -A"/+I2E\_%++_0U.
MUETHY*.TF\N0WL**3V_4?J7?L)JU>":.TL1,G):Z=B9.T:O<8T.I0V$C#=G0
M><OD@W+[Z<TM3C6LVVJ[N?8(@7+EKQT*833?11C'9^%OF3"&'J7%2:-]=M&H
MU)1-C7*7,J,0:;2DS-@!:5RYH5><,CIP0Y6&-F\*MQ0:6Z6,MA0:NZ ,ZY7F
M(;^*C6F;1]:9]B!0_VE(/<KF=TO1L&4"Z"*4%U*!<G:AK3]XK%P"H-3(SSHP
MCRS'&H51>["QN#"RCD!8HPGC0:=2;HA2"BM/JHH3^RH@1THZ?6PFH7*3&2%E
M(RN\YL_$&HW#@)7S -NC<O[8=JCF>RJ V?]EP*.\^UAQ$M+0_E!.=D307NAD
MJ@G<G@=%'T8MPH;'<QZ):-U4 8**0SR;%1:E/ Q).E6:H"RJ3=A:OF;A)L#3
MG*U9[L2&?/Q]H("C!B :8U^L?>[4X-%4U2[FR?A#]\UA'7=9H@PE>FA:+/4&
MN!]BAH[_>-9MS+F!IRD-_,_[2._?)U?HA9Z';4+'KA>!=;9=Z#FY>V^?IE6=
M5F6#2V$1<9*"H </XS(_@,AZH0]'HEXL#@1J%9<*C;,+K=)JKSU_="T/W<Z-
MJ'VBQ(WKO*3;EA<C_NT;5T="+G/TIEN0:^^EE29H4&I%K>\WDK,&L2R*Y&CE
MIAKNT5N@A4@32YI8^S:Q6@=N8LT.5RFCA;6XJ +_C;=O.:'.1Q&DTO/%.>MJ
MM87Y]+-3,^(T^K]F2R1$$GXM^8G^#-<1!O-_,I/0O:<ZBDYG:I!CZK]#+S%.
M7^CYLT?UG^<L:/A9M]_TB8] 3Y<W6,[Y% SG'7^JJ"0S/R69S'GQW\_>IXN\
M#4Y=8SP*MU$_KY>D?&5N+?=,$KV:U'+WW-'("EA Y,"F7_R@A.$Q.OY=XH?C
ML3UA<W1@O5<+S'K=\[!K!H^R"3^ @RS4!H80>JCK#LASZ,/*OE\ECV*%]*^P
M[&;L 8/U8/^L21CO1P.?P0O@".$ .&J(Q3GX8K8"K!1MX,6C<Q?"W9CTE=KN
M.!K6D:R'*L78<]'-C@X-6-L UJE;".30!/6BFKXXK"X"./CYK_7#YW]3(R
MI*C$B&&P'K"J)73K>Y1]\C:TC"'L8D(\^F=H>7&0$C<7;2"SQH#B5G!N3F"-
M<-/XH#L:VS3R*.1?AI_>%1_%PF0<Z\GFPUIZ0./B*/@GC79DLF/P-U#V[9OK
M_9P:W%*HD(U?>P+->35K:OOP:M;P8GC)&-X-K_T"M'JU3'C'GZ$._"Q@@H:8
M>J #C%]TCQ4/(6*XC#\8"9I5R57(<#T*9,<A;(\.;+Q,70RD"8: 7&] G[_&
MXH[A43&FAJ&V&\#O+-2@4]9F!HO]-!JGD,6S_)\,R])H^#PAX6%/MFFTJYUV
MJVR37Y1J4RE6AW?"F]KBC)PC'Z439620RY B+=_#*JZYA4$ZIS41A?DHY 29
M(A-D9DHF);@6@:O!5-,YJ9TG$$&[T@VNMF(W&5!I6#0QUELVW0!%NA"E"S$R
M8S1-7>)$1.T]L6IR_8.=LXM6;5.AMNTY!R7I2-+9(^F 4GKMS%:XS]*35I/T
M).E)TM,J]/2(&5WF/UE[O=7;?6N;:_>]FY#6XMA0&?R'!8,&/8^:5D BQ??
M0@9W#OE'Z%"BU;!OE]*J,"<EJQLP>1A!)P8_X2!2[3^@DQF13JU]F3H]^U3Y
M\I$E&I(?U(>%'-*U;8L9 E]UYR=+.+3\0/C&>9Z-J^,<;K$F-I\DE_0YB%<+
MQ^CH_$LQ&M0R--B8R>T'6-P-^/ZC[8LDK:^NYS$'<4\?PS>K!IJ;*;+$JIA:
M=;8FAL =VO!'A=F)NOF*<$F.WA4?)"=G'F!T1+^Z]BO+JX!],W<OAWSTRX?X
M@1OQ #_:>C"L[Q.&VME%8P$(.8X!R>B&P9WL'C6H]<J<V\_1Z\FSSL-:!=LQ
M:EHC?78U.KIA_O)SS]T5NWB(-Q&#X"N.Y.)]&?67I/XPW9H1('W1GCWK7W'G
M%/BHA8?*.2@/-3'&B]<;Z#\I,3T=^^CQ\%Y,3!AZ8.$B^"(SGANG*E?)M4.^
MZ9XQ%-W[WGA/8<MA:<&XT!2E+Z#P*CD\)GA%G[U0]R9$T1A$ZK.,$(%P XR*
M="-W!H?!M>.XKWH08L"44C((/18FPBABZ/LBKGCK!I0H[4K$-Q_#9Y_^&>(B
M_5<62A*$6C[0%92'-_1%M\D]AFHIJ@L'&$3'>.\SA5M'ELK'8MGL5)PJX]"Y
MBZ%!1)K9X'DE%=NS' S46B)L/4X@@RS' /)A;$K\$+['MQCB:72BV1A)Q):9
M\-,Q*%<8-QQ@0)PA8870T=AV)Q0CPK8('.)/1;32UJT1H"8<ZPWX)K(.]\4!
M>(!0L5V?[0%E,76,272N3$G P$(G'D8F_0 ^X&&)MR%U"' #"_?K/C.6J\?)
M?A,RU'V (#[#DSE-MB-6=L "HE$@F^\ +OD9=Z_[K@-+3>* MYGL&\D)GL:T
M@LGTQA&T+,!JNL1Q S*B-  ) +2)*K4E[HR]T:.X9SUY&25C6,P2^V:KZ-BW
M%) 'CLQ>A.@PU%]I]D15\AL+_F=V@=D%N .$,JC1)DB9P++QQ1/V';S6!MB;
MU0,C"I .W;$')T%AP5@CG,08XKT2GP:!S?FA1WVAA.BL@6L,1XPEAT%$4BST
MCB+%'<%9)G^#V_-TD\+1?XK4"1 ]<;)#:OT(O/&ZP)8Q,!\3C\@B@7V$=N"G
MRF(  Q@NX0HBO1CP#-?2R5A'FD)5UYDD2X]%UU!,7GT15391"D#R4$+,);S2
M@IS[&O8T<JP!&&_9FLC2'&@9X^8DEJ3%9)A=S)RB7*.!;GGD5;=#RML23S*Y
M%V]L/"(8IJ Y"UW*@G\S+0<?)R^@+^C GBE#+,8@HHR@5*(&4Q$ _A18J@=B
M@?])HQPF3+8 754/X$O.?9"AX!I6]C9XEHK/$1G(T0]!5TL^XQK;9(R&-Z9L
MX080 M$J$\YNQ3Z2;<SL GX*;_>#^"RP:)1X9'FF()9(JB"QCO1?+/<ER]FG
MML\RG)#<;&MD18P=]%DOY),F?SI8GC9]9@0X%=)&B*N,Q,&]+Q(>+ X'D('_
M%+-[FDOL'MA)+Y&;73R';O=TSYO 1W\@2N76^^3X<FHI&Z!1U,W4VLLVFT6W
MV=[+-EMG%XX[8U$M_X"C)>R5(28F;#F8<LB4*\Y6YJ I/HY<9,R2-1!/J8\6
MQ+2TEPG04YP;=C8_ QKWBW=JM6K-6LNL:8/.H%%7.KI.];JNZ5J+-MM-G7;^
MI6"XH?QYTR42I/EZ +=5ZU52+&WT@1/(/0J()Y",OK"6+KGF'GIY.:3(&P0M
M4+,;1!_BZMG44K$Z8<N3]/ID[O2916GJ_"7EN(V">MHW%PS"T-8]@E,11Z"S
M4)#_UXY10A5TF57!G,]@5-3R',^/ > *N0\]8XA.O"F_R[?N=06U=\]Z!<P
MP3^DM@GZQ0!,!C#&F%_5X!9&A8S!0,?L7F3?/*D;7C<6*YOSM0-_"#JE/S,>
MN9$1:;5I4KAV7D$+P:W>O3G4_,JKZA_%6JOX0=."K ,<LM)HMRJU1HXWE.\0
MU2X ")A2CY2Y&KHH?@:4V=X^@R.*IT+N7Z7162RXHRS%)[=K,*6;Q;62PZ]X
MUI3/MPX<7%G@\ZV2;UZ5W%H8K>4C1O %8)'= PPLD]F(H!3V^G?"\NZ&+R$H
ML]QLA6.XY-\N&W4.P&)QL]87GSR[.FBV $$3SF P5=Q*H29;DD]<X^Y3#FC^
M*_Z:1SH.N$<5W:=8BN D5B;#5MRK!<!&JQ$M%.;%B0"5A_S?='2MPDJ1;LX\
MB;"3!] JF*=VEAXRH1G\=_Q(% ;(HP305Q@4S233/(1#6?^)\MY[KDG[S!<6
MY[-ME%TTJXT5^$6.+H3\[%RKYJ2AH]<?%\#HJ-*J?]G*OE=D<R2@QM"!E[V
M;@@[1V S-7*$]ALEE[= K*X-M.0AFZ/.?R;X=BS\$&-N&>TB+P-55$@Q;I&R
MI= :-;F;"[UT\_@!XL[7&:[ 40 -9V8)FRQ>8D;1 _<940*UWD3@$E[J@Y4L
M8,NA&/)!''F\TP@S81'SF$[,M.7$;F15.C]H7*W"/8(/_T<?C;]<QG4Q,3*G
M,14?S" T,7E-$(."Y0&-_PGV.%(,;"P.:41PB1Q%<RDP]D\*\+T)BYY'6I@C
M#P-Q,]M /V_B&E,J6;&B.^F;*2AD-"W#?J]OK[8J9NH*BAF@!/S_NQ0S6KVV
M<S&CGEW4Y@Y"B^*+B!)Y?&-NH>RN& J@7$;@3*-=442K*SM%-.WLHE-1.NU*
M79UMU# /T68YUSL03=TYHM7/+EHY^DP&T0Y0;9\)!@@NJ<=82%@:$1EX[HAQ
MS*3 TX8GO4FZ@))+//3KF:&!Q7(N%R%.PLC_$8(B%;\/*1.?H+] \D1R!#\0
M%:N)E.!U=QA HCS:@T_!^ES!P94(%5$^$>^V88ONKXD3&C9U \N<V%SX#;AT
M_O!D/GV,=FPY&3WR*D3?:Q^_ REMD,>) QOS+4SGJ+?5+^0# .&J_RC^^3&E
M&!P:#CS05^J$S"TF7.PFO^L@;9G'HERH*S@\%J>QP</3*0A:110,QW%Q(?4C
MOQMW/'/?FM!:^$HH@#-:/L;X6/"5?SD3T8SCF#GQH>@XI>3[-%\>[>KUQ8S'
MYA(?^JWKC%R'!KJ7]A;]YKF^'[?[$%CV$.-8<0;<0(-2G9]$A$A7\&!+O.X[
M.ECS[$)=)ED0_;W(7,23ILOK/;Z')6IVBG+]*=+-3/Q4V?I<&8%78I4S\'FL
M_4]1%2T*ZY92"EBW4%UL+(>UD& Q:-_%$7/ FK)U\MCA2O&%57WHVMG:0FB'
MC'*1![M1U(/]2%\0YQ\HZ__HO"ST7-?S/-?U',^U6+5"?J/NBZ>/A^BF8-?*
M^XT(_ 0MAZ,EW-C[/-K\Y7E[4I>,BE\*B7L0GL:$_S</%IU2=H(HZ%<7A\Y>
MQ$%I93]0B::OEAOZ-J:R./H+^G+2&3*ZO\ \Y "8X<)SK$.6"GO+LF?O!E_%
M"P00LZ82G,= 1OL&1H%/G3RKL%$[NPC>9N.UR<[%[OP*5L.SQ3$5HR^\94A/
MMRY('/+58DDZ@(R@Y!N@UEVF/$4N9F=.N8IXNNM(-T%/9.XV/Q*%/B S;V:#
MFB)V /%>=) AL0\. .50#D7&V47RD?B92''/P#]J!*([#C!(@ZNHD76CI=,&
MF;6$'>93I ZKI7Q6N %A0J4%.T@AX#,C %327P<>8=O(PB:5KIAHR-E^PBBT
MA//L@9IO+BC?/2N85$@/J INP;%T,J2Z*4#J<S4>/V&YR@ -E(C,=7^="R]F
M*B9097F&$=3%=>#N/%0J7)Z2%=T22^Q@]P8['+IO64A;?D0!%?9EE!3&DX20
ML44C$AR>,X/[%HOT^G<\O& ,+9KNK8R$P')Z1_I/ZE4P18AW)!JG<)*E]MO
M(EG/'DR* Z,8?9]=GGJ(^Q!Y,G[JD/B^B'R+X7AJ@Q&5<. 8[NB912U$4 %
M\V)'Q^==8/CS!Y>SW1\,N(I)[HS 14,RMB.SJ84I/-89NG"FR&,Z @L$N6/8
M"$V"Z9[88,'S5"=\8.F-F\F-9YWIF57GIR@^4]L":N:<(H,B\%6 ;(N%.&+4
M3;T.MP'7PS]^<?%<F%1) Y:Y_,I=],@*F&\&^T9Y%':#&:\NP(8.!A9&3KDW
MG,80GD>?5?)=>,4QN0ON=>K!!,8,,Z.?"7:[7>$46PA"/CW$*/]N":6<78"M
M,2NA9JD)#P(7.^/CJ'*\]'B'*>#.KA=Y-,Q8UQ0R0G20$LZMF"\4A8]6UW8'
M(76.#(^8TM\P<SW2K5(YU7@X/^IDYD3Q,896(@ FY%<.XYJU?3924+@+&Z:H
M?@I4SY+. ,&B_N+^C&E00,G'!.[0IO[= ./5%+N7X\4 *EC^SZ\3_.^5CO'P
M')6_H>68&@UMUOPIORB)8<D)#Q/;HU(K]&H"C2JUOV+R-V.20J$+6+MC+W*#
M,FFK^Z*WG']@K=8ZU49+/>Y>9*7<E+H8Z.NT^#K8SF=QG212&F\J'@4;6$KE
ME0@D8:4\:,;3L83W]$@[@)X+^;7\1]U*2Y.=QXJ 2Y7@*@(N91^=V?8Y,2K2
M<DBW3.-52SDH<DY'@'H]MR- :OQ/HD.C[IR(,B6WYK]1!TR<#4V6HVW+/B_F
MKYON$R@Q?$4,S^]Y\7X,;YQ=--8>:RHQ7&+XQC"\N6$,;YY=:&N/FSIZ##^!
MT=NQ?O553H1;2(&M#5,@SG0JQ<"W$M#9CB=#+2#/T@'J[Q)0[P'4*5G&O4UH
M98=WQ9M4/R6@-J>GGX NT-ZP+M &7: 4DY)+H OL2.<&:V7U_AC-S0=YVTNC
MZ7-(FZ1"36^Z3VR1GN=@N'<JJV"/*L/1_%Z.!GU/9QQE"A/7F TZ[ZK.]M4)
M9T$BN\A8S_V:99D<8UY);B-C7FOKBY0RE@LVW5^*)38>:O))2ZVV6\TCS_-8
M_/*325/H'&9.2G<FFW.+62;[M(37SS(YQ%2 M1)--I$\<8A 4T_62S0_?V*%
M [\7!TH7W]FK9V1E*!YI$+.S8;=)Y^RBL?4@IHQC'A:?FQ_'W$+ X_!8V2IN
MDJT%? ^)6S5JF^563>P1.:_QQ6X"O@?,D Y8\9H?GMM:,.6@Z$S9,)UA0\!-
MI:<>.IV5/$9:'O%Y2AK2Y>XSO0Z*(:D;9DCJV86Z=G3W2 1_R1.8#I@A';"&
MU)<:TD*&I&V8(6F;2#V5&I+4D(Y50[J2&M)"AK3ABL)F?1,FF]20I(;TCA,S
M!&FMFC!X2#F QY#]-R?[;FZVW:$T[<PT59W;N;/@(#.<RVS95M0-B;<?N?+<
M4=09Z\GMI9JYY;1':C8.KP]2 LJDKQ%KIHX;LP86]L(3<T1=(^X3R3K;1?*>
M3Q-U?,N/!X'RI#1L />!]3QV0]BCZ7\\K"PUV2+IH%LD'7[JW*'V<YK3IHF\
M)X/N9)K3R-9'LO71]L"UE]9'6]#Z5^.K<?.X;6?MK>O)>N_OCVAS^RI9FU.Y
MLF-,[3+K1(\Q=:-;:%3;2X=LUA8-V5063MG\H'S,+YE;V\E7-CWM+^OXT<I=
M/UID-$\K.[11FS6B8Z,93.4 E_QA!</(,]S_)<8<='D[=?-)_[7:7!XM960W
M,?Y2::W?@&<MEZ>XLLTX>22]'"F]*"6@%VR5T\J=[RKII2Q()>F%TXM: GII
M@[VD5>KM_28=)?2R4UNM=/IQ_UN_>Y"ZL?KQ@S9'/=Y^@L[!$+Q6 H+O8$?>
M2J?6*D,/F0U;ZQ+#ZOO',#";+AK-2J.^M@HF,:R$&-8H 88IZ.2M*.VR\+ 3
M=^K==WL'J;34U]%8ULK@.QAJ;Y: VE7L/UUIU([(!28Q+,:P5@DP3#N[:#8J
MM<81.8TDAL48UBX!AM4!PY1*K;WVI(C#<K/L$T>>,N,+MS.HX,C<K<7.?C0<
MH@1Q"S"K+EI@TM3+.FACH^:T)#Y)?!'QJ26(LK=8E+U=:70VY;.2Y%<.3)3D
MMXS\RB#\,&A?JU=:C7KIR4\HSM$.!-PUYGO;<0%4ZI#P?F*Z(5:9%$KXE5M;
MN+6<BK)YWE>E5FU/U3F=\\\VS0/JU<92KZ@ZWRNJ5NOU%=,<-[KMUDH%6N0[
M\"IJDL= #Z@?66^L</$O1=B:ULC&*1H[XVO-%%_#61U:=39*00!P-OQ1*7JH
M9@D.U<$,J^JLHI0<"DOD"AZLM?^#M6N8"E.=%4')P09B,/N$ZIY/:*;DAPLJ
MK/O!ZA;V7Y6# NL1*H#*_I@:2(?VI)J-.QP_3U'WRE.N<;=P$6MPDW8)\%,Y
MNZA5&YMC)IT2G EC.ZWJ;#^'=9A)LU:"@V'?',E+ML%+M+WRDL<W*_@/]=;D
M)TVE!"B*G524ZFSBYWL92E,MP:$:9Q>=3?,3K03G0@]5;>%E10Q%,I9W,I;Z
M7AE+;V@Y^CHLI5X"+&UA8E9U-H;Q;I92 BNN#59<O5V=C=RNQ5-*8,FUP9*K
M:PLURBWQDNFA>(5ZUSP:0VJ&-KT;])W "B8_+)->6KYANW[HT3LGZ?'2]:CN
MW[C.RPULPD10!?ZU<^W 'BPSU.TKUP,2='HXD<RSJ/]UPO^<Y'2[Z=0.K]O-
MM>AJP[K/V"YR; 0$T1DDL---W.4&^4TR7NV@^]C(:6NGTS+F0*>MS;#0+0Y;
M*_'M'>G<,#EL;>T&-R?0T3H3Z)#9:3)"/]]66)(B?>LZ1NAY0-5<Q2T<?^]@
M/4V[TE3+'WZ7V2^2MC9*6TN2P]>G+95E?K=;FZI5._'4EG*GD*R:1;(A!\BU
M$^C.BP4+<^SL.N9OKFN^6;;]A*_+\V-H!^['>!$'E"Z+4W19Y)+L@7L!WCMM
M_62Z><I>L0=D2C/YM@>U+Q)\1 _(,P7&[6!#=G= QK"<:Q9LW;B1*=QE<SEL
MSAPH;A&4<F9-CD6PI+U%A&7%[8#ZV8564>MK]]G:^@SR@[2RCX.LCI2FM,ZV
MB*JQ(Z):FZ).8"+:]6BL6Q[.CCFMB6@?-EAJ'%%" LL;U_=S4;]Y=M%JM6<0
M_^/*.+]6)X'BLF*OO2H.A5,N*X:=AQ]IOCFP?E'S_#_4<W/QIH5AV;:JJ%_*
M,$1O=ZTH2F6@4,?<FFDB%:BC4Z"6='5\O_Z$W7\K]699FTY(BT02U&%9^9T#
M,TC*'>PK<:3O76&^_'&DB#Q6J]:LM<R:-N@,&G6EH^M4K^N:KK5HL]W4:>=?
MB@8:_VPMQKXC=ODC2V_=@!*E627%(IL]CYH64VFO+$=W#$NWKQT_\$+4=&>#
MF5JMQ@D;X$G-;A!]B MG8YQ=C!'"@KPZAK^&X'LP]6KZDM+:6*'MQV^Y<KWD
M*-2_<\1QG)<':E#K%7'$GQ.AU6HSN__O*;1)G1\WD0<!]1#BND^9V:DB4AN.
M8+.PB,^+F2(\B)+6]<Q-&OPF;0;F@PX!R^FK^XI+;V3Z:JZ .=2!IFM/,3V
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
ME@NDOGCW/;XZ_C*&C))[^N;9A5K-Z76)O(D?G[/8K(+(M@O\&6 0PO%!B9\
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
M^CX-$O]5K/I%C86BWF5J.VK;+UH*Z2/7>4FK<)4H(0I;] QL]PU^];MK(V:
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
M+GAM;-U]67-;R;'FNW^%IN=UTJI]<=B^H99:#D7(W0JI>WSG"5%+EH0Q"&@
M4(M__62!B[@3!/* 1^KHH$02.N>KRJ]RJ<K*_.M_?3F:/?F$R]5T,?_;3_+/
MXJ<G."^+.IV__]M/?_S^$L)/__7W/_WIK_\#X+]_?OOZR8M%.3["^?K)\R6F
M-=8GGZ?K#T_6'_#)OQ;+?T\_I2=O9FG=%LLC@+]O_MGSQ<>OR^G[#^LG2BAS
M]K&SWR[_$DTUUHH(,6$#8ZJ&9#Q"D2BC,*B5TO_K_5^,4"A\R&"DIH^):"$:
M'Z%*'8W!K'.(FX?.IO-__Z5_R6F%3VAX\]7FV[_]]&&]_OB7IT\_?_[\YR]Y
M.?OS8OG^J1)"/SW[]$^G'_]R[?.?]>;3,L;X=//;\X^NIC=]D!XKG_[W/U^_
M*Q_P*,%TOEJG>>DO6$W_LMK\\/6BI/5FUN_%]>363_3OX.QCT'\$4H&6?_ZR
MJC_]_4]/GIQ,QW(QP[?8GO0__WC[ZM(K2=CX9;JB/X^>]M\_?;Z8KQ:S:>WB
M_3G-.NYW'Q#7*T*_>=KZZT?\VT^KZ=''&9[][,,2V]]^*O7+BE H+=4)AO]Y
M^\.>?H-7TJP<SS:S\9J^/WUD!\."%+^L<5[Q9$+.WCE;E$L?FG5Q+)9G_W*6
M,LXV/YT<K^!]2A\GKZ<I3V?3]117$RM"LZEH\%)),,4&B(IXJ4)KV6D,,MG+
M4]/'L:*!;.37TBIOA'CZ[*=]SI[B;+TZ^\EF%C<S>,/K3^:.923/CY=+6LZ3
M$I-L/@M:>]J"L9'6HS<.6DTE(DFS!3'<@$Y17![7!58\6Y8GBV7%):FHGYY\
MQJY.3K75":2T+-?H<GFEG'[BZ>KXZ&CS3)BN\>CLW[?EXHA'VNL%ZUR?B)3
M[RMS6BOK92KK?Y&^?GZ\6B^.<'F&[>NOBWDY!1>L2SE%"=K% B;*!%$'#Y(4
MK9721A\<,Q&VA+8-.]1WQHXAI,)&F=\^XI(F8_[^-9)UN0F6",58(R.$;!,8
M7RJ$E!3X:+,4Q3IO,S-9[@6U#4WT=T837DGP$83\ON6%,5[ DT-SR;O0\9".
MPQHA)PP@=!!H"%K*A9L9MZ+9AA+F>Z,$S]RS<>'9:D6.UR2;*J)&!<%O;%OU
MD*1R((.5-!PAJTO,<C]Y\[[XW^)JO9P6\B2?I]6'BRO+>"U-<H"8#1CM,N2F
M!$BI"X4A2%\E\XANPS(F_V@'>5^E,,N4,Q/XS$>KWE>RJIK&1>O3E&RAVV 0
MM"Y#\\9GKP;A\0-<X4,Y.PRBWGURV>3[9KD@*[K^^H;BQ/6S>?WE_QU//_:M
MC%]Q/4G6FJR;!V7Z%H.O"7+IBEDD(TOQ5CANK_<N/&/R81BDSS;U [FV;_LT
M_M;^6.%FL!-$';&51EK'5S M- C"%,C!M!JLB%%S1_=W AJ3_\) ![[)9^-#
M9^3ZZSLD"[3QIGH\MCA>O\54I[.O+W"-RZ/I/.49ODS3Y?].LV-\=K0X)EU&
MH9A6+2'X%CV84#K21A.!OI1,X7PNR,R5G<%NPR/[_?#H,$+CC99.AGW!UTE*
M)+*%"E04I/Y:RC0!DC@?G0_:"OJQ&2)0N@ID&VZX[X<;^T\VF]S_L5C4S]/9
M;.)CL5Z14M.2J&>RHAB]" &U^1@P6(7*,XOZ[-W;2-=_/]+=:4K9!/KK8HVK
MMUAP^JDKEW\L%RL:3BQ!&P(A*6XG)&@HEL\.M/(^>>UUDYI9N#?AV#L**J5K
MR N/)1_MS&\/3J50,I*WKFCY%-T@QA8@&"F2"C)FS^T7W85G3.'PWIRX%C%Q
M"6+0$X3-6MX,]@Q:U)6L)ZU#T?IQKJH4Y=7<P#6K.VKR]>L!S@^N 1M30,U.
M%G[1L+'FCWDF18WUVW#/\;CLBHXB@G9&DS56!5*K%:IU-!':&V,:,U5N1S.F
MD)N='TQ"8"/%N_6B_/O#8D:SNCKQXB=6-(51*W"^$CFMM1"U%R"JU8UHJVOF
MWG"[CF+_/29L2/-:-X_>1!P3%9(WU@0H618PE3R>9&VAT=ED/ W66>X=\1M@
MC,E6[BG]Z[M+^TTZHX$\.EK,+Z P6A8TQI)=COU\)P:(-F^BSNAE;A&1^^C@
M*H8QF3UFN>\UW7S'!K5.^]C3[$V:UE?SY^GC=)UF$Q-]LS(;D-$1 XTF8]M/
M^5+P/FI9O1/<P=XM4,9DV9@IP#'Y;$QXB^LTG6/])2WGT_G[%7GPQT=]JK&^
MP#8MTWXRFVN6ECPP@XF,;72073+@*=;-Q=I87& _2[P/U9AVEYGYP2P2-JK<
MD!2F3"DUDDLN10_ILHZ03<F0E=0YVU8#^S[@?0EXN^\>O$E?NY-Y'G@8)ZV+
M!E(J@@(/AY"DT&2<;7/H?6B&71?>B&1,7M">'+AMOV"/J><[33GZ.%M\17R+
MFZ5VPT@M^5]2Y !8 REH05\2N6S@0W%9I:IH,7*?FMP':DRN$C,Y> 7"YSN5
MLCR^$8[SMII@B;$H:; A*<@E*["EVN)I[$9R>\ZW@AF3_\2O-!@$,'3"Z3DF
M-#X'G: $J\!XU2!87:&I@,(K+93DSE&_&]&8/"=F9C"*XC I[.>Y14T;::4!
M58+IZ20:DD9'D:#K9[O).\5M6;;!-::C=V:JL(ME"#?[V;S>$%L4:X1&:2&@
M1=)R.4.J7>FUDEU!58OD/JRX#Q/CF"?D\SF=98#H^J0KI2!F': BYNICHY7*
MO:=ZZRVET3C;^S/ACBL^#YIRUHW'Z;HGU/71]?5(BAOGI0-RT5LOJH%B4[?F
M1D)NME$4X'VC"%J*Q!U[W0%GI#XV/R>X1#+DD8N*N5A="G@3"(=%#PF+Z?NE
MCB#0#SWW'8W[]-UHO&M^1NPI ,Z@:[-1L#EDI&&^7J3YS5D&S6'.@D!Y2Y&@
MZ9MDP9,)+\366HH06<6!MFWN!3=(#D\QVBE1(XC-5?1B/01I*FC=--9D- 7"
M!\_A>>1K'H.PY>K:V%L:?*MC-EM\[A?)7RZ6MXSY;,"FU$H&/0%:5\$02D@*
M"PB?8K6^)6?9]RBV1O= 0PL_ (D&$MT5:OWUZ=49?4W?<Y=:>),ZS@^XGM*+
M+B/9L^["Y2</683ACC$P562X?*O(Y&1JU F<[ =%Z,D)CZ62ZUUJHNA3*L&>
MG7C[E:T=O/BT^M!]1?JC^P>?TFSC/:Z?I^7R*WF/)X?<Z#SJ6BR44,D%\:U"
M%A1OM&"C\M[+EKB3IK8"-BJCM3,OKKGQ[#)ALU2OYI\(RV+YM5^BDEGIE@R]
M7+K82TH80M O-&AR2T/16C5N5_[B^\<4UO$)?^<99KRSB!_3M/[RY2/.5TA$
MO'"MX6R$/EJ=G"Z LG4W*2B(1G2[6:(N-JC 7H-A"UAC"NOX&,$MCT<(ZHP+
MUNGH:= FD^OC!>26*GBOC=?D8*'BMA\[!G5CN.?(09IA9,.8MG3Q%OXD5S):
MK1__*DEZSDO7KT@9B*UXAU4) LB>HG01P9A.2OA(L,<L'RH >;>FKYL=RT4[
M/?ZCW^X;?-SR5.; 8QOL3$''\\5JLZ=[:@16DZQ)KRN30#4GP41%GD'T#52U
MF32_S^0BL.^P7\:PJP[HHCLA^:LC,FS+/H-G5NWYA[1\3\,+ 87R0H*H+IQL
M4N98(MA<T1MM?4CR/D)L\9XQQ0][B?ALY7//+:_"/R[KXR4%,&=(K#%%Q^3!
MM9; Z-P@V^"AMJ)+#0K)(@VA]J_@&%,@P<("MDGG.PC"&?WJ_3]P3FIR1N-[
M5H^F\RG!HTGYA*>CG83LFRA:@JPI]RP@"]'WTTR1E BYI(;<NRG;(1M39,%*
MD0$$PWC"O%K_UOJUZ\W)&"X_30NNWBUF=6*JEU+F"B4Z2T-&A)!:@6!J<=52
MU.SX+[G<AF9,$00K.9@$P&E$D![3-\=>X"><+3;U?,XXFFEPOK8,K@A2;+)8
M"%H[",6ALM9$F[B3V>\$-*:8@MNL,(F!/XGSU9Q<=7S=C_(H>&WDYQ 0V;-)
MK6@0E(U09#)2Z%IM9*\&>1W&_IS_A/-C?$DBO2GG[9<O97;<"Z=WIX_^K[^G
M+Q0S5A6J=>"R)^$&FH-$D3Q0&&FR043+GNB^ \PQ.=_[\N?Z$AE6:JPV]I)B
MB,8'$8(@$?<**;U,7I:M@ZI:B2;)#^!/W;HKL'SD8V1N9NPUX7S59"A _#:>
MGG3O1/?IE"X$03GR[GPDVX!:-5,"#9@[!>4B@/U/I<Z>=+;@IO-C$MFW39F?
ML2V6>/(Y6FNX^N4++4KBTG2>EE]?$0,V%9OZ4EUL'.)7\S4N*7RBB#I7VRN"
M6IW(G/72)RGY#++$EJ/#TMB+[@\XG#'IW-TY>/W,;!SR9SQF/05ZJB5^IO"L
M3=<3JVMK)560D=2-08K= [E9@$%GM$5:@C0(&:]!&96.YF;2?A//S()A:(W:
M!]W(<)F$/96TU[I4D>(W[95K4M+HN"^%'TRM\80/K36G2J_REHPA&O6#%]^3
MQ%")(HR(R;/72+PO?'A<A3T6/MYZ;6Q'Z;%FQZPV^?<G2,Y'9U4E/TX;4!1?
MTQ!]O^DD'31TA"61:E'<7+H-RY@VN\=**!8Y\I9PI5$N+M/\;+]%B>AU<P&\
M3(["QF @;G*$*!:))E05<9"F%[<B&M->^5@9QBC3QSBI[^D$+V>+SZP']=\>
M.N Y_2W(F8[I>UH-O>#-<O%I2D_[^>L?*ZROYN<&ZEE93S^=W-E3*2=1A8-0
M=2411P_9V0J(TKOD?2)J\<?<6Z)[A,KFW\ZK^VI]-I\?I]EIX6Q=I=95(]C<
M=Y1]Z%>A^M^$S$T76Q-[>Q?6 8S)AQN(H0Q5TID(L+?9W:10D#I>]AH$+_#D
MSU?SVZN9G&=D7JMK,3$.8ZTV0)":PL92,B2K-906A:Y"RHKY/G7)B&=L0?N0
M3'PL,;*Y?2_PXQ++=#.5DTS.1E8I]:UAF@%: A 2.9Y6-MG[%F7AN=.]+KY_
M3"[=@338SM//[O<7&NV)>SC).D=CA0)C3>VG[IF&YA"$(QX6'9)IW(<SUU$\
M,-WAN]8B3++@W!*\HM#.[HOT$3:=PJ8$1!6]8:<I%2B.0)"&X@FIG/9B@.WA
MVP$], /BAV *GX0.TW>*7*SE>OJ?S0R>A9_%.Y^SL3U'O-=ELPUR:0@NH;2N
MH-3L5](?BG%,G6,.I8.&%"-?IN>'M,2?"6!]OCCJ.$XM:!4M22S02#WVR\^]
M.&YS('3LE]E"J(H[U?=F)&-J2G,@XC"(9$ #]I+BP'G!"UT")B7$'&QO*1Q(
M-U*4)R +5"!:B4EH44KD)LLVN+:A3OCAS=F>\N)UCV\8[MD.W_FNWR0JJ76_
M15N"Z15OLH$4R0;K'$)L)C;)WD%H:W#;<"K^6.IH&,$-UI7QY:=?IW_,B?RS
MZ7^P_B--YYL#QA)R;4C&%5U/VU($,.00H=76V\JVC(&[]=9VR+;:;10_F)H:
M0&@#FKPK9;,G5<<2DLQ@C6Y@M"X0"0PT;W0F<VQT'=[>70&U%8U^L%UK7DD-
M2*#3D@ O3GO0W%@:8&*<0F%] AW[G1T3%>1L>V9Q;,7YTC1[>^G=D&Y%M1]E
M7_J 0N4Y"KGG-JGJ=WWH/QITS[9S4D)T)D.QRD>OL@OB2B+9<#=U?Y M:.YI
MY^QF_VFZHOEYN5B^6!SG=3N>G6G(B8Z"G#65H"%Z0M2KC\@J0"=AB9HF&<-]
M)>\N/%L1YE"W\@ZD4]CD,Z#I.M])/ZEO<?&8311MI96*((7>(+N?LKC3V^DV
M8.D%208W6+?CVXI1A[K0]VA6BDE^ S+LSM+PDU"2;;)JJ +);'I7(+1HP,K4
MI&B1U"EW>?('0MR*9S_8WO:04ASHTI0K)9H8+$0:'AB)$9*G4$#8:F2*63KV
M.O=W7)JZA28_V$[V[A+@NS!)P[Q2F?%RF27RU"[_X,(GW^!RNJC7R7YZ&_27
M+^5#FK_'MVF-O[2&93T1F,E4.P.M92*Z2N3G)?I;2]XU6@5)LS?O.^P(&1;E
MMLRKS05I10&?>N7SF"+YS,27JHK/R00*O 98L3NE7#YR*:+Q<OP&C3"$^#EM
MQDWX3FX87,8G9 S&D],D:].$KY#[%&H#K3W]CSYAXMY1WA[=F*Z-?/_TW%?\
M0]/SY(SO,CY;D]2].1M6,MD&3>_97A(@+9R<7+\8R;U)O3VZ,24H?O_TW%?\
MCZ$]J[<IA$1Q@")41E%$$!M6$#&&5%/QMG(?\NZJ/7?8>$M?-_=7?E\\*\25
M)=([R<*MO[Z9I<W>8&?0QY,S4X^R8':0:T]5K12.!^<3*"FJJKD8P=[2=WMT
M#W1R'F6C?U]R7=N4&T9VG)NZ!;%N+LB](R7T6[L#8-O<PZC]_+3T^X\9@G0!
MFK:I))%[27+^/=YMX8W)1SD4N082'A^[KK)_LW_X[8(M#3_4E%NO:&R;[_:+
MZ&\(H$9K42=IC6,O)7\?J >Z$S^FGMI+4N/8;YE$H3+Y)@2Y&7G2 30W+:%*
M3_\5V1*[T[H7X,.T<U'.E6!-AF0*S4H3#E)I K1 T@HHA7/<=T^_NW8NA^/=
M;NU?'B+#@<KV7P<YJ:GW)/$6R,1@KY.C@0(##8(B6>M<KY0S;"'_ZYC&Y!4\
M'JE8)?<8VP^B5.FD=%!-/S:0M4)6"<D"H<R*D#9UH/CNWNV'W;VDTUNIOR]^
M3U_ZP5?OW$DO>KE8WI+#;QJ99)T1: 9Z=XC6VWCD FBT%TDJ)PN[0[XCUN\A
M]MN7>+?Y5(/*=9A(L#>._>WCID3*+U]P6:8$<9*R[;75.B+R*DU#2:&J(J.C
MI14^.)22N];,O:#&I-\/12M60;''>K^U\P%OJIU.JG9&V! @N][Y$E6$T"EM
MDJQ1>L08N?W-V[!\#Y'=4%IH+[D,HF5>K5;'_3+1;ZVW+E_,-V2>J**P5*\A
MZ)J)O"U"[L4WK4K-FD*!IN4V]?>"&E.-_T?0,OL+:L@R5:?5MM]B6;R?3_O#
M+O_D/UA?X#I-9SO5JWK TQD*5^TZ%K9&4W>D73W?G#V]FO\^/<*V3$?X!I=M
ML3S:,"//IN\WPWU'7U=MBO4:\$F,5;DB%+DUI'6,;@V2[J49T=0DBVB*O>KH
MH /:*['^#-GGFY#]BI^_+>.'H-JXCYH6_::]#RIGP*BB(0E50>DFBA)56U'N
MH_W &$>UUS,:TE^Z C 2@C#V&KACFJ_/6_!&B=QG:U,$T8E>6C$(J-E6UT*M
MOO&WN'L(PC%%'N.C\ &D?AAF/C\^VLCU$SY/Z_+ACX_/ZO\]/CD3^7UQ.H"S
M&?YEM9Z2O,A/^GV9*)@O?6+?+*<%)](E;PQZJ+KG:72/B9RE",T6E] XK0M_
M8XW!AS6JQ)OO<PT\ K^&=,9_3K,^I^\^(*Y//=5WY0/6XQDNVGEW\[[;M9CW
MJ'0/SWS75S&XZ2RC9/+9+[6,SR5K(TP%&[%W/W"R,S2!#Y'B0.4P:_Y+5-_>
MSU%"??.LM^GS/XGHRVF:K2:N.26=2Y";ZT;!%<A")2BN:(L8@V"_:W$CD#$Y
MK3M+_:9JY_M-.6L!_0V4?RV6_^XWHA<%>T</M#$DIT&VU*NF88/H8T^-M:9J
M\EFEXJ]K=Q.2,7E\_/+??=+Y"?"R-R$E?;II/CF)J3572P71; ,CK8:0*5QI
M*+**TA11<"@"7$(R)G>'GP"[3_J!'8JS)+=T(;]M?OY;)E?BGI<,XT0\9&1,
M[L.M&8.=5R)F:W/RX+7O28-"0A+&@,?B^O6$EC/[T<T=>!@.'VY^]C^6_49A
ME*BLD @M2]5]?$4^OC;D0PO7"_TZB=S.T]V(QN1PL/'DAH,&+J&P&:)GI9R$
M97V[_5LE:/K[##?S/Z\72V[>GG7K9(V>I@**U?V2JO.02DK0#_$K]AOSC7O+
MFPO[J,K%#\:^1Y'T@>WE+87M>>WE/2\9QEX^9&1,]O+ZVYZ?U,*81).BC)9<
M)!<2T;!XR+;O729#CE260K-?,+X5#$MYS5N?3L3_5@-D4FCMY9HD2(>DH=$3
MZ9.2Y"YJH[W#9BQW@Y8'P!N3#>7ASHT5-0>0%5_.Q_&R?$BK"QNM%%Y&5T1N
M8+/)8$(MD+WK_?HP1B^R+)*[QOAU%&.*YX>AQIXSS^E/]=&1]6RXZB6JTNPE
MWD)1M"[G%&-/?M0=8(/H= 2RH-$4VT2NW-L]#X WIBV 83@SE*R&='HN-/#[
MMNF^:+U.S$F'O_/::/3-A0_OX0+M^TH&AXAUU&RG$<.U7!0E.)E<@2JJ[Q5_
M*F3,&6+-P3?CM,W<1F/$78MW@/:"_K):3\LDFT9F/QA IT3O8!E)/Z@&U1:K
MC#:U^1'T?SZ#.R87;BS\OKEU^?!L>,SVYB_IV^G[WKH"T4<"*%$&,&30(%JR
M<Z*A<3'Y%BS_><"N:,?D9/Y Y-V%"X_@@1S,[W@T;^,1?(RS&MGGKSLMEOTS
MSK%-UQ-26\5874%F39QP.?9<'0\BF"@M:A4%?[O$.R'MWPWRY/&GK+]MX$YK
MF5.AB X3TAJDP#YJM%"J,S(D88O@WH':#MF8+#@G>ZZWC627$[/!O0XF6 H2
M8P_:>HLPHT2!9&,%U2O*YT+1G1Z@;> 0J^0T1+UMH-'()'0)$).R8+*F8+5B
M)J-A="/!EL!^%G,WHC&M"@YV7,M[Y),'8U_=NU=_$BBDLIX69&_VBSE!J$&
MDLF67"1Z]CLJ#[(=8W @>5G"*1&^E/"[J2NKD4YA  R!%'A3#E*2%;"6FA2!
MBI*]L,P#5,G.X]TTWWHVKZ_I'\RN#UMG4425#HSPO?^--Q ;B;FEEF5MIMK
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
M_G2>KOW2M&Z!\Z\ZFX:(T_5W3\Z6\#Z$CR=O5_30>C018/R9OER>&%\<C]9
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
MR!?O(GIZ 9(*BK9.)&2RMDA'--(FKDULW;CSX?61;\R&/C(?IX^\EY;1#BC
M"5Y !4:[HF4%(AV=,0DCE!]RFL 1]9'OI9OM?>3["/9("GI5C-YZ[H#+I&H'
M,@VAYG1C3%%IEYV2[:?1/(""WL9.PZ%5,P";MF0&EL*CMNAK '8=CQ5$<UGK
M?Y(4N4A9=.M-Y &D8N[#D88"WWB.C!& 6K<D_#"?TG.7YS,36L:>[OCTX<).
MVY8R7,3)!VDT#QPRJXZ'E!($G1"D5Z3K++ETK0MA!X\X11U-06T@T$%(QV/A
M$)B)H&VA*S?RB*EU O_11)SZZ'-+Q*F/& \=<;JUA/.WZ-7\].-\5M^QM<4=
M K,ZDXD=M.:T:\H(/B@$AEE$Y51)?K >D'<!.A+O12]%;^+,W@(?X$YR ].%
M,=X%U$ ^BSL!'<9MT5!Q=\XO:B'UT2C!>2@Q,$=O0*Z-\K(!7^BZQAA&H:.7
M@K?.NQB1"EM<%F,SH8^P!VD5\[6?]<5U&HM"EWD&K6LAHK02O*!_%6$SLR$@
M%ZWMA5L@QK]5-%#.YD[A.TAV@*OEBYS70@S3-V&2?YZ]"A\GJS"] )>RY2D+
M ]EAG7N4 SCT"J0K]%TK>6[^TM\+Z#%0H)W$!W%1KFA]F"]3OR]0!<-SY-X
M]]7_846!&*6")%61PF?A5.L2[[N1/ 8"-)#Q )&K?RP"73>PGG1GY\>:"YB4
MRQY,D@*4$X( D?5LT5B?=0I>MHYJW@+Q",S__00[M*8OI[AV@#20P7\'G,.8
M^WLJZCZU[R'E 3;YNZ"Q;!09(A9X]@[(9&5T[E@D,\3'+'U,2K0NYQ]-\5N,
M^^'UWD>X ^C[LFBO1LB^K!L)+0CD^_,+S>G'Z?P+7N;<*+1T>#$/"9%6+F5%
M2G]DTG*!VLG 6D>ENZ,;__#?6YDW74'#:&* >\%]2'\C2^@ZV!JD=R4HB(G;
M&FL)$$S*D%D2.?' =6[N(N\#\'$S9S]]#+#A_#Q+"R2L/^#Y?W^>W8[>_#Z?
M3G^:+_X,BTRFKQ,N: E6HB'3-V=PQC'0QBK#:X^LYM&(GA"/(J*Y3^!B2)4,
MM?U<J_KSQ2:#)@#=K2(HI>@K1N\2*LVB21IU:#YPZ_"EEH.J[:XM9F>9#V&W
MW%KJ"89,IQ^QGPE=)SV(!(X;09=O&0+*8D/S3-M-4>Y'2X/]I#Y$,^**Z'RL
MY@_K=J=O<#&97U0&KW_X^N,Z@_#'SW3#G] 9>:*C"#HF#2EE$@ 6!CZR!#HJ
M$VN_&:':Q[?[HGP"/!I.:P-TO-N >#W7^6[ B2=F>.UFP)D"Y3."-UP".DW&
M7F2J^-:WYMX@GR3+&NEL@#YZ][X6Z[RS$YN]#25:8*'49@JT\7I7LPV+B<:@
M"XF%,3>O-:HG2:-=M3) Y[H7^?^=G;<)7;Z;;X@AK>'&>DFL\0J<+==]&GY'
M$M5RLL*+XJWSI?V.:?[^7(7KE^7$REP8MQJDIBU7E9(A>"<A9<]5SAYY;-TN
M:^@U/6[.'A4C!NC8=_[RU>60M-Z%SS5+NPJ2WD[ZQC>'R-65G2A?1 H>ZSQ'
MVMUS)A,BAP#1J\@CB\AS\_8@.^!\W,P<7',#]!"\\C9=E).\FW>%GK-),2H&
MD1LZ&I1&""%D,#&KE&L[/-9ZQ,4><!\W]\;2XP M#>\U0G[#/]<_6M)MW/F0
MI(-LBZ 7I7B(-6,H2^W)DJ6?FM:]:KLA>]S$&D [ S1'O.\^] TDSS$'SB)$
M&U+U)"OP=-A#S-%KX1PR.1*%K@-[D@S:0S=#=$B\WME7BQB,"@C$ZTIGL@9]
M\AZL$IK3PNET;FU/';A1\IB,V%W6FQL;M@RZ:%-//>W 14:(C,T0G:TS!TR(
M.2<O4W/_UOU!ER91A)3I8L/HG'=T;R>5!1*T2P4X9EYU:6@#'RF*,$85X*NP
M_/#3=/[G<%TH-SQAN&K +DL:KB)0%JZ-T>OC?5T.','Q8NF@-])C9-SG]OP9
MN")0,F^+M0),]A*4D 7(7E%0E,XVY)!Y:.W^.9J*P#[ZW%(1V$>,QU(1V*,A
MAT+ZZRX'NII+3L9)%!"TRI"XM-FC=1I;Q]4>7*>C7A38O=-1'U6,T]*F"Z+G
M3D<[Z6][;YM=A#\.+<AP52XK!QACK-86A^#(^,)0G$?FN9'/G8X:LZ&/S,?I
M=%3J;4BK +S&7I6G&RU=9PJ4Z*20H=3DM@%9<$2=CGKI9GNGHSZ"'; W32*+
M_/PN>R*]T<58OB8OJ,@\<3F0395%$%B,QM#:'7X;Q5%D;.YC6.XIV %4?7YO
M?8OI;$&BQ.5/GWZ;_'.VP#"=_!OS/TA&:S<&K9)'SCWDZCE03F?P20=@UO,2
MDLDNMDX&[X;LP5-B  6,DOU]5Y^M7R8A3J;5&^-52E9F!MG6D8 %+02I:3^4
M)@3-HH@W&^<.D/U]+\0'3YPA53) PN=%B4--:TA$^06N]\)O@W*7)X;SF%6=
MJ2U1UIV0S*5H/%CI<^0.#>V'C3FS%=2#9TE;L6],T&SI\JQ#I9;S\F:!2P*X
MCN*&67Y[=GH:%E_FY>WD_6Q2)BG,5B]2FI_52:;OW\RGDT2[YV]A49N[?:*W
M8A4FT^4N#M&FS]_?73J<./9TIJZ;?M]^YC?>9N]K,[U<>[H3O92IS&(,C$$4
M.JML<]BFC&T/V:L%_.W//??V&&O0TLVM5EG5.KT:2PA2DHDFI&21976SCV]G
MX*.X19MJYEJ/]Q82.Q87Z:L%YLGJIY#6Y^/ZQIX**RSH!%+F&J?U!9RVM7M+
M3LH[4UQI[=:XC6)LEV<[Q=YLC+.?@(=H@G0-T<7=O0NF@5R<=^$YC)-S7UW=
MJ_H]!#T6"934+O*"8+QGQ'-&>Z/2$F1T)J 05C>?"3F>\K>X-,?0?1_Y#J#S
M7W"UJ@,HS[%=>-FR4T$QFVN/7P2E4[U36X04K&(JT'W(M=[M[\(Q_AUC?PW-
M&XMWD';MR]5BDE:8:V+!B]GZ/]7;\BE,Z\7G[N^NV2^"E\IF#:$P3[>N9,'1
MBP#HJS^.88RA=;'.[F@?C;DPDL(&F1"S"_*+UZ0+]L$BK+OC/E0L=AR.-*'F
M'@H>)'ZWQQI*,(SEJ,"(+$%QE2 PL@RT-+8P)K0U[:=A'1LYMT:&'QXW^^BU
M(2?79TA%] -^G"^_6@S.!VY8="!U<*!"2#5A.H.U2FL5F31IJ_?N[H\^1)!X
M++7,F\FTH1569PS^&O[??'$9B#@G>HJ*.UD4((^^WBOJP$=F@8L47?2FF-@I
MUVS+G-3;3W[P5E(#@39LKU#1_!9.\76YANGRHM\!5,-9R!N!C#\+>5\-S8<2
M;^-)R)O!26&9B$6#H1.L]ONP$%GDM:3>:)9ER*F3(^6X='[/).115-Y'JJW/
MZ9_F9]_6=]G2.HFL4HG C: =+%5G@70"I.41!6;F6+>3^HX/'W<0;B.9SQL*
MK/6DXW=_SF_"J;,-3#(&BG.%UL8#>%L2&!0Y6"'TK6J'#?J[_=D/7GU[BFN0
MV0VSA#6W8]WH8;+\X^67ESA+'T[#XH_UAA,%&FL]K\.42TU/-[36VB"R,%F$
M9&A]\[C5%DP/WN :1/@#-!^ZC>\2W<6+T 7?4/&M+=@.%.MJJM&M=&F@CE'V
ME!LXBW F!1V >T$X7:T3U2D!2N>=,29E,_R>,@9=MD7'#LJ6/EH8@"47&^KR
M=TPX^53WTLM6UI%S%U1MYK>>GJKI=$VH0&"BPY!)SK!U%?$F+ >(GS75VLUF
M)RU$/D \[8[WX!W]U?/F^AZ#%(;,V9HYJ*(6$+Q/D)E&;K'6E+<.F-T#YS&;
M'CN)?(#6=;>@56"7Q3 =H(UE<'R#=32VQFXJW$:-/>4_AH5Q!6+*FA4,&3C=
MJP@B$D0L2)<S;A!]9(JUKAP;G1K][8K!F=%'[$,PXN):?0OB9:Q"!J654T";
M8IV\'10X,I^ A1A"\9RQU+IJ9 ND([ M=E7?35HTE/T0PP$NRQY>GBTG,UPN
MWYXG^9X[5+43(BM:KDY()ZDN"9QD#%2MCPR%8S&#->>X"]"CL3#:B7V(9J'G
M6"[(WP7,0%;%-2 'GEN\OZ)N4F!O*0\Q)N(:*+I%"ZM$ LU5 )5%C:=PL[[Y
M"%5DE+)U9=@(*N\ZGWA@C?<1;NO0TF_S3SA].9G7FK3P$<]6D_35Y<ZL*TPA
M&"%K!K(NX#"2"20Y2B-E$KY;A&+S,PY0W+>[Y.?MQ=8ZSO3VP^3C1SJ>7LSR
M#Y.:_1+/JCA?S9<K6FM![S7ALF2P*)0"HG,&.!,Z"R>=%-U*JNYYR'CZ'*[
MJI4,!S#17N1/N%A-:#-Z_^/GVF 73[CGR:&TH#$64$5),CUTY3(9)"PQGEWK
MGJ.W43QPM3<2[^ 9HZ_.%K4MWTFT:*6Q"4Q! L5HF_&FV#KB6*2"3- 7@Z:"
M7@!Y)&K?7\B#)[37AB47N+R1VI2$$.5Z?("NB:JT&3%OE99:1VG:#PV_&\NC
MU/^.HAY@<-(M/\$;NJ;6 O3WR$\$*T8E]'7J):MM"1PXQS24@$:8J HJ/[3[
M[@J>1T*%9B(?(,O@Y]./8;*HQNOK\LM\]OZ7R2?,+Y9+7"W_-T[K3(A_TH'E
MK"W.:P/9^>JW% Y",@6B527F8!5)H3$O.@%[) 1IKX0!(D/_F,_SGY/I]*1(
M[W,U5[-:^Z4<!Q\%K33'% OG7+G69+A\]B/1]TZB', 1=XGC&__6/:FREMZE
MJ$ BXZ"$UK6G> 16:+T,76S?_N]N)(],W7N(>>,0G6-IT/-F,?](UYPO;Z;T
M8_I;M?;EX]HG<IB&/5OQ'+:!3S]Q->J.?NVA+ZX\]!O-K><V*R'!:6]!\2PA
M2'Z>ZJ*U84'JU@;@=E1[.YW3!\QG4WQ=-C[K/.*B/!J):*%D2V]D8"2'(!T@
M<ZD8$:+)K;LA=L4V5L?UQARYY:(>0A7'TGAHXY*N9 #(; /7CC;].CQ$Y5 W
M?1[!I4P;?I*:&#+6"W:XS*IAZ7"S55YCM0S@D=N\^F]) ET@#A0G[0#O,-'3
MYJKM2IT]]7(@"GDKG-%2@\^$5ZE(UPWI(J JAMN82HRM!T0=C#I;HK#'P)P^
MZAB ,5\A79:R!>&93A:LHY4J7Y.;F9-T+2U.,Y^5C*VSM&Y &#]PVUQ-=W2!
MWE7&K<.X=7SFV0H77S'1>M_.R^K/L+A,1>>%HZ7K+&"*9-J)@@2/90BI,.29
M)0QLVZVMX[,>CZZ'$&[KA(S7A6ZB>!7<3V<+$OC95W0^(\="9AN+&$%I+."<
MX1 E*BE%MJ[$3JK?^JA'IOFVHAVB0_>FU?]SB>5L^LNDX(F39$>'S,'R4&M0
M9(1 JP9G3 YH7'#-?;H=8!T14]I<?UNK8N,1T=(M^#M^PMD97ADY_\-D&=Z_
M7^#[M=-K7BY^8P]77^]G[.^^VV]9C5QRUQ_Y^O*1W]C&A1?"R$Q$<P&4\9[8
M4)._N#(BV5P2:^V2VH9IW_UHP^>?7_2+S386KT$C9[3>4'/G2@;I'8;(?>+-
M(XWWX1G+[=:4!S=WG68"/[2CK3:&H"TTGZ75Z\5;7'RB@W=]4PM<)D,+@1RJ
M,2VT 8<\@4DZ.:EM\MW*CK8TI[GKV8=RG;53ZKRA<!NW([K LZS&]#FBY86Y
MU@54PU94&X&,WXIJ?QW=5G@C 8^F_4*6=)%*@+5UP(FYS*%25C!/MK4)K).K
MXKBT?D\SJI&4WD>NP_@P*[#+9HE:!*\P0!&,($1%AK F:QBSB-&A"RJTSDF\
M!F#<AD>-E'+[PK&C1%M[GW[')=*G?0BS_ ,=5=/Y^MYS<6I=X)-)!E$,G5-)
MT$H9@?2(GO1DN0Y6>JGYMIM$UX<]9.T.(M#&F_?7,J=_X/S](GS\4(>^G[O5
M@U(*/>U3(3FZX"8+7AD&WD>-3C"64J>>PULV[XT 'I7%UD;,#;U.:U#G9OY5
M2)?!L@Z@&IIM&X&,;[8U4M1\*"FW?OTW@A,Q&3J'&#"" TIQ8GKB HP1D?[1
M:&2G%*/C4OT]MMN8FN\CW,8:?W&*"T)R6;#(I$W&2 8\%5&/G@"^'D+:VT*&
MA_,I=4ITV:+FZT\=]U!OI(9Y$QD.4!CXXZ\_OKA $C'P(M#5GB75Z>V(I)@\
M+<UGHWC!@*T;-7Q[^D/6ZIZR;/V.+B?A34@U+?4"C EH4JTGX(SV(64(EN="
M0)!9JD@TT[[):WKSP0]9I_M+<I#2OK4U^1.M^ZYYP3]^3M.S7 N0ETND?_*[
M\/F$A3IPGO:71-AH?PD"O,RA1K9BL;(.&&CM;-\!YOA1P$&]\4,KZD QP183
M>CM\ZA!QOT&GZ7;F%$LF9K-.0!"U' 1KX]$0( 67-;,J2M'ZB#UHI$^A2SI)
M UB4JJ70= QF6B\+.N=@$Y>Z=8^!!Q'IZ\.#7I&^/@(_ADC?[V'V_MS1G12W
M2C@-19M8F^S3SF?((N8^%\>U]J%;7<86(^7K X_20]1+??-]Q=C8\%R#N,R!
M[ "CH0_HRJ/']_KL*/R;ZMM#<D,J,BK#G/%D,==ALDX9""P2G*2"TU9GF5M$
MW0=7X#V^F\;ZZR&PQGK[E21U>G9ZV132&)5%"K4O5;UXEG3>Q[HHZ73DJ5C7
M(GYZ[:'CWOAV%ON\A<P:.F/.1Q%]O@*$2<N45Q*$)-N ;B 5"'TEB]<\Y*!1
M=ZKBV#IK[?.#5M[.,AME*,.-60-HK2B>);K@V4+DD@Z<BKFN$J.2OCALWB'W
MR :]#&8$#:*$ 3PX6Z</=,'W//!E9XWV'>&QBSI&V5MNX#2Y*"=C!!LRUB8C
M=+44ID RKF0MA>'-F_D]S($O@[*ECQ8&8,G&Z2/&R>*R09#!TZ)S3. "2N"\
ME%#;%++<^N1Y0 -?>FFMZ\"7/B(?HM_G!:[?YBM<_C(/LYJ5]--D%F9I,GO_
M#>W++]^^_EH3JYPM,CD/CN50S3$!(7E#UR!,FJ6,7+?N$KD/WD=GQ(RFO %:
M#UY'=/&&=<$TD%%S%Y[#&#+C:?56,*J12@9I4WL'-DL;L;6<0Q:JUN2+2/=Q
MP^I0!%OC2*X,T*AT+)IL,6".BR5]--&ZG/GMA_EB]0X7I_^<Q<ETBOD;PLO<
MF>B93989,)H[,N9JM\2@&4CEN);&6S0WTLPV-B;?]JSQ[9;]%3(?3IJM,\=K
M1\S[T27K!"KBMHBUC6*T"KP3-0DC6<$CIE)2)UUO?=1#5W5;6;9^K;>D1KP)
M7]9%^X1_>1)9YD'75OFAIE+)FAM']S/(@4O,W%E^TPNZL5:@\T./,!-EEVCQ
MH+(>X,)R!UGI"'Q)WZM?OUB]#%,Z O'M!\35#V&%)XE;],X*,)&(K'*2X!F]
M+1X55X)GY6WK+H9],3X2*HVBHF&<9K<HOVZX_&J!>;+NSWHYK %]Y*IF90=A
MB?Q>1PBU"1W25HN.)Y9CIW*5?NZSCN@>&8T&4LM&9_VP*7%O<%'FB]-*_-=Q
M.CF76-/TN'N?,$2J7/<EC94VYP5'DZ,E4=4<:ELS;IVSM7\^L2TEG7WK9M4'
M39L3#+,H6@,OO#J/C*VFGX+H0UPW%S-BI(8@QY4VUX<'O=+F^@C\&-+F[BP5
M=R8[)D,$,M5H$5Q9<#I&NK\5)XTL*3+5A36/I4%&+Z5N:Y#11[BCM4CH NH)
M-<CHI:-.O1)V$?!HVC?:>N>2!FLC@8LE5,N:;FS>6Q6R+-GQAZ?UO@TRVBN]
MCUP';Y!A?+2!,04Z.P$JI$37\L! ))%SX9&.O"?1(*.74NYMD-%'H@,X.K[:
MVW59=5K$7=9VO0#5L6+O)J?T*Z_+6_KNLM"EB7[V=A46Z_OUFOY>I&)]SL!-
MG2+->8)@LZ&WP;,B=%")=SKT^Y=W-5K!HS$=CD#!PY4<WK^:$R6]#HYL\L!J
M6Q,?Z9W20@+CR)-@(45L?4'K!.P(72?[W&':*^,8-SCZ"Y-YYB=8?%*%!6"Q
MENT:5PLB$P>F58DI2=2N_;#2-MB?(N]:JW2C:74XA][)#;MO")?>"1_=J7=S
M6<]NO6>WWK-;[]FM]WAL\V>WWO$X>)[=>L]NO6>WWK-;[PFZ]9[])$=T7WWV
MDSS[29[])!W])+_A.C&+;/BW'\)BG_Y?&SYI?Y]'%XB-/!LO9JM)GDS/:C^Q
MMYC.%H06E^==W3"?I]O647$7'/LQ+"H;EF\NH'TC6W:HHBX*1.T)KAA]%7+V
M(+'88(W-I=M,DSZ5=HVPMQO8O2>B\UMAD#Z41+="L@SI^*]CM:+Q&12]2L4K
ML@V:^U;:KF L;\Q!N+MY1/CHRC^TGZ>1'EY^N?L#SHO<%5.Z< G(^+KAJ09O
M90&IF4F(P>3<O(!WN.4<?G#Y^"2]61%\)&09HFG!G<A^"Z>7=5!=\ U4/+P-
MVX$*B8^%#)U(NJ<F#\$XHX1@DFZ"O,0"2N8(WA%8CD*X[,D"=ZV[M!Z&:=MJ
MD1\JT?HH< ""O5W-TQ]5-"3GM6SJ*-@+-Y6F&V4I=*G,P=<2;3J*G$X(23EN
M@@XHFW/K'CCCW[_;ZNZF6=E(\$/,6:"[\?P+XAKBI<LRH7*!UL:<JSUBI >7
M%>&24:O:>)+'UF;:'3 >&0?V%?1H!T[G??3%:>T(<<)*,M(G 5Y(NF\5XV@1
MC/CLE)!Q/02L=8UB$^#'PJ^1K[CC*WV4H0"OYK7<=W[>2__%8E&[>-;K\/(?
M;_\_VFU7U=_Y#M.'V7PZ?__E'?U\67!QY6_-9V&6?YFD6N#YXOT"UW][#W_B
ML(#V=TN.*+!&WLV-B%_,\F_S6=KPXS7T<S?V\MLKY%+4(5L$':(#I8,A CMZ
MCTIQ1M#_ M.-=ZV6^-MY.1N@.O<CV&!4T#: 94;3EJ -'8[& B=9HHLL1S.<
MI[/5*L;R=AZ,RYL]G@<APJ&]GC4+X%4]T7#Q,2Q67ZJQM[X'LJ \':X.,#$#
MBALRS4IPD(6Q)&WDH;3H4G[7LP_O5SP,%>8-5=)Z\@!^/*OC;J^<=#<A7EP1
MNH!L.6"B*[#Q<^;VU^%\+ 4<C"V.R6HQ"HB"DQEM>*9-.R= :432/,<@.@U!
M.VZ6W)-C=R"2])%[ZT9C9%]?7/\]W?J+Y@$XX:FI80&\+0PX4TR9HIB)W=J(
M??W(D4<E#"/O^=[":CP"X]L@ENBE2(4YL*:F9@4KZRP\ 4R2K'7T.=E.[<R/
M?1C4$9D"NPF_8<7IS:$@76 \OA%2O82_8031+I(;<(248B4ZCG2NT&X"*@H!
M3BH$(5U@(<8BL<4LF^,8(=5"?WT$-N@(*1L%DR@L2.WJ['(?((; H$34VN)Z
MX&T#S1W)"*E>8M\X0JJ/S 8=(554HB/;"2A\O1Q6@+9_!RQ:$1QR.A]:U(T=
MR0BIG96WL\R&*0BZ7@6#TFJ-68'+G(/2/$',SH+FPDO20I AM*L%.HK:OR,R
MB?962</Y"O>7T70!]80J!GOIJ%/QV"X"'JUB,-+=3&L5@=NX#E,F\"HED,*(
M$E2V\N;]]B%HO6_%8'NE]Y%K^S;I2PSUTC_+/^ GG,X_UKWMHL#DXK3*+G@Z
MW P(7B?&6UIL3*:6JJ2,05FI;_9^VM@>?>O#CJ5@L)=.Y@,*M/4$A&N]VN\^
MV6KGY E]/5N=9P<L3WST*$0=>1FE!"5X@1C)XDS%92E#]N%F3DB7!OD=GWZ(
M45X'CN:-HZD!TL_N:KK]RR3$R72R^G*]6\R_,9^0X5N4RW60C".+*?  WHL(
M K.DZXWR* <8)]@#X1/DW@BJ;'V(;9+9;V=5UJ_+KY,IT@)F>#&)HC:65];4
M"7PF)P4JR;H#LP@L64O?1A.3[+2A]7[T$V34"#H:I2O_1D'^2M?./S8G68V4
MB+8[B@&SSQJ)YBA3SGC)7H0$7"6RXB1'<,Y$<,EH@XGN"<W'QSWRE#.O2)2.
M#@V/QH.*D0'M-APP:8].LA!SZ]3CYY2SWEP>(>6L#Q&.-N4LY8+HN 'TU11G
MU65@D$-Q7.C,G:+_/Z><-:7"MI2S/BHY6!)1%Y!/..6LEPYWRB;:10$'8TOA
MPA13+(1DZ_A&%2$$YZ $NH/1NQ'+4TPY&YXD?>3>^KZ[-JJ_SMC4ED>6(-I:
MN>/H+N:\SA"=TEIPZU6)G6ZR5S[T6-/.>LE\WD!@ WC(ZN35U^7*D;?FJ^%6
ME%P2Z*P"*!L(CTT.K.;&1BF]B*W+=>\$\L0-AW9*&F!$PFUAA+O7?UF-V@'N
M4 TM^D$]3'^+!DJ^68LY@H:&J!ON";OH&#$6!H'%#$K8 L&A!J]-*DZK[+ME
M_#PT0FUI8W%X/O513&N;I']MZ07H4*3%&!AP6P?/R'6]O(N@?*ASPE4(@G<R
M8'9%<(#"\2'U.A];*8VS"^],NA"U'"#$ EG6A#DM(SA!ECU32DB'.=K<(E'_
MD2>H[>I+V5LEHR6H=0'UA!+4>NFH4Z[2+@(>+4$M&4TH)(.Z=]5;OP&O- =.
M?_0^2BMTBSSR(T]0:Z_T/G(]1((:BQ9%"1X83P94XF1CH8J0#:IZ.!IV,Q+W
M\!/4>NFD;X):'X$>/HM(%:)TY 5,X4AHG06B^?J/*3/&C?#/640'"@X.J,J!
M,B.O##/[EEY'W\3)IW,C*N; M8X@1?858@ OHZ/[G5!.N%2,[I8ZU.UY3Y [
M0VECE [V]V?"O)VLPOOIY",MY%58A>F7Y>KMV<>/TR_#9P9U?_30Z4 ["N$8
M<X#0)8:2+N5&.;*UI+%T*=<,BM)%><6X]L]MIWK=4656 K5.D'6NA:WHZ;9*
M^T?Q(7L5@PVF4SSS.0=H2"Z/D /4APA'FP,DT*@@@H"<A:5%L  AHP5FDBXR
ME623?\X!:DJ%;3E ?51RL*R.+B"?< Y0+QWNE-ZQBP(.QA:KF&<I<L!8??0B
M.0*K/%AT,5D3DF[2/^&!Y0 -3Y(^<A\R!RC$F$3T&C!G=EY/&"2C/]*ER%K!
MI;+=0F@/( >HE\PWY0#U$=AH.4"!>U9J#_)8&[DH05?E* T#J8726GI;?*<6
ME<\Y0'L9#NV4= 0Y0%W@/N< [:7D/7,V=M'0$>0 96EXS$D"\Z5VL,F)MN%U
MKY,@L B;E&KM<S\*0NV4 S0FG_HHIK5-<L.+=X$(C4?I'9VS.=@:3%(0Z=^0
MN'=:BT+[<+?V$7=^_/%G[_32R+RI.,=(S;$>4R[" Y=)UZ1L#PY-AF!<<L'5
M8=G/O:,&<W'LK9+14G.Z@'I"J3F]=-0I2V,7 8^6FF.*,2P3..M% *6S@F"U
M N0\&:N)XMTFTA^7UONFYK17>A^Y#F V7@"[.)I$D0%C(1RE!F-9%!"9X""T
M"#Z9VK&RD[>[AU%X#<"QY.;T4LJ\E41;YT-<"=/^./OWE]/+Y"!4K'AD$;*7
M9,TFQ6H;< [>E>2*+MQKT\V>N_L!#UF+S00WP+OZBNP1K-DX59B_3Y9_O/SR
M$F?IPVE8_'%^38G<A9BK5TS0[H1(9%M/ O-:&&MXR;J3)=<OC^I>3$_<PAM$
M=;>II=I3ZQ+=Q;O4!=] ?JAMV [C>&JKT:UT::".47:D&S@5CZ@<XU "TCM#
M^R-$B08T&K2^L%QB)ZOQZ.FRQ:UT6+;TT<(08X[#%)<7Z8"_X:5E) T&%I,%
M9FM-E%,68L@<3"&3J5@Z9HMHG2=T%Y!#Y&>VU-?-1)Z]A3U,/OA-^E='ZWFG
M!\-S<K6<*==&K39*B#YR8 ZE9D7:8#LU)=[/:+F$\VRO-%78;2[IYERJP+[6
M5&R'-I:5\@W6T1@HNZEP&S7VE/\89LD5B,ZB=K5UL]2UN I+AFAD 2E50:^9
MEZ5UHX[1J='?&!F<&7W$/E9WV5MX+PY+9U**J2!(GR0HY0,$KK#Z#017DDG/
MNHV!Z_G@([!$=M58ET:Q+<3=VD7V#A>G-X[<R_*Z%]?*Z[X&\4ZR1F3.U;;O
M9*XKE2(XSCF@S])H#-&E;MZS_L]^X*5$N^2GCZ&EPQ= HD2G:DLL:;@A4\U)
M<!C(<.2I:(O2RN9WH2=5 +E/9<2 JAS#]'E#=Q#Z1GB/_(1[(:*A<]W606/*
MF@B1%4ZV9+9T[$ON?.OVO/?A>=JD:J.F 5(4KXVMN,W]'S^GZ5F>S-Z_6"Z1
M_LGOPN>3(&(D*5C:9.M %*<UN,0EB%"L-9@-3ZVSR7: ^80)-[12-V:AC%*:
M>QZE&Z$0]]X'#5AVVWV!QUADRS)GJ#WM9<4%NDKHVK:(,1 B$6L=8P%;)\8_
M\B+;3+=S53@=$349116KP!5#MZ>BDA>J!+PY_N2YR'9\+H]09-N'",=09'MG
M5E4L43)G%)0LZBAY7H"P>XC6T\FC Q>8GC-0FU)A6P9J'Y6,-[^R Z@GE(':
M2T?=!EGN(.#1M)^+#:9.QLO>.U#9$2X3(K"0$8U$:WV+1OE'GH':7NE]Y#IX
M!JK+GF..";C,M3BB5&>PDY!JCR#+O#6ZM2?L*#-0>RGEW@S4/A(=K536.<F$
ME@0J\4@L+J9.89<@LQ8\:<?MS8FTSZ6R QS_[91T!*6R7> ^E\KNI>0]2QMW
MT= 1E,I*K81)/H (5H-BZP[PA=XQHY,6-O LGDME#\&G/HIIG51PIT?N I=-
M@1E))X$,D@[OVK#;A7J,.\8X_0]9Z!8BON<AQU\VVTL[\P%$V[R>YDY$V: 0
MB4E 7M,7#!?@2^; >1)1)I5S[M:[^*FI>7]Q#G V[!(GL:Q.(\L,A"8SFZYD
M"8).G,QLK@R+A?G0R7WU'/P:R.\ZM%(':F2\">];7*W.7;(_(9Z@ERD9G<GN
MSW3@<I_/IT,(25='1H*R-TLL[F]GW.FI3Y!,PVIFF%20S8DK)Y@*+55(B+QN
MVX(SXG=V0*))RD57I!B@5G SH"?(J/:*VG@+'R4*_VI^2LC3)$P'C<'?\Y@!
M(_!=%W><\7>-S*8,DD=!Y$PU)RT;X%YEH>HPB-BZK/^1Q]^#-*B#4B#0T.L>
ME5_/\H*LDQ="L^B[#>U]CK\/R>41XN]]B' ,\?<[&ZWRS+(D[.!T'=IA!9FY
M:&JJOV#1,>&9;-$!ZI$WN>Y%A6U-KONHY&!MB[N ?,)-KGOI<*?^Q;LHX&!L
M8=9'*4L IG6IZ:L*?- !+)+-3#NZ\OD)-KD>GB1]Y-[:2_XNK/"7+].O#70"
MXS*61 "R L6\ %JC!D2I!%V<A.#=*NNN?^ZQMKKN)?EY&[&-%L+/,0J)SD)"
M2\>=$ C>(RVS=K#(3"2ZF#Z'\ >W(-HIZ0A"^%W@/H?P]U+ROMV)=]#0$83P
MM5%*N.1 %DP$N[9L5,D#?;)(F5XTT7RS.@I"[13"'Y-/?133OB_ +9?>!2KN
MZ'BU,D!POM1(I@'';03:ART=Z,CXS2S$C1T -CSB^..ZO30S;R[6@6)JV\91
M9L.,$;1@GWEU+^4"@:<(,F#AR H6[SMI_DD,!]W%&3>4-MH3YA+&>;3O;KF<
M.%D,&H(87:;7Q%9.J\P!@S%*.I_=S;[(&PG3Y7E/ES#-M;'Q.!DE6/:/Z3R&
MZ97>%:\_UD>%6?YEDNCX_G:YI&^]K97B^'Z2KGP<Z7S(*-L0^ 8,SPTNSF.,
MZ^F$,7)7MT=6<Z5J@;8+DLB/TC)3:'=LG7CTV.-Z7JO (@?#-8(J3($OG$.2
MVH4<<N3/=;6'Y_(8<;T>1#C:N!X&%Z63$K1#1:=A;55>$H/(=:!E*"M3IRJ;
M)Q[7ZT.%;7&]/BHY6*2F"\@G'-?KI<.=0C:[*.!@;#$Z&QV9@)15!:M=W;D9
M%",$[=RZ!-UBEWE@<;WA2=)'[JU=9[_A<H7IEU7^:_UJBO\;PW3UX6V:X"SA
M5P]2BG3!\Z9ZD!@H@0BAMK%6/M+6:;/05G>Z&G=YVK'& 'MI:3ZDB$>+#/*<
MDW6%@2B)#LRTGO!;6S&FQ+7SB;5/+7[TD<$=;)!V2CJ"R& 7N,^1P;V4O&<D
M9Q<-'4%D,/G(N8T"C%&U4:RP$*(K("(&Q7A@QK;VH1P%H7:*#([)ISZ*:6W>
M;'$07B",Q4O/L@21T(&*TD-D]!49+TJJQ*S3W;*9.CWN^".&O30V'U3< ]@Z
M.W70##S(3"=V7,?/LY+@5>"@0\W:TB*FY@/9GEYEZ#Z>PZ&5NI&'H\287J1_
MG4V6D\%C1?<]9\"83^?E'6/LQM']+T93P*DZ7H%S#9XY1ZQ569L80@JN\=;P
MR&,W2EIOC#6 3,?:-IM!5-Z#"2QGE(;1M?LY=G-H+H\0N^E#A*.-W7CC2W E
M@!1*U*DH&6+T=+YY46>YU23PY]A-6RILB]WT4<G!O/%=0#[AV$TO'>[DEM]%
M 8>+]%D3G589F RV0LS@3)WY1#LW9HL>/7_X+.D;NQF>)'WD/D3LYD8XX3*Y
M/^MHDG*@27N@DJ ;=J@#TT,2-D3MI(^= S9W/N)8HS2]]'$S2K._,$<+S9A<
M'$L9"46-$MG:IB0&0J9<X-8BBM+:1G[LH9E=3(QV2CJ"T$P7N,^AF;V4O*<K
M?1<-'4%HAJZ4GM'U$7B)LCI\$8)5"9*-7*.,DNZ6CY%0.X5FQN13'\6TME[N
M<OI=QA\T2S[1)AS0K\ND#=2S%G203!?F%.]87;[Y&<<?A.FEFWE[P0Y@RKP]
MBTO\UQGA^?%37?27BUG%!GE$$36@RPZ4CIY@*0/"6I>+P<AEZ_UA Y1G<Z:9
MHC8.DFO*G\ODK [ !C)=-H(ZC)'21'7;Z;"'W <P2#8#U,YJI9@%&12]!72<
M0DR>0V+2VF2M]*9Y+&%<0FPQ,L;E0Q]Q#\^#RU;CGJ-*18/ 0*=>=0R$(C)H
MKSV=LE9PU[IGP)U QK<Y&BGJ?O7O(.4CR>JP0B?)6(!B19W#2M:5L]P"STXK
MS-8)W3IT^_2R.O:)*0ZMU-:EYIL$]\^/).1U+^D7I]5O>1)S0JP-I3 P!(6N
MME+(9)PI&7G)(G*K.MUPNC[Q"9)H.(T<MN#\ #7DAR\+?RR5WD+*PF1MQI(8
MG;M>6SIW.8.4HF4F&4X_?\X6ZG//33XIZ[! 8&2_*#);P1=G0"J33=(81#&M
MK;OG;*&^7!XA6Z@/$8XV6TAF6[02'F3,= S5002Q!C&E2#%EU E#)U?8T\X6
MZD6%;=E"?51RL/R/+B"?<+90+QWNE BRBP(.QI:0T4B& I).U3>L:.>.*H/P
M2G"%19K4HD_\ \L6&IXD?>3>.M[V9KY8S6>7.2V!:1M3'3DM'"B11*UG%^ C
MC]P4H93+G>Z?5S_U6'.">DE]WD)D@_BWED@?^(&.PBO-L:Z<@I<.DG?S-[@H
M\\7I3_/%Z]4'7"Q??OGJ]55:6Q^- 1Y#!F7H3'1%2;#9(9K$0_*MVR(U ?[$
M;9/#D6" M*0]%G'%@=UE$0-%_)HLX##1P0,0J!V%]]3^ /&F-HLI(IOBZ7Q2
M3"M0R2&$X MI4]+N($0,,3\="F^)9SX6!O=1>FM3\-?)%)=DV>#KV=<D9YM"
M485.)5VC)HQ+^HIG2(D;IB+RY+LURK[]V>.''@Z@H7D[\;8.2GV%\^[/^=<\
ML"(M"P4*JEII'3U$%RS(5 1G-J*+LI^VOW[VT]7V;N(=X%2Z?PRIQ\(L2@8N
MJWJ/\;'V;F? I?')H/2,M>\U^WCGQ>[C!&^GJ ,UV:=%>AM,@.3JS"NM&=UE
MA(+ D9LL8U'VN<G^7E092ANM38K;$+_NBQ<_^NVLBOIU^2%\6=(&_"9\J9(Z
M<39(9V(!*P0#);T#;V2ABS'MOJ8P[6\6^W>F4#<$SZ0:4&,#N _>+.8),2^O
MCP^8+Y8G6A4ND [;S,F^4L%9VCJ-!*.=XW3P2L5:-^G9".8)LJJM@@9(']\E
MFRP*U"I)"\4R72?_,0C.,<!<.S8F+@1O79KP]%($]V';T$J]S4,U8J[7FVE8
MU1O+.TP?9O/I_/V7M00++NX8B#%$YM=.  ;, ]M?(,>8%5:<+-PY 1C+VG)3
M$&/R(&*JB8]22=ZI>\-S5MAEE$7ZX$TTM)L$2W=ZLE<@&!; %/1UEPE://>0
M.CB71\@*ZT.$H\T*LRH:SDL&H7+M:N$T+2(X"))6QE%*Y3OE.#[MK+!>5-B6
M%=9')0?+\^D"\@EGA?72X4X)/[LHX&!LX4:@\!R!,U>KPY, CSI -BB"]=ZX
MW"+W](%EA0U/DCYR;]Y#:OZ)T$PNFPX$'X(VC(&SH;;$=1D"KV%2F2TWF(2X
M.?%A4^.H:Y][K)EAO20_;R.VH\T-RYK6SYVO%W #2E3W,2L%N"^2.RYRN3GE
MY3DW[ @LE,.1X&ASP[HLXCDW;)C,FEX$&B2S9A?M'VUNF(A:!!48,!=H1=(:
M<#('2('6)1V=.<8_'0J/DAMV> ;W4?H(N6$)G2JUIZ87IJ;&2 '1Q4B84G"J
M-J.2W8S"QY,;UDM#6W+#^HAWA-PPP9CC4A5PKDYG4=R152O)(M).*C0B"K,U
MG/#(<L/VU_9NXATF-RQA77*5^^^3Y1\OO[S$6?IP&A9_G&?&NF*T4@%$KN,N
MZ19$^(0#^JX+/&N,?(#TL'LQ/1OX[54W0'C]-KY+=)=)^QWP#626;\-V&(N[
MK4:WTJ6!.D;9D6[B#&B4+H0NUGRCHC0XICP(1[NQ<D):UVF QM'398MU>V"V
M]-!":YOTU?STX]D*%S_^ZVQR?H#/\MMY6?T9%I=&E)*<3F3DP*VO#8*$ N\%
M'=:!1>GI:)7!=+):MC_K$,DV+94S'TZR _@V[\^13H(6GDL"Q)I1ENC6YJVV
MH+TUGI? &6\_?.OQ)K/O$[MOIZ@#);,+Q7E2/$%VMH!"LM'I'D;_RO0J)<$S
MB[MF(C_"9/9=J#*4-H9/9O\&\<5L=A:F%[G0RW>X.#W)M/!<+X7&\@ J!PZ1
M^$S70XF)2X>1[5\%<?NYSP1JKIV&$8V.4+\Q_N=96F!88CW,0U+$=Q:3)<'D
M!,ZG G1/=)Y9HYS7C>AT^^G/I!I(4PTOW!L 7^/^2>%:*)$DR-I<0C%?O=A:
M W*GO<],W.KTT9E%UQ[T3)C]Y;\QQ[P9-RY+>:YC5$S)I(2 @D;4"L, 3M$9
MZYUVWF"(.G8K^N[XP&>NM-/';<[H0:]:U]?P;\PG09L<+",+37A;QW4'B"9J
M,.@E#\(%S*W+K?HA?()T&T&5MXEG1BR(&:/FY0!E+0^V<H7I5 IZA*S0@ZIM
MU7Q&XA O,G)A@\?G?L:]0D2,!UU"TF0XU$;D#FNK$%>@:*US**FPW#KCX[ER
MI3>71ZA<Z4.$HZU<424X97.=,Q9KL;B6X!AJ.F,$4\CHV/&=PLE/NW*E%Q6V
M5:[T4<G!:A&Z@'S"E2N]=+A34<(N"C@86Y S*;U1D$P=9L7IQAU3J>-!LB#4
M,HMN5LAQLZ1OY<KP).DC]^9.^CGMLY?U%ZR@\ (!?:*59EIN+"R"3R&4J(/%
MKLZN;Q]ZK#4KO60^;R"PHRU8T4SQ'(0!(Q0MPM=)3]XKX-R)X%GD1K6NFG\N
M6-G?,#D<"8ZV8*7+(IX+5H9)]^]%H$'2_7?1_M$6K"@G(N.F0%2E)@GY MX'
M"\)I%X*VR%QKA] 14WB4@I7#,[B/TD<H6'':&'J\!F.D *48!Z]\ %NR+CEP
M[K';_/C'4[#22T-;"E;ZB'>$@A4M0RE6%J@5VV00,UJ:=1)D3!A],,7%;K,T
M'T_!RO[:WDV\ YQ*F^97:Y^TS#%##J:6ZOE$-Z!DP::2T%L15,3&Y\P&*,_F
M?#-%#5"5<L\([ [ !C*Z1QX1O\V0;J*Z[C/B=Y#[.!O+95<044)(B!!4,:"R
M".!SKMW<)19OK,;4VH0=F1!;S-)Q^=!'W,/SX-)!I@(KR220-:M/25JT<XF!
MI)/5%)L<H1N6 X>R0!HIZG[U[R#ET6M++,.8468PN0[JRCJ!C]51F@0*Y;DN
MJ74_G,=<6[)/=+V=HH:O+>G819VN3M)95KOSUZ&$B6<(AEXFK5PTL0AMH^MT
M:WFB?>]WH=-X&ANS(N5*T8R4PF;%-#"> ]W[ AW0'@-@U"5:R;F+S_,XAJ#0
MWMH8(#31,P>4^2"4(8RI^@[74Y!"C@:<M?1=K10)Y3F=]PC/O_U4N?'*/4HZ
M[]M:U(SO)^G*;\QG(_6V[_WP 1. ]Q/$,68&>ZMTC#Z"U[+N?H:#JW_,*#@/
MWJ&].=CG.3-XBW=.<1:C=F3=TBFB#)-0LS5 TR7,B]JF]F9SUN?,X/&Y/$9F
M< \B'&UF<)*Z"%O+6UR0H 0MPH>$-8ID4];6!=:BV_1CSPSN0X5MF<%]5'*P
M7,\N()]P9G O'>Z4]+F+ @XW 2&*H.G"!;69!"@O+<1:2:=+XD'3#UWNU#SJ
MN%G2-S-X>)+TD7MK9\F[\ ?F\.9#6)S2HLY6DQ2FK^:_K/)EP\V8E8N(M/HZ
M;DP6NAZEPNER+KAQ6)B6W5QO6QYTK!G$O70S'TBP1YM5[!"YDEZ0F9>JK9?K
MB<H,!"LEBSEQ:UJWE'K.*M[?J#D<"8XVJ[C+(IZSBH?)R>Q%H$%R,G?1_M%F
M%0OK4ZI-V WM"[5!@8:H7(;"3$"3C#6^_1C6HZ7P*%G%AV=P'Z6WMB'_^?&G
M!6&\B/U=V#>%J2A\D<!-J/V>H@#/.$)*&#DR%BSOUAK]KD]_J+FFO;0T;RGB
MP7*++R#1HM^%Q7M<_0._YCX+'B*KRV,A\II92V^%9Q:"R$HXK<A^[A9A[?"P
M)\>(U@H8IEOU/9DH+CE.%&5@-:,]4V4- 4D003JI<MTT<_N8Q^--&=K'[=Y.
M40=J1XL6,S=$;Z=YO:4G";'F7I84DK8ZF62[E34\B5R.7:@RE#;:MS_O$_W_
M>78Q\?[U1YS1?UZ&:9@E/(G*8S#)01*U:@<S ^^,A%RDRYPNU;?:M6WLD-X
MSE.EV_BZW.B>&"7!X]>P7.'B9E+#5SOCTE/Y=C5/?[RYZ;^DW_QQ]F\R!=Z>
M??PX_3)H,LB@0 =,'!E/P,>89"*S=LX:!+9N7"B"!N=H@TXIE9(=727P.<FD
ME^\U\B1I<^& =-4BB2*"5U*!-$+'XH+PO+6GY3G)I#>71T@RZ4.$HTTRL4SR
MR&6!:$HM#:@%C2DPX(X.ZJARCM@B_/O(DTQZ46%;DDD?E1PN;: #R"><9-)+
MA[OE#^R@@(.Q1=J0E)<<."I-[T<R$")]5;@RS&:CE.W4B.JX6=(WR61XDO21
M>_.V(R2==#8-BQ?+)=T\IQ-<TFWMPDG)DI$<::W&.P4J>D5'N8Y@66%!8I0E
M=AOA<=]3CC6]I)=6YD.(M'E@X,7/7Q=]"4<J:;-2D+RC&WC$7+MB%##69FL%
MBQZ[Y1#=_NS'I]?]Q#=$S?<JK,Z7.@W+Y>NROAV?;UHHZDS>"":*!"H4"T';
M.C*(<Z&M=C8UK_O>!.:)6Y!ME35$@=T5/)=F2P=$0XVXO87F0,U$VJCK9CBG
MC:R'B C>1H9">!]00##*P'H*4'1(AA"WR',.R0?Q0+6_K7/(6,KO(^(A#A!<
MD'7RX@TI#Q<+S&MH%V<;+<09FPF+L%A'79+=BS&"RRJF'#SFYC-)[X%S@$#+
MGMJZN?TW$O4 "<?GT%[>"4T;KJS0G"P<E:N%4T?R9@L)M?;)B!AE\V*]S7 >
M"0OV%W7K:^ %.\D>NAL;%F*H\PB\VCR*[!R(4@E@EI!YZZT6W5+&MCSHP2JX
MN10;&GKU?O1F,<]G:?5Z01@_3=*Y:T-Z+WTN!D2JA0Y&6O#>("2R;I.FGXG2
M8JK)7<]^XI>")BIIV&;P"IZZ_@M$R\LK<P=0#=W(&X&,[S;>7T>W%=Y(P(W=
MQ)O!<>Y-LL%#C"'6 7X:0H@)(L9LR!KV);282C*RUN]Q X^D]#YR':*B8?XE
M3%=?+O-12W(YI0".6P=*YG74EHY X8+7W'BA6SN,K@$8UUO82"DWRP5VEN@
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
MNOZ&\2?=!_]F(9AAWJ(@&T %KT Y%L QEL&@9]DD,CJQ=<.??@B?( U'4.4
M%::W[L/?W@E^XHHDVC,-7B9+8L@<@J1_^2@Y"B&-8*V[B]V'YVF3JHV:-I:%
M#M40)I2B,J-[<<Q>@"I6@!=.0#&&T;H%1VS=S?]1-X09:F?JI:C;+++MBXNO
M]#R:S$A0OX;%'[@^M[^5^/\6%N>"VZ.J>*?G[%].O/_R&M41[] VX1L?G>,Z
M>+*;M$3BHT/:=@Q/P%)!YHB.B;?V6>^#=]^];H=G7\1!;=#)I 2..SKK4ZY?
MF0S2&>^*RU(Y?7@YC5KS.QKO;NZ#HRCQT)6\7V/Z&\?#2F.<45[2_1KINJTE
MK4;7&;&&TZ4GQ-2QV*Y/@?JQS=T>APJ=IVOW4<DX<Y6[('JRT[5[J6O[@.5=
M9#T."^@"85+4'G20GI#1)36*XH"QF*,LSC#>>ES*T4_7;JS\/B(>9J+N2W'G
M(-@H2#>&U\Z0F4Y:H>AV*40&HW-Q,1>Z7]IM)O;6IQS%+-U>*K@]2[>!_$8>
MF.V#SM$8 6BCHRL?F5,NTTE6?&2:>RS*MS9*CWU@]BX<:"WJ09+13D_GLZN
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
MAXI@"M,VH.1D0Q_*(O+[X26A9F')J2XD-!15?(:\;6L+9..TBC$$PWEK\;W
M)-1-6-I?$NHFRC[,)-2<I;.+PBZFYE'(8,E3SC46Q2U'I8TMK>EZ9$FH&W'@
MT234373Q7)+XNHSI9Q+J1DFH&]%DF!HCF^OXN?!7Y*2CR@Y\-K6@"RJ(6G+2
MF45/XR9#NK_4K4/G[49)J ='VTU4VP-=/^)L/AU5Y^QV_D>*DNG@,F@L#A2S
M"8+R!K1%6339/):U#F6M!'* ;G?O.GY8.7-'!?535/4VJ$59CH^?_KS.-LL"
M'4K(RI2:/800#/-@(WW*BB^E^:' HX!^LJBAPH8LL:,+MRHY6\MU>*A!*X@*
M.;"(VD6OM<GWJF>^V!([VY"CJ?R'+[%CD4GC: ,O03-0L0;2-:--/7GFO/=:
M;EZ Z:@3C%MPI($N>D@8O4WB*I79]39)1ETL$F(]AE?*>?!(=A\W!97T3A;9
M.JZP!LH+IE!+)?50;F?K,."3;0ZOF[E]G)R?_SJ9UG]T&K(-"ET!6D$US0]6
MQ^TU,)1><VUX<&IH5Z[I" ^0Z3T'<@^70(>45=1]M.\N%NN"4L%GG\@,+;(>
ME-=$=:<TA!2TRDF)()N7V!]J<,]HD@S TN$GU!84.Z2<I"<'NLCUG;T=7Q8J
M.^7&D]ASAB"YJJ7):(A>)? I9A^=,4X<3&K2AF/[.9/V,I-V(-@A)34].<[+
MGM37XRR*U=:Y-$X5:9RY6/"1.["\Y% TJ\UUG\U$NCNVGQ-I+Q-I!X+UX$AO
M/4Z2^.6 '@SXS=\X32/Z]5-E0LK,(/"<&2A.]K4CKQ&"YJ*X5$H6!U-8KL-X
M?DZ8/B9,:R(]JX@!2;[@Z/9ZP+76DB5!/JDLI(,D(7"I0&I/C(LJV?A\++<'
MP_LYA?:RY^Q&LX<S2N\4Z>]OG(OOK\?H2W!6%PVIWGDGSR]<%DD(F46G76&:
M/9G%.R3@GY-CQ>0X6,8\G!7F</>9^W&0'&,*F@FP=>:K4FB@6@;P69&"LM(>
M!V^]U4^H[2"U\$\<G7VAOT^^XS2<X<*W?AWF>'V7XO:LL1EY0)\@U/Q.56C1
M]LHJ,)I9HZ7GHGGAG ,3P3-:&)_-"4-O%'Q68=/NXCAU*:9L$RDP<#*;6$%R
MU",'B[4=F?"L\-8U&@]AW,]H[AT"^0]P(F_$W&<U>^_&I)\6A"+ZNMI.D.7:
M7Z/:G]Y)"T9&[I5&X?SS\:TW'/S/>7R8\[A/#C_C@Y<.@A Q66$<,,/(F<S1
M@0\DB)B*E"%P%O'YF,4;#O[G9#[,R=PGAQL>_MS$5.(C4HAKZB!U"-@_/7)?
M#"KC.12LQ6&4KX.FM0R%16=UKA9+]]C<OH;Q<QYN,P_WK[>-Z/<<#Y1J6[D.
M4HC>,55"[;&=R3'(@1P#^I;SG+QE(I1P,(5;FH[\Y[P]S/VS-_8^TR.L#D)0
MLB &3L:#\Z LJS7>0ZXG%DD6+;FRW6Y,'<J(?D[-W;;4 U#A1J1\GL=H3\L@
MNYJP@A&XS22(HB0$5FMQ,5J;+")7?O ;_(.'BP?4W1T/[&2<KRNS3NI'URUV
M4Y \(^T7R=:;K[YV;TX\ 5?2JERP%',P]4N[#>D9+9A[/ASK@2*'%&%[?U5[
M;^$%U2)!R\-^6GHM1E5='"5 83+@>+:0E5:&\1B%/)@<YG6#>$8L[X-FC:?
M;APYI#.BQX7]_F(^FX=Q'HW/KA)?6.)": %2B)KAHQFX2/+G-,H<A'=H6W>_
M'6IL/Z?(P3/JL+>+>\;=53CMPW24R*8/.4KM#01:$<BF-Q'H>P<IA2!"BCH=
M3E[R9D/[.6\.G4^'=.^E\_+PZ.B5-#GIP, (SFI-< E>&E]+DQFNF3(N/;]M
MZ.<D.YS-J1G[^CK]>.SH9UT'EB>7F(]8J4'#?S49+[1T$<XO6[.D>ILN6@5H
M$,F^91Q"/? I6:*AY<:H?B;<L,/\.<N>$\\:'DJT&O+&"\MZ21B;!&KAP=;R
M0<K&"$[6WG2B2&-=,*8<3)>LYJ/_.1&/@)5]'4VT69+>TLA&X]DH+>+NM/(H
M<C0MBV"+HY&AL1 9V=>")<5#II'UTT"AE]'\G#\'R)J'\\$>OAMV<G8VQ;,P
MOS=RTD?,3%H$CM7_%&3^UD1X,(S^2S)HK0_F!MRN@_TYFYX?YQY.-M>^ ]*K
M\&TT#^>+.K [M#I:]9C=>QH]":Y1\Z)7YV$V>U\6[[DYH40=E,Z.E"-\HH51
M($3ER*1W&9/4J6;L-EX?5@)IV&*H/O>7'XNW7/80<8')G+VO20F+?J6U$&=Q
MP*S0R6>&.C>/Z:Z',U0;H-WU_4AGGYUDO.]>/1E'I[_3PG7^9CP?S7\L^B=X
MH7/"NF:E5-<L6T@NBQ+T*3HO8Z!E]Q&.S##]Q]GD^S_HT9?TH"]N6+'BA0?0
MF6<W'4[:R++A(6N%<HEB6=2W"XX.W7&>UNWMMP[;PV9G\4\:RJY/7>;LHBZ$
MA\QV"TJ3.>&-]8!D"#'M:>52Y<!UN*:?2V\JW$1DS;L?C&A-^D1FXCE.7TV6
M!;&YY4YR3>N+"@;J#3_PW@4@VU [&5E1/C]E@ZU]^G#&_VZ"GK244L,ZR+/I
M_/1C=0T6!"S!HXHV@$TAT)"\J[T21+U'@BQ(4[QY;+I=FTSTU%OF$GUW,^GN
MO/!8ML/MI=@P9^(:Q))176!LTB6NBU+;3\JG-\,=A']??3M(KN%2>A^.\TQ@
MTAILJ5T*#*\I\_5Z-":32M"AV$ZU.?:MP#4[87O];2*PQGK[(_P]^GKQ=0DD
M*V&44!YL**Q>XC'@.8N@8K0^:&ZL[A2U?D)S=UXZW(ZXD]@G+636<".\O&,2
MKO>$3Y@NIB0XG'W$L]&L=KS/UY&ODZ^3B_'\E+%81! "A(XT8.E2+;5N0 ;+
MBI#:,%$Z63:;O7?X@&>[H$+?8NZ1$<LJ>BZ1E<Y3!+FHUDH2 %<<6>JEEJ$)
M(IN.YNR#1Q^37K<05FMGY!::18!ZV96X7L-\.YM=U,8]IYYE:XR/A*K6;*P&
MMY>T]O#$4N)<LR Z7C!\^F7'I-XF FW=8^T6OE>3KU]'LVIVS(B)"<?S<$8_
M^VTZF<WJK\TN4\4RR^B+T9!2[=44#:TL@=!*87D*&4/*8E/U=WOU,9&A!V$W
M+P>R$NW).'_$T==X,9U=MA![##Z7,AM1S^.,S*!$J;D5MH 6JD3&18Z2[<"5
M3; <*7EZ4T<?69X5>UWU,+\F V9\=KGA72Z([_"OQ8]FITD&8STF2(ZL%J6\
M!I>*@:2-T3GPP-HG9G9"]IPIU*,.FE=2N$UT<H/ID8OS^(^8</0=\_OQYVD8
MST*J'RXH?EJ2%"9X!<X53CNHC4"+HP.C/#?,1Q?"QO9EQW<_9U(,(>X^4N8V
M07S*H]8J,C*GM";!"#*Q/!H!DC/.4-H8M6N]G&P"\#D3J'^-])!AMDS@N9+
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
M:P( %    &-D>',M,C R,S$R,S%?9S$N:G!G[+MW5!/MNS8:I#<I4J4$Z8B
M="D2+!1%1%! FE$!Z2 B$B4F%.E-4$'AE8B J)1(5P1BZ(A([R4%!!$B$TL<
M3>&,O[W/WM_:Z_O..N?\<<I:>UA/$I(\,\_=KONZ)C,[LSMDF/A)^Q/V,*Y=
M7+"+T!]LYRML]Y& J,N!L$ 8M''M+,".P79Q_=W^/N[ZN_%P_WWDY>'AYN'C
MY>/[U^ 7%( &/Q^?@+" H-#?#7HE(BPD\O>?OSOYMZF[>+FY>87X^?B%_B]O
M.^]@$@+<G;Q2W%RJL%T27-P27#L],#BT1MY_+8\+]N\;URYN'EX^?F@9PM 7
MFL6AY7-S0XOFA58,?7H;^AS&(\$KN<_P"-\>UTO\JM%21HGY90)J1^N)TFYC
M@+KQY6M)@D(RLG+R>S4TM;1U]IN8FID?LK \=MS.WL'QQ,FSY]P]/,][>?L'
M!%X)"@X)C;D>>R,.=?-6\IV4U+3TC,R">_<?%!8]?%3\M+RB\EG5\Q<O&QJ;
MFEM:7[]IZ^KNZ>WK'QA\/SXQ.34],SLW3Z&NK'Y:6_^\\87^[?N/GXQ?X.\_
M?^WB@G%S_>_;_]0N"<BN77]CP/_7+JY=<7^_(,'#N\^03_*(*_^EZ#VJ1HD"
M4D?SR^J)@FK&;H#TY6MC0C+J)A0-^E_3_F79_SG#DOYO6?8?AOVG7?,P$6XN
M*'C<$C $C,UZFJD-^^_QW^._QW^/_^/QW64^BO&>_0#K;R#@L$*8+U_9@:6T
M"S[[Z!6^2M_]\NX0ZKW1((^%D>]!?@U_#Y683-B/-MV5*"XL\1T)<-C.D#74
M3&0&;;04WO-EE^J%]5R0G3;),:SX:,9N^_-1(;*#]<%S7)F?_0P1M /+6#X,
M[3P0F*$RDJE*P:AK>NCYSYZ;-Y*="Z^D6N',],9H-Z636',1-;8J>VR5AJ5<
M;7G_I\,S@3.- \[A9[D9TF .!7>'T%Q$,R\##7HN&!S13'OV1=SW_;#@W1ZM
M1T\RQL=W?7FO^4^_O/8.S'Q@%O;KBTZ]D^)8S>A 76Y9_N3JP<,"AS<F8:YV
M4O]EH QH^W9@O%;LE!U8 $G)"6A=">HOB8^2]@G^]F6F4QI@I#P/:ZLLQ$E=
M\=+_JF<R%)]12SY/O#NDNI^'MS'!&18_)?V)U.!">\$\@%G"B8CU(>9T5T[?
M6XD2<T!-%YD7!Q=8Z$7N2CTXPC-PSY;IY1.>7E&]BT_ ](L)S/6"$M,'2SRY
M [M(FCUU3)86R'0#78A%11(W6_X<IM%+7(L1OS\7WMC4Z-:26U;3+34N)MM(
M8(G7".3[6 73+%'A+D2+?4J5;^CKO9XLS>+3992![8S/*O<\6EI.9'S>)7GB
MD/P3L1KMNK,4?#_B#E+N)U;R,U88C:W:G%$6FUH9;S_!+M$IL-+M;TZB73+B
MJE\8>)/RL>M=%+%[%[_G?XF&1U".M3^%E-8I-6D=15V8:9DP>7OE=>?KW/D3
MV=%XC9;C-;0\.YY1OL?2WPE;3,BE@3NPI&C,%%9:ST: \W$'UDRZT^Y%'0*#
M"B>.C->IAWQR] _14#'B^O:T4?F6T!_5!"'MI]# XSCJ.S#BV1T8&8<30(3Y
MP1DRX#VFRV=+EUZ_6T[!3=M"+J)#YH^O<K6F^MQ)7U@8U@XP[#V0OKVF.64U
MHP*W_<_8GJ7+IE]'"J(P.[!>C/JD?^-$TY!%Y/;7M4..*CG";UL;7A9@[G-=
MR_S-S8%O[\!X(G9@%7=8B!W8NT$"N 0'=F!84"V*K:Y%V8%Q^)QW8'V?N3?_
MZ*YCY]8Y0D/0! J[!J/MC99A_T,(&Q%$$7H]&=]=@LHV9(U,OO5+RJM?E(=U
M/5'_/NHY]C^F''J3_HLC- 7-7V47VJCYLM383W=@87!1T+RG,!UOEH_7Z)&\
M'T[+CY%1VBVPN^*%2C80S/WYI:Y5E[(>0,IKUZH$-XGS/9:I^;4AH\@-3\;J
MPZ\1SW(",MU'@ :C5PS3?'K\BGEW7@)'# MGG9L)G+B>7BDQ'*]<$GU-U<KK
MVR9/Y/LRUXQKN[*OV=O!8J4\!V[LP( +VZ!:\^IF1 @4.RY JL&BRT%I\L.'
MVPEYQ1O62M";#Z& NH+;OGG=%Y2AEW?06K+?7CO6QHK)^W@U6I!5F,>TADO-
M?H[(#<-N&]HY!-T,>>YMA[T4JPBX[!T4&7T=D"\78)1/Y!$_HA1Z$J;]-//_
MEP/ @3I!M'[R-JBEM>4,8>EVGXP.&FU8F?AT0TR31-,['7=>3Z_!0FC"L61V
ME\=!6EXA@0=*Y@1$8U &]/P6<K5;7CJBU8$EE>511-4L KY-CW^+V'.>MXGY
MV/ZK5V=W@ I"I3Y1Y36V47O6Z_)N>:]N3B)4$JMMLEFQ6% ]M>0Y*M+">\0)
M));[A:T=O-J2.G$FQ<D?Q(R9OEI_@PP%X* AJ><65$9"B&"DH)VJZ,F9'AMX
M^V-$.O& [$#:(E^JR[/;G[E_[?].O" Z::W*@1& PD<VR1I%LZMCFJ]R:O<N
M1)+4NSPOY44--<KUR^%3"1==0/6J9 3Y,0(XA\O&R>S @K"\H@H49,\.+*TM
M8AKW; &FUQ1QV6JC<RI0:%U'$*E__4+&6INV4*;N=F8FYYN295_$T74;7PF3
M@@AYJW.25ZU^/!'C9U<3R%78>L^M2RO#PA2Q/E*6&TX1Q$6QU#IA0$MB?%U8
M6\+EHPWG-X#A@Q[S3*\'[ID'W1Q5:SF#2,!-;':&L3C=/,+'&<')^7?0'5)6
M@UDNY-J8DV_'38?W/4@ZA'/IS-2]([2Z[W8*M[AY0"9+9 >6'&9C!HXPH()/
M3F&%,'W1P6T1QWJ\JY+1#E2!"Y16]IU!T]J*,\==EAQKZZSO<%>$RE8>@]*_
M'?Q)Q<YZ<G8GC&-#<,DS1B%_'M242DV:/MSZ2'Q.U*@Q:[WQC9<Y9-H@5_)&
MM/3)7AC[,[L.2WX)?Q6UI4"M11!QS:3^:'(8S7NN:MS''?CXG/%KX#5I==$N
M''A_]MKVN6N#'7%<KX.&.ZVP1"("<"3,+725RM'C>L3F=V"GB@WD-@R_%/,6
MII4C24M#@?OVZ6LD">QU"@B7[+R:_4K^S-3OWSLP?J*#/"@("%U.O@42?(1F
M5[G#(O+_B+VO(+ ?V7"ACG%$R)/6)RC;=_YH=+ZH8UF]HFO65RM(Q;_M.,OT
M%FUU,=[U:<HVYV:7_2Y]V4P8VX2.9,GH<@1Q9/S<,0=V"\N.Z0=>@:=R5 H=
M30X'\GSS12XZ<!KF=36RETPV6-$W?4:O$1U,RYE\4,*>VX%=0H Z5W U2YA^
M@F(MZT0LA9KF,_:U::%$>//XM:,G+[[)-0^>3>))ES?^5B F_1O"7CXO%@]H
ML4)(1,IA]H.;E.FBVLT6Y?UI#A/XV"S7ZP=JJAH]7V=*W;MV7'.?]?@3>1[7
MZD*!)^@.:.8S7R<R#M3'9;;#*<_,VJYSQ.CV.(T:!X$(:GO2\5.W^%*-$$M/
MQ)8(>23 !P=J_-K"TQU<03VF/6;2$#3OM3R7$F42$=^U]X,D;?'H^T>-"P><
MF^X_$+9?6?.X>*3.?P7!4C2%8#L!Y*7/1\W-4%UH:<^(5%VKD890?-7GN%\M
MEK%]-QY6O6U-I#AX_/:-M/'B.='(#\_$ K<JHJM8THAWX>E<V 1+UVO\RXB%
M6^1!%@R>@LG#$M\CZO'OQ 2P1,*OXKB$3OD-2[LJXAS+/(X\2].3OM#C_-Q[
M8X(7':GIN*U4H7Y/+8'V)L&$ZT\5!2N%"NOC*$RP LDD<:_0>?OJ(.GEHI<A
MK2<.=RRU9RI;7,X7]+1WDS,J$%#)_%VT$L622>,(K@/ZZSV,-D+O$K*' -QQ
MI(/CFY3MQ)]1$E[@[8GMVI]KN B]YFH#NGI#M0Z/N( I@&7MK:>+45MI4'?@
M.0=6,G6&Z,9G1G^*[=[T7D]AR5.?"]YLLHIP<#YQJ4#_B![O<&_/2W.172\/
MPNJ@[*D")J!<2%)E'0 WH/D ^):^?@K\3M>BZM7\24OC"*&E4OT<08STJV*%
MCK/G7K<[H:Y/%9LW2F;,72T<N_\]*]$67H>H)]"6F!I8HJV-_" ]AG$,G*D$
MA^Q:WS!-F=X.!V1EC/U5=;-"QC03TU?Y[18M?'/#/M@@L,1(++F(U-#?Z^Q$
M+J)),UV[R=O2(4;W.\9B28)AXN_Y'+W$2PXW],QJ:!P=:Z/D/Q0/HX=Q1.[.
MQ(9A%Y K8JG[" _"(SDRW;'1H8I;!>=C=:_G#'P^6?,M(9X_ZJPO@J6<^A('
MN!/X&[1Y.WDWU.]:XF@1%[%';.$=B":H>) <P7JF#F?<6VLKCTY@/![_,0+?
MC)N>SBA;.._GQT[R27K*=?. A+5'_%#9KBMNTE,# G&>ZWDL64\RGB6.9+2P
M7YNX2'$6":U%F9@]X"_BO*^W00;+K%1R\BEG=D+U3?'Y[ C3+%[>RH<:D_:.
MJT>%OL),;R,A(LZWBB6:HV-N R3J=A\I9;ZPGF[0U;CPA7. ?BWLER BV[1@
M,SHF]D5V_M6 -I(F[!3?-Z)$0O(W;HZ8>ZX)%*\*D'<,9@"(.1VPW=R![>D(
MC[&%CWGV;\^G,<ZSDPE!=\!!^@Z,FOJ(C.<*+IR>OM'Z:\W+?%?)I=94=<]B
MJEMF]%[=-T+]<FX.]]'6T/[&($PXS%$%-[N10JI@.?ZSL@$]MRK(GQ(EB)J@
M<!J?ANZM]C.;U6S-9$P;6/)MKN_3+M\^J,X-&+"4N9DF'&@^U'<N&R3OP!0Y
MHAO>I544?.K>RJ7UW /7FT*4Q_3U:@L7W*Y?0+\6,5:SL3D2>R]ET>$?+-$(
M:KMO$(W;+.FA7AP?(9 $ZEQX$$3!YG3"P*SRL!V8L(WV!J.^\EG'"^]%>^^/
M[BM;<;+Y?(GY+OG&;0\D!E[UV"+""<$C\_YD^%8>\&P'MI)&TZ7[. !1*=>[
MJF-KPCRMQ ?FYJ1"N6X&ABO5]]70DE-,R4BHV9!?8P'GD0R,"0 !VHI^(\4)
MK]2C 8BN][APA2DKUM.MC[^L*32_E5-ST)=//_'J;W_5!,%#^%X$:*W%N MY
MMW<'!NIH)1+\+4RSTJW5R"31D%^&&\]7'<RJGK]?\WFF))?.VQ[V#ZWG81\#
MWX0@_X!SH9Q.0<Z^@#XXV32\>W[>CW_%YO&S#4WM!*9I1;'9BTXISA=<(_'=
MRB^GS]K</\\R[K.K;(0P UAA_4XSSFCI_C>C[;J7C/J?;Y[Y[-DZYL4G<OQ>
MEF-@\.7?5P.OUJ<&N!$?'P$.[^$(]T.EG$.'=[E(HV/&"!$C(D,4'.](('^Z
M045]9Z;C^ML]S4WB1'5AO<D&89]4B7<%!R4,5;B*?^]A^+"KK&\S?;'$"AMK
M,)$>=@YWELZ7#QCWV< )D]N*[4595<0XWO:ZX8+M576N?PJ\IA[^4_S;@"/R
MA(WK%&*=H6-IO'1CJD.WGL*%Z7;30,I;);[OY^N=<*^(\>R7D7="5/;7JK1
ME.C&U'X!SXNV?V7I11*X?WM+'FKD!]*\D;/,E5I"AD&[I<3/QWNW3[UYU=F2
M,?O2>=7/0:'].'U-)9 G1=VP][8T<JB5I;!WY1T.N!J48:U L9.Q#&@+RC:9
M"(KZUL\X7_5=+8L[Y^7H<5O:JUN>/_?8*I)Z2=EP80P7Z]!4IP$K%$RL 'VZ
M_DB_>#WU<RGRIQZMUG\ UOB&6R/=W77(F!=6P(MNI2!!@R*6Y/>>[Y_-6[&*
M/_%B8'QOT78@Q4 )U4U9;BT'X[P?[U;2^VDU=(CF$\*O47'FX$W\$!(\7,UX
M#B:+Y7:*<WKG[6L/XU.11W&]?Y9J3A\-E76)UJC$/V)3A+JOG;NU*'GMZ,J&
M&*B_W4400&$YHC% 4=K%L=II!#_*A_(]^*4J_/.WYXW-^IW9ETO=M5[L7GZ6
M@' AA+C,=S-0[+LV(HN<44)37 _30 0T^AB&JC/]32Y&/:B*=;RJXG!%Y,,3
M<8'UP[J_;T-YI\Q9@#=^FF%)%U%'^O"@=E[OCU9(2?4A=J%PQZ=_WG;T&XC5
M^>FSX,H(#+L>XD^2??C2?C3SR:[7TDQA"+-R.9-P<6PP 53_82,%YE0OANYA
M':0/;]_YD37T0OAMR(N(D+@H>?]!">&6% >@7RKTT"Z"/E1GHSNPW\ZRV8BM
MAZBT'=AI#RDNYG<H/ZG0BKS^DD4GL;1;.[!N[)R3[;0>K=VE1K^\EA0V__:"
M[Z)C1H/Z4HJ[X^2K,U+P1QD'3H<-8,ED KC_63FTAQIV:J1U+##M% 3>6[EM
M^]D&YO2P)R/(,+O]3[+:U<THN0$WH4<!=P[N/^^YY,[B0!!'_R.;5;K-N$HW
M+]+];.A S?+[LGL@<G8C+W5+?N7TX>/.&[:R!/*D"ZB%N(,-\VJ/@G(RE-U<
M4P%F43?SY(>>H2S7^TY%,99Z%:\M?:G37-1\V#[6NZ?U3[E(I?U):?8'<! X
M2X'3Q("5L^ Q^@BE+X]*$ F365-R.CX3[D9=#E3)IEV\\>JC>Y_\::&[MJ:_
MER#'9J'RCD]#CLKF*$V8O)"H&F/%XKV^7!+3M?+-2E @O2]5^Z%*.!W,#1FN
M7K5E6H$E*G#V8L:P8K%.$6$<Z5Y"GSS+@?SXJ)+9NEM;R3&<XX3C+MV @IO%
MRT=,W[XZ^B'BT0!LK2.9X09YG !YP9P0"<\T 'P8[NSG/_!RJ#*3-\TRXP>:
M2D!?[YZ!AA-M\==]N55%@A#FNSKOXS^-<$35<@]AR2TVFJGJ0AG =L\E=WO8
M+L;(K@0$R@0)ZHVP)'_Y@3\O,?5].).OO%G')ED.?(EA9+9/UZW>'&!R[<&E
MW&G'KWKBW?ORIZ(U%_=\U!U%A(N!VJU;T4QNGPW/'5CS>N\:X%[8LG98]VPG
ML%9Y^''/$\.#65GQ-U4E:1Y1VJ]NE]]8C$%^W('1&A6CL41JFU%?XA%V>2>\
M /;5?VP0\0@_#@'S^"$21]"<PKC.4]57JUBF5L89F>)S(#NR@KF_&&20 "0)
M5 _J0B9QX'\5PX*:?<D1NL^B0>K*A$G)9LDFG6>8IZXE@^NQFI?$Q'"^C-&
M[65[73P0Q)(QX B6K1#FC+XSR&/8L#Q1.V#&F<#DJZS]HAS;--VZ<$S8K*G
M\%JDT.,AH3Z_F37;H6',%2QQ+^&*2\)9++$6(8_1\$-KC>E;'X,2/ZW3IJ1G
M[]12IG/,M>DSR[4/ORM*9@EF*)NZ2:LOJ7#-/02U6/)^@ \EJ&=[7G@%GHM1
M16GV^TRBY<L^?T=Y_71L!W\,?JU\>Z).->-;EH6C*\_;N)>R[A>5B#!V)3N%
M0&Z I.QI)*B] \MN=DF#-R!IPKO?4O54Q^J^7E<Z9M\^$5G1+"*U>+PHVF%=
MY4!99J3.FSC>1>-JYGDH/[P19!SR57_>13"$Z<T9U27?OOQMTG?V6#6(=#^X
MW)NB02ZU\LB\^C8A2F_!'UV;RN/YG<V$^<RQ]D/"C6"*$$7M>J^GZYRU0LJ[
M#EYGRO6<<0@%0H=67^I+V7,IG!/1GWHG)_VCB 4W5<0X;!'UB6^Q.7Q;,=G!
MOF?X-[?[D.!^K2U=I@U+!(BC&=.Q*T4,1/<.#'[^R$V*BVQK:JS%EH%JL4:A
MTGAW.)6_P$PD?ZA^EJ_K<4YN/\.%7;\#NY*W<(^"QNU%!"(R6TH-@1[OFK;P
MXN8'E3W:K:[J4>H^0;GF UYGUN5^M_W$#T!=?+]O]"!4AVB6:I#M2;0->.U,
M_NA6DSP\48V.OP#99$;X)+D7QRY4@IK5"9,_,!9$=Y+X%H@0X^:W#I-I>543
M;4?%P2NBG[QSER EP+9@^,_;C")V,S9P>Y8SXXB=EZ72<E-N4A7N15&&A11"
MMIO]+KMF5SY.J;BVY'=P8"#3K._31R/=WWW0?H5V8.]'_I#8.3AQQ _A/VQ^
MZ+UF+-'&^C;0S1%:AP";(^Q%5^ (&9!Q*1!!8DE$E]>5\6?6?2TZUYPT>O#-
M^(^WP93\*+O5B.BV@^]_MY6L7K6 ,9W(D,#8Y @2Z-\9F8@&ES2.6:B-$E@P
MH[H\0R2)6RN\1-UBK+F5%6K/N+;>D3\O[J%Z/">_V5F+)=W($6(S3;%$C4X^
M0BYG?VCT%X[)M-X591X0&W1(]M9P%SGJ,M<W/=?T[UJ7$FS<=W\ZLP,[3 "B
MMVD&\71HS00R<MZ*B!6R]B?+!0&R:7CT08[!Q(3+9+/ Y4F#O:*G?"IR]!K>
M()=J%C07)!M5^5R134C@ACFK#$$58V>7*N_ )BH[8"@$2Z$( N0W;!Q& VU*
MAT-D,WP'-G^K"YY+DMN!!0MOTJRZ&S9:LV<BXJ.JO.>ZN=5=I%RY9?/W&N=D
M2"8G<-5A&04@Y$\^#F8" 7C7\C.*P!1F+*K\"%@5O9*S^[ /^>>O.S^MN%^@
MDI9J:[<NWZ-YZ.@]B5%J&)3O^^J(^K7GP@MH]A4H0IJQVTP]RWY.R8_WK'DH
M0J\<%+% 7&'1IR=^I+T<V7N)V;CZ8.M1_FT\[02TYM1_G7'MV8%)J8/&S'.<
M\3,HK9Z,$*7QD#^$U%B_1J+*^R&1%Z%CIQ^?:PI_9]DF*>_E4,;28C<1@K"Y
MN,9%0K-#%WS/IHT*H'H@CZ^Y"M3U".K(,4LMG)Z=S\IZ30R_>;=OX_[=(,-.
M4B*!O+4-:FUAFXM8>PJCYG6)\P*X/@1/)-(WT_'IA\;/UWB=3RKNP&*E+[>I
M__!QZ%_&_TTQ;BS1S]3]KQ0$N\EK1>K>>;WXY-:[J+.4CSEJR9KU-F^N703^
MD+^];YUH%VM2NKM0K=S$]6>.J8Y9Q#5LTV8HHL>H_%N5='T7F<_>@>3FMNE+
MHP8TO5.KDI=S?9ZK>CV._EX3F!GIMQ!7A\93JU@R!([@$)#7J[P?^%A/Q[E/
M7P9$>ZZBC\VTRY.=_?W&T3KJN?[NDU%;>E=:FB,H=ZM/O/$Z?Y!G+X %]XMW
M0NLT@Y#J;:<*B&2:AYT]_V59'L \HCB)B7OOD=J^^?S"L2CLBTC%BF\E66^Z
M<SV\N.3>X?^>XR/ER:*/=4#35=!.[,<<*2S1LE.-Y;@#2\EZB2IWGD9[499<
MNEU#OOOYA8QYJQOE''-O?<U>M-<CO5$3.?EU\(G8LE@J8@]'B14"8BO0'J#3
M2H1Q#V;O3$W!MOV,25C/ZY;VQ#9+QSNI2D>^"JB0D_;G]>?Q;L(E;?A1(Q12
M6K'TI.D.3"C4,C;+]\WYGHF%$Y*1*I*R,2+_*.Z>^CT$95<+9A +N")F8QB!
M8#+S$&8)R;_=KE$YCWI)<@>QO(P.?[1\Y*78#JB(?9T^J0[R&$5$/.GH?L53
M:/HGRQ:NCQDAO<(1L: 6%'XW)B,6M",/ZW?YJ5%R%C&J4ULTZ:#I9HF+4+FT
ME_KR/5CVVS*_/;4_4]K]'-8:"03GL9YY'MF!U?-#N#<FC)R,HT&\7//7"H&Y
MQ]2%K5Y(*(*#)@Z<L[I/=F"SR7CLYY0G8I_SJ'&L/3&4W$8HTU5!*(EXY< H
MBIZ"/=TE-?QGK59_W(U7 AHS!_1__/9O+7#.RGB6>C53_E6?Q4,951/7*<XL
M''!#S XQ]G2,MB.8)] !:4YT_LPKY]L-*$I:3FU3L8_]YEC-,@PS5R>K5.Q=
MFW<IG7YSU([WA$=(4&.]'R>#62;\Q0L#?);G-60S/@/M_4?TP=R!XMLYI278
MB$N[="CHYZS&/F,5@U\/BV%L&KL(2ZY"U$?1;M-EO4!=((O:/LVQ ;X4SF"4
M483N7_.[.P*>Z,J$B=K+70D4&G!2;7@>.R@O_1W!DDWF"(\!:1S!2T#+#HSB
MTNU\>:@'KM1,.[ #ZS*G]/34?SZQ_V[Q@QU8H!US[!WFYD.#78<_(O0)Y"^D
M+.6#[%PLN0T";2S4.A*]$\>MO2K0>J/6MD4M/66E7Y0\W9/#7S,_ SX5^E7[
MRM\K)F?^\>>(':=+MV9!,FDDH5.O,9&:=HZ^ A%0W$T99[U%[J_<9_C'X$!D
M/TL:P; '^YD*+!7V75.7^2NB,2N5'^]5+X-IW:TWBO+B3<<ZVCM>%YY8-M!9
M[%OSL+GT<662CO1E0>0[Z0FGE]!(R/L)OV-S 'ST?+/3:&S+;JV>O)VV+#')
M<GJQ\4KB]8DXOJ(H*Z\7O@>-?U],$CMJ_ DZ;!"KS($LR\Z2Q?V):<>G$2Z1
MYG"]<. ( M3>AN N ]<,IQ$NT8W=P$]*/3:BH#GP]?VV!QV7@_]$,#?[]>N&
M\UZ-ZK[4K9O#.FG&PX_NZ_!P_UA@0&B>5(7I@M)"^+";RQS_RJ>\C*@F$\_I
M)MTLA2Q1^T'A",G#S9/1 _Y+*=_/&47NBPO*9+E G9I$@WJ-+METO.NI)^!1
MEZ>BV%"[J+[K-M<5UO!-699X?*^R6BOTO;)8.TO>F=02'WI>CUPL=O=@M(+I
MT]^6V6L?[1.+=:S?7,Z6S![P5CEWEPL/E4HR&;M*YNS"SI;4[, V_#I@F$W,
M.]RWRTA>[%8!"A()SC=^;KJO$EYIL1X6$9%,]5(%J&7Y==R:@F'5X,")35UG
M<\[N\T#JXTN1=XE1](D>PVZIL)3C2!I,BFL4!L//0B3$JA4J^#TK(Z!&:2O3
M'E5$G#^'L0#,TYMB* 0)O9<:F_TQ\=(UTU?.F+?;ZQ0?DU>/3/21]YVA5FUQ
MEZ.A>F$I.E0&D_C1<95@4,\,7!%]O,V^HP:\W>SC8V$]].V"D]WK5N.<LM0Q
MHVM'1N0.C[!D8ACKD)\S6<[LI@@L9"9XP""OKL::BQREL#!2LP$7,7$,O]3Y
M*J8Y-NN(=LSUX3 UZZ-7 H]^N*/V^R&,K0OY11_2H3D$Z1U8@%@&@=M&+2QN
M'I?:J8@J<4'R^I(<QV\7Z X$W=SR]Q_77N:YJP64/.OC@F'*.%.$5N16+5,J
MY(]&/TV>[BVJS.S=FU /5*757&<^=O"<B<S:GQY><V"E<.U3JZ7!UQ45>7%)
M<Y'O2.!4U!R"8<B^B_ ?$48),\22%/+2_@Q7W*+EI?>NSP?1A1=[<MAEUDS/
MX8+C$KG2[N[NTJ[GM%F:8!0S$&T'0L*3/W23(&-]%L#^[<9U[=S4;6E4V#L;
M7N#G4I*O753E/-*K:WK%M:VEU;9,J_UBP-DUJ]>\];;P#EP#GB7EPCC);FAW
MI[I '9V'H[8(5;T_>>X&JO5=J=:HP76_.$<+[NL,6;J=Y3,O>Z"2*Y"W(1J9
M#['QF"B6HA;9V?A=J0;D]%!,3Z>)\UG?*?22+I608S+8&/7,9Y?;BF/+W>@#
MWR[V6]6YF1B(ZZDA[HVQG-CW">272 FH>U'P:7#@G%@2XA4\IYV7_"CRQV$U
MZAZPJ/>"HD_:1"8[S;7X?,U/BYZ!EO":E\(6!S5EK]6BD9#-I1!E\61I08&R
M@GK=1!W^KST0,6M$ ,[(7*0(.HI^C_R+9B";@38%YI>G5_J]2W,H?A>BRX]$
MKS]\]DAF]'66S$3A79WC$@6?[ 5GV1# D:MQ %1S"]<V>XJQ6V7,8SZHM<TN
M2P?&,T+@T^"]62Z\+8XB]:8-[1].WJWO49HE\ZHG^O736A5C,'UPV4L/N-58
M!V>Z=462=C^VL<,(0.W\+N';=:PB=LMV OOCS7-N1A09RY+)XPCF,1U8MR8@
M2(52#M%\&E>#VH&=:W_3U  T!N]]7#OD$B75,++G]M,Y&?/CJ6[O5R5>Y;9[
M'F'Z_OVQF@ E]JQ5KR468HMAA%P"D'PA=)IF5O 'GVKJT-IIMT 8?)TY1WEP
M[S]_Y?G]$XI0?+\B$D"5OE5TE/9D9(,/I<]=Y/H4ULR09<%AZ=@@;,*XM$):
MCFG";@O8_!'<*F(_C*T$[L"@WO<6FHWD?"#QH>7IZU0"S?69#XBE:N0MM$LS
M1/6_??WNWK1X;K&RXDS3AL#%(P7'W0<6_J'[X)0(Y#H"<'I[#D<L%0'SZ4.,
M[#1;8+WG\"Z2-^"9_@R8?J&7B@^RQ@1$2'\PPTO$R'L>+)1\V6:LFN:&/8PE
MWT<"1TBS08QOT.&MT9KT?MH#<NW9'AL3NO[]UFF.8>/T6BMA_#H8J9G:?[KY
MTOW,J8@'3G:OJH<.-/SSED\.,M:\*PJ&%H:F.Z.%0&. 8.MLW-TI!CYX]KE3
M^967/&<H,*J,U"T5OU@8KAXL;*B1/JC^W18>Q_J+D D$<CZ.!R.%\EPQR$:$
M']:\K=;'F%@$O47ACIWM'1U)"H\B OZ9[^4J%K@SZBQ7$&AW)2.IL/>V&%.?
M,X5K7*>5 T&GV$^P5^ 9#&4]H+#.+\+4B?>ZKJJBM5OO_IJ[)ZNV'52K19+L
M!;3H:F3XUB# [0P=UJ3=G7YZ@:)Y!^U,1>X.;>MKQ@]55105F1=V:A8OS[M8
M),9^H[;F2)]+\37DUN_M$.:(9,[$6N7-R:YXICY[>Z.Q$<P+C(GB\F_6*"9Z
MV'/7J\H1=V#7;YWAIW7\+Z]^^?_.4(YC>G$^P"')&"$V1^A#-)#Z.O2^LHQ7
MG/<Z(US%[VHD%"CKIF?P'*@_6?_^3A)W7T72(?SZ.N,$^R&"7$$"PN$L*>&S
M8!5U9*Z[%R&+X0$+!G_D2:)**)WW?U7'//O]U-% 1.=>4!RWMLTYIO_%;WT%
M=S>U.07/GXBEL: &P"\*E9@)1O4S))^%2GI(DNA+5*]S!Y1W 2-$G(3OIM%I
M>W2B7(,$__J+^UK,V"V(6&(A)A.!R)K/R\*8<J80NVLZE5%12!\YC )K?^'Y
MNN:(O1_A3?+X6)^'60Z,MXTF%LW9#3X:#3I7\BM-MTW.\'^?8:I@^BY ="LY
M_N]O]G_P/82<"\(S3]BEZ+"*,$O/%!NMD&+I8<;C9_-+@]+#M<V;"VHE-_T+
M>%HCR$$9MM\& ZU#F,)HB.0F;6")79Z$YJKN;=CF*.:CLMA4DR8!3*X+CI,Q
M:V-9!K;S.?GLNYH^PQ=_O^#P>P''DN'P0&E"V4EM;H#)$5,'XGI(\\)=.#X;
M418?:+B"WQM6O!O_,K1X\8(,<+H<*_J@_95/O^!-2N+3Q2W\'9'S/.H) A]G
M,JV=:DE88N7T#JPQA=!ED.Y,%VV7"*,<(2<"FQZ<"<YXGENNYUG^N5:!GOV!
MW_.^O@<4XH:033_.\%/667O-;U*QLW]Y_1(Y;QY+$>N!\X3"%UJ6][5D^8&Q
MU?V,(3D:^L5>$1^XI5TL]_M3 W%U4C.#." 2UXW(@\,0Y&;N%8=^^-P]:E&*
MM2$UZS"FK]][NE,AM-ZG]_!J(FTZB&DSFQRQT)%^QG%0*>S/C:<)B(=P\+ /
MQZV$#&>:_VW\+L6?;L="4/<5<N+C)<[$W[--KE!#7 /@D 2,.@VNK.3XVS?2
M#;K?$G9=>#^/]H@S]&LJ_!5M/QIJ>.)PDZY(X0?J\=NK6DMX*!&W\E+@2H@P
M'*C3ET<UF",PHL%'5+9!%U+X -JTYLN\07>MAX_[9-F4Z8E/F19VG8-)E1^0
MUH%W"VS]DY%C>>\,,CD2X 10[D!?3TJM:/&4<=5)\QR+O,Y\&"#Q(G@UZ<NA
M57M?<E+Y/Z/\ZP8L24AX]C(O_DU<+#F)(('F!G[9AR'F%?HZX3/M9P,KB/NM
M_US!FY6^.C]7OG[I=:X5RH=G:\_ ^Q.N]WY_@@3:FB^6:,\10F6M]!-KN3F"
M12MP:;"1VH=3JMR!]>0I#\4\64!AKOLT/PR5C;OQ<;SZ\$CQF,.C)0H3_WAL
M!^;T-XE]H/U4H ^R:Q#^D-G(G'8Q>A!#$ZSB:2/=07;/%Y:;I^X='[)]8"KL
M55'*H*[V9<EEZIQ,_Y"G>^><O=B;:"CS-T?N()1W8*%_SU]I%&5@@Y!SK51D
M5A->"&TZP;)Z^==OPVYA2)I U$_Y?_/;T=H/%]MD?%=W70W[$_HTP8*4@I!"
M:]%+WEG&]>!X(%W*B*P2>Q39]BP_YM+5?\@U=WW[%>L/JB35/*$C/XJQE!X!
MN)4J6@04>).QV.VY;L8UL&A%U/AOH-HMH$!I=7=XA+E//OT;J-1_#Y07:DCS
M!*Q %'M*Z@P_D=3\BR6%I"+>-3+-T$&@%:!%A?<8I"D;[>U\1+?JNJ $2&_]
M:7Z<T)C8^WVV7?5ZF)?_[<_OR\IO>A8,A'V+9XQ""1?!>4]H-6!)$RAZ,RP)
MY+L_/SOOU83>^-/?9S6LVV696E2&,J2V9[HT&\R3[WB?&A,\T>SWY(1B:'KM
M/F_.?0BZNA&@Y0Z,(RC*/,J* .]1#$ =@ZU\8-V5?J.<PMZKI-7?N7>T9I[Z
M4[7ET5KSY.5$KIN3@LHZ1W<-O-@3L5\]H H"/F[,Y*TXE@R.$0SJ,J$P$ ]Q
ME%'=_1R3Z?:;452L^.>6Y3T=D$*\<^GRJ[9F\2_&OG:*'C7J'7<-@V:?\ETF
MGI1AST*%9<K1QO1/$P!G,=#L>R_B%>UQ:34U;\\(<,][M!TOA,)LNY5XT)6K
M12<;#KCZ]'R[>?3FDH>#N[!4Z'G\2;";(\(>X^S#]/TB--ED,%W1$F &.6VF
MZ3&W^]C:3*?2ES&'.+Y_VEZ\%2!=V5?A&B,H(?+VJY5TNBKA]N<G8FL*' $%
M8&6EZAV40OI)G%&X//8*,A,C!V S(EE.O(4=-6B3J:>M*=OMTRW?'RYP/AON
M?ULB5)E*Y7/&NIBXVL+O(@$(!5B2\!4$;0[ 09VS.6BKF?R6( G.4)H[AE/?
M4"*,X$;?/<;6+FG'!\!-&HC[WX@_/[!YE7DDP#U*$0IF"6;16Y9&A[###KS$
MY,9\0.YNCZ'B<VTTTKK^>&9P%,Z#<%<?ME"$V:%Y>EWKNQ=28=&[]K\)-QJ
MIWCJ,HEV,#2$1SPA[,PM!#D+!S@]-GB'A1M4("7\0F65M<!D]M^+,.V53FY<
MSO8YIE1Q[81%IH >1=/TXK:"$:M&E[[ $2T X^B-# B_DO!?D#*(X!W8W%MJ
M6G*[!=6 )\S2+[>QAF4Z5;"D7]767*K^H+=>@N^\;V2X_E7C ?S&QTR8[AH2
MU UB[3E&(;"DD0SS:>P5%X70K(K0P6O%^"26\^K--(>IIY[G*W6)J$<7'"M.
M/[/PD;M88U,,Q;]4#%1/Z\4NE'!$F\$W*RYS)1PA!:8&ZNMW\DC6SW.=R?V=
MO&,:TR9+YJ[')6ZWZ%Q2"$A%>>Q3#_>@\!C"=??=Y93/0<D'2?C+R$QOMSE,
MOXTB6$8G]'HZM9X&<(DVTF&&CN/*_//Z>%H$+7Q%M'OPP!,5'O(*/RU3F_L]
MP7^6$.:3EQ*GO)_=I '\K,J.94?>MC<0 KVRIS$RKZ[G1/RHOV9KWM#W_()/
M]O[V1D=Q@2G=W]V0JT)FT5>@)SB6>!WM*DO38>J@76=HD1'-2\*.:>]*)>ZY
MOIDJ:WM]XL#V@0GM5L,3JT]^(W77Q-\9&>5]L<^$<;PQ")8UNQ4"'?#0RC%V
M:Z<IIXLDV6Y8=HS>2N2H3M\[ :1PZG<_J(2@\DIGP.NFE)7BX-KRLT9=?AZ!
M#\1;1ETV7%A*;=;.=!)'<(J,2T9PV\BCAOHPZM.=JAO%[+H2"I;WB_FP<HE2
MSI_FGEHID5>L[\??*E87L/2ET]D1D/-E$.0'RQK3'$A9$1N04H2@D0RX0.>^
M#66+B7:=E</R:(TXJ"'[,-]V>.A.7'QUC!$Q<2#5W6WC_E&%F[;&%R UQ9>
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
M2#9=4[6OU,=5]'=9R)ZI.!Z9]R9D#CMGBNL3#\.DP:$-8\YNS*H-[&!^5?L
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
M0RI=*OJA?";X0[2AHN-O);DWA;J/M$KL_>QE=!_<OZ:WLTCLN4X_";C1L8F
MY)<H-,!>Q!0%Z@H2Q:$KI6!I#]6P=[$-V!B8=VP'\BO*RSGR8\8F_5&A\_C@
MFXKY@QJ(@2Z;*[](T*[9J"H<EB<EWL 2[A'&_;ETO5T]O/+PL'3F84%"X,YY
M['\%!U?OC6_ ;A:.VDZD9[9^%N8%;8-COK3DKC&:_CDFS![HAZ3O.,K\F*P*
M\:G$'V,)#:UVQYTX;WO/\DW_ 3'1^9$7A!Y8(P]3!WGBV'DXMDIDN'=Y!OB#
MH*$_P-8M!SI)\[5;9X,WAE,>WQ_(F3O[(PJ+]=ER^\B[',_V:S;OKV2RR?3/
M-8Y'/Q/IZ7G!UGH=3<VCAM9J8%R(+?/O^)4TH:QM.5\-WQYYG.NX0]@,%M+
M:6(F2H@<0ILF,I/?UH(PYE!02,)'HMAU];3?S/Z^&LM3'MFRN#19JU1L8)F'
MU[][@>=/ST6K!] &3_RV>ETF+H^XTP(I#\.KW@;!LBGN$729Y;A"Y+A#!S[=
MIJF"D4=);B/0<<8EW[C1\\UQ3.4H1J&H5MY@L3MNRDO9Y^4FXH'85A[,)X2:
MX*=_HB'9]'YK)"RVKSDFM49F$RSQ1Z.OE 8J-?YLC<B6_[")\&_._W9BX-=[
MTS<78[VDY(N+;2DZ7XF0TG[A*32]256WZ7=9WB 8PM3ZK7V]@;GQSB_[5G0A
M3*&$Q"?,R&#Z\(DV\+E^F0*I$=T]GKQJMW[SB]Z(A*#_W1+OB0/TA6RG (&_
MLCPQ"_@!&.;B\HD4:2M)>G8F#)GFY<#2?'\"%+!^R+;&AS$L,<R([A#'*-3>
M#+UW-G1O_N(0],8Y(\?@=?(-2DC37W](&LO^ /)?O0T>*1BRXKZR-ONR;-ZI
MQ7HPT:']MR+Y^B>J1S_V)89Z=%?0RFIBTISVX'Z#HUI?)[M1P)UO*&#5,6D)
M]=NSFOQGJ,KU,QD(SH8>E]*QDSVTC;SOC5O6Q[E_*Q[YF)<3]V6)XPK=RD)3
MTHP=Z4)$%*G!HL<0PQ.'M:SP5E"'B>IG4A]D]Z SSF%FERWZ/Z0=5OT\U',H
M% G5>WCXMO2'O_]N7[LB?&&T^F^F^;S]F+J,Q^P18'@G.FJ'_!4P+AB<Y_X'
M[:^%HT.%7Q1O+044]/^-,48FDG<:5C?5G%HUU_SV:^CK)B+@Y9T>]H7TQ,/C
MR:<0O'<;MVL/<)\1KZ&244W9W:LFC/6>AYXVI;C!$RSKO*BM>H4CFPB',;6.
MQ'D#J=D^65GI]UF!BF#5YZOY!TO=GN1XJ1S7?/[N\IWMT1.1:?A !DJ ZD[#
M]?<T'_*TH!8W%_MI_QWHT6E[_>!*G.",[;)6SKB\G5:)K@ ##1I90(K*733
MCI:HI%I '][V!6Q@5F8F##%"!)R*)SX.3!B(&JU9U:N42@VDRM2;UI"EGIJ;
M,4DM1I!<$4^,]K]F7[) )?L]MRJ<!O-'A7;M^<QKDPZL]=@_1ML\ RQ*E-I?
M-T:_9M1U<'R9C&.4&TGV3SB?:P<Y;R_\CN0AM4>LO/BES+[ Q'-F8Q%'Z3=C
M=Z[IP8<H@R,%DTS?"Z,:%S2EQ[!.=S)X]V"[+KI&Y,/[T3Y;ZH0;<<3:+&!Y
MVR%9;O$+"Q0@;[J%C>XC3A?UD&3(] >M_9"<!UN Y9H8ZC+-Z%C+O'V"-9G\
M$AOR<G5E=?=KDF.^OL>@?]P\WDC@0,[$0>E8NUW9'QU!K4EHES0\GP0X%FN^
M=UJ#9D >VQ/<@\>4!^:[NCNF[WTR?ILF!=Y1#,P/;#*8G1T.UWR0:KBZ.KXS
M^[^?# VS,2)%Z39I9R 1"*SM>8._F%=3L]2=G1KV37R?FKAF"*'L)3'A8XOP
M3&[TY# &\"%!]VE4(]Y;:Z5-Q&=J)B*2_,H?VM4"ST#><3JY#PTXHJ85V=<^
M=6I QYHGFQPE0<>SX,WMH^76F@TE)]VI4>4Y3Q10K0\*?P0$^&2\.Q%_ES:-
MYDD)\9N,_$^Y/K7>!?++)Q!@#.!S$;C65G'I1V2A17=Z]++@(</>GD\FT]Z>
M]:="GP9'Q<K8GO^ UW5U0>WA]:)_O6YN@'%$&498KF*U2S^D^@9F.,9@V";"
M=T_W)L+Q4"^",$2DA!-#R=11GF@_1VZ&,$6J'X0.C!O>-G3JF_3\A ]C%'&Z
MH^1GE@7#/&;<@\R[-#)^W _X.J>LGA>J_!4+ZJQ!\GD\\3IX@K>Y&>UG6$9L
M)U 'L.@B: +]*4:&1GB/6H_O^Y8W'CD$:,>?&0WQCLX-I40$AN[5NB3O'^L<
MMGAH8PE20=C#ZQ7&5>?EAN+U2- .JJL\S.I]B0,Z?('FU^"ZB1B->'!$"6;$
M9&B7^CP1U(O,AFPXZKS)DBV?(0N6?S<5WYI4'/6$HMU1T10BD2[?<T;PY:K0
MF,&[7N>TUH++=?]\58;!/9&0HB/3E>(X/?P6 \ O_2+;-;=CO',OV.\Y\F=-
M&JSJDQZR?L3P(2POJ+<DSD<M7M)2W.L@=') LM[D@>/[-5"#4/SB.PVX#;60
MD<=5]HXR77OTT_OCN>[+BY,N-H99Y@6XB\3&]^[64B-6KJ5$"C/,#7)P<X+9
M:@"'DW[EELCND8N%'A+^=2W1,9V]-X^@RM%-1I!"-)N?%TQY,P0![G]D>IFJ
M.D#L12:2I&^G_%RUUL79=<E\4RI)X47%T8?]V%4/7VHDMK>HB[W)\GK;8)0_
MQ[<_K"'CQH)@WI0=1]B"B6O=&UN-FV<VEUM9*XU!QQ>'RI8C%'YL>3.F[1&!
MM+8>#Y66OQNR\N]R$>IW-@^9V-I"A,&_X6_NJ]\^P,O6GY:KP45'T,Y!&[_9
MX_# )P-1P$4:J#6\TL2QPI&9B96)Z !'$4AZM DC6'S;>G IV7[DR7C-WB-"
M"=?<#%K>/6X/E8ZK7W/:LN*>O<J70A= <98L764RI=,(KPK2 "R3EOVG1M\5
M+*77"CN6SR[?]+9=U+Z4O[$X%QPXH]$?4;;];)_G>V77."*E!X8,M^'I%I[H
M41:9HBH'*-XE; /G*3SS5Z_';RMC=^)D+^1R[%\WY)I>_M5?97#!W,_5WD4W
M9<85JUST.YA_]?$V##XV9#I,5%I>)G*$"!,EVR>N JH-S$%E6"@?9"$W;#I>
MS,SNL:M>EMGZ_D'>^I,G/G*+YB[_NMJ))X@4%OJ7*]F?Q%& CF\BRA5,MZQ'
M0O*_V7"BCHM;1@''AF39P]Q'5C;T81':CTV$1.,9+-.E-6^V]]GR^^>]5Y,,
M9=1R7QS,9_47FU(8F=N&?NW+12?!.694 1[AB3=^"RN&MI+Y'"^RB4B,V$0H
M/L:B4*G-&S.%*UDA(9*4NF"=[6'8S)(;Z([WV/Q.6(_&_;>52!]%(#81A0(
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
MK))P-+W1_G.'_8W+*75>*8I%H U'A#>KJL)M;,=P?*$P;BU/!;>XA %,.W<
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
M;:L,#JJC!8=-V82NUV_Y4*%[)%.4]_VN4-#G(ZH7.!C(A%O1N0^O-=:IS/M
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
MMJ36NN6B1EXD\9OJ.#K<NF81<OY<M/Q/!OS;RS;S8GC"#P _'>:$B=KP54V
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
M1?!_9\N) 5[-B%T)9-T8_>/LH]F YRSN@==8IC$'$2=!CWE,RR8[^@'1]>P
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
MHD B$63@&^(<T"I#BZ#5D4O!5!IV Z&?[*>&_8U3U)[8J@D:B!M?%D8^Y:?
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
M"X.&(Y^XWD;O#FY"[.;$F/:QT\ZH"ER;AQB5 2-/8EN#A5Y82=!A0P;+K#S
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
MJ 6-CB5!^QT5$WUR;_'$:M^ M/0P='JFD6#5Q]:'DFV7^]C?Z)4;86^U8&I
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
M!HK?3>H58*@C06=$&TJMH9U%N&(B:><LW>TU1I+"'7&"2IO"MWXT=K%',/+
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
M]B!$\C97K5PHY#6B%4@.IO44])*\YG@TE(*T@ =/@HIP'DKDH"Y\1W!\&K/
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
M+VB(!]\YOK8:_%1E7@!%-$<]M1WL6,*S(:1F<2\%KHUKX=C@V@OW#M'[?TB
MGGS^WJHU7!DRPS1VI>RULX!-.[BS?<"ZX/W'NOM$TH1QXZB7J>O+YBOGZ8[W
M%F@GL-*;^KT6UEU08BT#-/T!?X0."X<6#[V<D0N ?AW4/@44PR0&"[W8D]]N
MM670A8;)&T#,+^HM6H4"]<+]Q9TJ_48LESX/=+(Z=;=Q4V6<7E  I:R?"X,H
MHCPA59&YKG-COXH;Z65:^I18SEH?;5-G<%WUI[%?D4D)K;_7+UP#$YGR"[S_
M"1.ZF=5WH,(/J(5E,?G1#<R(T0RD 3?" #4S0,<WJ+!9F  \^SJ]6U5S,;K&
M^N+<J[*JL+)SAT/ONRI]7VE/]9Y]=0CI8FMKCY_4=7+E,E#ND_?5"Y4:205=
M;,,NHUCO)# ]^F'BX,1TOG'[372I 44SH'P>XB>G[=J^LV-9Q'1<6OZYR4[J
M';S;>9RIDQPR+>?),5AWJ^$=)W<UO_:OB=WOIMI-5PN-*'(4G]6;P?%KXOIC
MJM0TE\GQ\RNQ'K7!GDQG(, 4(&%,JL19>1_E28%BR.B]8,KXKR5,/&U*;FZE
MVBB%*_>^STFWA7"]V%L3MS-80GB_J,P!0K,,T"%@5HL@Y&$&E[^:VPRS?2-&
MBPEZ;*GAZD>^CZW28'H=IXO$.*%[I.YW=W_F5OJ$E%269RRV=8IH5_J/8@JA
M1 /4:/?T760;_3 PJ-8P*3[;_"0%7SM4'>@F_>6 PI6%8TIE*36I^L*\DVN_
M":#TRM[O>'#J3%\1@@18XY]"RQ^BUN4"'3L)D&@,)T+Z*^(RB?=:I1^E)V7.
M';H1)H4SI'N0I#4R=:)*A=^%2^DI8:W.#+R/B\R5C'OH;Z# 9RN)<H#[)#0_
M<'3@%COD?"4Z^;G?P\>$<42^U51AK9VFK=P//#F7>/Q3"V0_W*>I[C1B6DQ
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
M083^C!V-Y>HPJE01JV KB&T2=P]]4'^[.DF:=?9U:.@X_Z]AZ@4L/9^7;L<
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
MDP#::J#-L_-JWKW+I]?2;MR\;L0J\>B<M[8[ 0J<-EV3(XV3+8C6U*-)Y ]
M_8R#W33^N;?R6ZW+6/<C#HJXV?<2AHD:\LHK.6)755E3@GS*[/65U]3BQOE8
M3LKNVX 1K^?S'EF"$8WQHSO722'?J\IQ]6!.W=R"T2E%@6OE? >Z+U2R8!##
ME0/^%145JL6C-G;ZW&=;^ 3O7LJ+/+#_J3J(!\0O!4(^9FH.)'0AG@&:8-JQ
M[^ T U0";D0!>E01Z9AM$83#BOJF&L_-4=..W^%=*K]PP9A2J-Z5^A<5C#F@
MI7#X#G><9Y_C-=QF%QN]2S$X5EU\SAIC:VMWR[;9R96SE5NIP%<O=-\Q;M#%
MI]CP/3,XCH:>3C/[)A1L9-E,,1R)NFC)<5<V2!VZMWM3J[L](2U>7>LXL9MB
MWI**CR9]IDV)C/:E(\N=([*[I>@<VC#;9,_#5>65=>5Q[9MLB4(99^2]SXE=
MJV<-8+7^P62@" \\!\(S8$9,8$8Z3"&13[R/''RV4_*UFFS].QS+^J%@#4<=
MBB-"C0%Z'E]?#.!-*CNG8C!0M_FUMU3\3EMCT/Y!*@.TI4>H$VFOL4A_[2LO
M=OW '0\3Q<QK_3'^#- C#;UST:Z!CDEUR8:96\5[V7W6$><G6AO;1^MT%*^[
M<.V\S+EBGB!%O=5R,^K-?5S@>AE>JOPK62T"YXP:@S04YRWA#VH?FUB;EMH@
M%U_>*#.JW"IJU24.K[V>>9JA#QPAWCUNNNOIFCW98DH([/ZJLE7+3TGC;>01
M[<CN?OYFJ:/&'H)<VU3%IT U"JV5F_03LU1+'=[K#4]L:8EI!5*"OVFC0NM8
M7_L^_;RL)JN_: H^BO/^7F>#<NWF;->WBG)\K1-\3AWK][$6M^W$5R?:<1BW
MMNSSZU,W=)E?TQJ#!].O$GM)*/)HU#N4<[#XC2<<-;9Y^@ME&;/HM7@!/GK+
M ^/8+(B878Y/UD^ ZCGAEDTO<C&:Z?3EF@]'I8E%#'AN-3$%D23M-CR"JBRP
MY@Q6@WX>'&'/3IA=4:.;D?2IRN@U*0%J,++IR;3$QJZC=#DB^&SJ<&6O_AXN
MM;#T"0.D?@=U79,W]R[NYVF4'Y1^B<0+>$!BF0JD=7C5AC#-:RIW@\D+M'AD
MF%JS&,@0$( 58]$MV@Q0 K</.DOS=U%D\&&%4EN,YF.HH9MV;LS2BR0Z"R_]
M*HF%<AMH@ ![-'3=&6X:7OH*'Q+N+0.MB*'JT.3(1@!.7)N":A WQ!+$:^LB
M82/4ZQ4_\%TQT+[Z[?LH&BMJKEA+G3XA?!]%VJ9H(LQ"H0&=Q*@8_'45%9P/
M+YMNO!\Q@L J2*'[A,V+:)>O/S:G_R T5SB!W[/M65S>1K1Y.:"FP;02+4FF
M"5W2/M;</!Q"A1V\R%HGENJZM-EO1^<\21263_GB-P*B+#APSMW7CMCQVSAF
MMLUSSL[I)Y781U/BN!CKAIO?0A'MF-RH=SJ"SGF9<DZW>?BESTGI#TG7JH28
M'ME2&48T@XV&W^77\HJ95!OMPG5IRTUZ'"PK/#=];L*]YYK@?&A#-M0^$F8Q
MZ\< *7T)8( >#@K0UW#?+Z9Y,4#0.TQPFV> .GB%H^B<^R@J/PZ:BHUSHX*8
MK:.2KX2<1)46-+$"S[*B8]4<\Q@@[81E<[A.0P"K,EVP/_59?9!,%U3)T@5P
M)Q)F#+N)3!7UH%4>;/A\\9<MLC%FF-IT!T^KS\/M7."Y/AK\!35]CODIHXLD
MY#BX=+7=1ON46P8[L/W">C>Y7& ME'CJ+K^V%/S^/5]<4T44=:ZHPB<4QJ$H
MJ,4 <2)4Y[CW[_%_I;M;GJ:ET?=-G#&@LP.7ZS5.4E4\'NVV&B7%"HPW0BG^
MS)<<?VNGZG!GQX@ZN@@6Q=W'@MR@[%JZA0![RY[44*%X*FGI8RNL/.WJ>V+D
M\HNYXIOUI-BH)5CR0P/)/N62[S]6FTJ5VB2W)8>7AM?8**>HDB37>MR1)2AO
M'2_<TW089A30YZT\R3-U$+'5%!GY/92M?;4[PWI!_G4;=\RQXI*J8NZ"LY?%
M+O-3B[>8O=<&6O$ -F:?FM9EGYHZ43/!9*+-Y,(VE!PXS3=[N*[<:'QLHFBH
M%AL<L/)Y[-9<G-#Q6ZGY9]AL3#@DT@_$):K/)>M&2LK_N&1I%F?P$X1=G _Z
MB;#9$R$&D;\!,[/XL#&QX5"<"_@P/)%"N7BR9F@=2R@IK4I3FF^3O3:]P398
M&OWH]5B%MQ]Z?*=Y+L\][3 QN)3);HUR'+*'@SABF/VA9+'QO<X,=)4V ]OG
M01+<D-_ZME,L7FPLI]S'].%^<\Y4N3KLEKG$S.JL4-R,<_+LRM>J!PO/[=TS
M%2U_?$UGLRQ;3_&#_$1.AM;?S9LY4Z/KCD]PD-/K&EN.2R(@=IF:?Y%DW@R#
M-F/'6 BGBT1H7D416L+&-6GI&<]5]2MT/0 GL@$M34O)ESQ#T18S^?F^;]*S
M4@'1IY9_\'W2YO[:JDCRF0>NW.8Y>:9<PO%VAH7+3 ^U/V\1TK0<:YG4/-E_
M,W@^$%IG[7H^/<64VR8&V@CCUGOOK7G9R>>8#'1:!I2/)\8M,Z%>QI$!PAO9
M';/N,\_FO'$CQ$ AKE=L65:VS<V) 6HPRF> >M*9KC%8 ?SG_[>,;F4ZD21K
MIC:YLD/?LX7.2#$YW\\;3 I<EU@A\X$;!1CXH?:.05 ;F1ET/@<8/8P+3UGR
MO!L)^K_VQA_$HJ\Y8TM]^KSAZZX'%O04H[^P5IHV5%7]*80/Z$_EH_^U[,+?
MDSC_6K[;G\H>^?B4"?+_<^<_<V>I@E^G+L+<[W&=R%?7(+?!#]S5;_8'J@P.
M_:O650:A_DXGOG$ 2I6LPM$X!7 [?;_W+RIB&: K81NTK?)B7=#?-X#_LGL?
M,$"B=<>7,**(BX<2LV=B3$T&MY:0O1_@X?6#WF7CST+$! \;SAWJ2!7U/W%D
M^9CU:>B^T!_$^ ;"AVP3CT[HBEY:;J%YJ;&RLVV,O"Y3B-? =!KKCB![I]3[
M$ 8"WS!C+(T*GK."!&D3W(L"_SVJQ*>>19#!LU]Z%T(NB>;M=?_KFPZ9MJ!"
MZKB ^1F)&;2 79OHJ[9%]R>9^?>_]J^S3R9++Q=PB#Y6KR_BFH&VX(01%TGO
M<:L[%"-[O:H?&3YA5-O\DN$F)9[]\7T77G^309*T,XVH=0+@Z)D?U\]JI$[\
M;,OI*]JI'GOOVA=\TMPCY8)%)91-<_"!"K^H3HWXZQ2J!$2[;\SN8L V]-^S
M5\KY@?^";NF!?NFW9K)XN2K$A]OA2N&1 ];.#93DI7RU%NBF/+.%AUDN\<O7
MZ.=EIEZKXZNY?>J&X+EITE#FGY[7]X=IX?]V7/O_YXT+V&VC3GV;OB&F!?0[
M+[:[G%C?-;UN;72+_F]6_/[UX-<_F$2Q3:@0%+>VPN0M&.(*L63YJ+MOI]CS
M\'6W:".EZ._LB2NO6F3V%M<Y%U$S:*@K=$\:M6M=PP#-#BZ]L0Y]^P#+M3"2
M]*+UMMM@3I]]?^;!]@[G0-UJQ8B,L*[S]P]!7,.;3(Y,]:9^Q$ZU?4)@*0)4
M+L":Y#KCF$$P?2%^G-Y3&]J<G/#&/+@*7E%_K-KINMXR#SOBWL[IVKL;Y'.T
M9.R:<W$-X%:BH^PE6EQ7"-?)%3Q!IZ3SM__UKL.O9XAJK'W)J>=^:,8%&-_(
M2O9TP2@N]!-$Z9]$I:/R^GNS;_I[;G#*?*S[M/GW0^_^(=4YT/)QTZE5^LV3
M3Q8):@W&ML-Z0^L3;3GN.QX-?9LZ0Y?:#[[L1ISA#FQ(C=_FY_\U8=0P"A9P
M[F9+OFD>MEYE"*FQ'836K_;;BMZBX@Z^NT&^]6(2>6;G.K7]]VQ$ 'W0RK9&
MT[+UV>J@M]0FH9H^5J$4OQ)#^=8*]:^+I[WYR[,;+CX9)D":.VV';8;61 VR
ME\B1+7U=E_NN_-B7T'H_QU*+VLH:S/_G@3:B_<5I-,L#LI/H?0G-_JB:X((W
M&<<KW/64C(M2ARLHR_ 1Q:/M9RT'+5*3Q]]E);5) 1,R'R-I\+W;_\R:C@(4
M"U.MG(+MT5*8X%\8^6<2,?)/+@_YI];U_#$MU,DCI(CZ+9@#$W!P:_*M+^4I
MB^'W+KB4OPD>_8C,61G9F3M\^<16F;6V'%=XZYWLB*;+)D>-#14<E'>,C]Q\
MKUDV<;HH+>9\ UV4:DO"?<,(C"'8:9_*=?Q\_.G6H36!)\:/9V6LCT_$-P6
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
MSSO\ZC;NU^V>5TE6J&O];QLC_^J!Y1XTOA"^>_$WFB+Y.X,&=?WM>N0 PLR
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
M]O(;C>-%EWSZN2.R*Y_;SP6$KBAH$<XMY2OO=*7I*5:\RQT]V?E\2;[7FU]
M=U&ST;D.Y'D-$QE+:":].H"X%QX%7'(7E5$?Z5X/W>^HY^_KD:_\EW<3Y1,#
M]6^3"ACOEH^O*7-TZOW-]< I_:BQFWI\NCKU<C??.=>.O!W5OWT[X8QPK6/
M27'^?-T((F)]^_'7\"=W=>)/.SP=^'(QTTBYIHVVH:,J-X)J=X$5]02;\O"X
M7*^Y.JJ2V_#G^P[('2\<2+",0.2>6[%YE?B6DP''NIRA_/:_C"P49;9[_^F/
M @_3RNEG4?UHX'K=(\G#X /26:1Z+<)K;H5<0< F&?#.A-Y7\U6;]UV6:GW\
M^=@U2_=VEB(=E!&3Z?<OHEVT.GEP@L*%&L8UR:=IP!(QPC#O#+;-=ES"[T?3
M-9I69GUVV=9*5<QO7EO)9JI;"CL^:SD[N&KZ_4443 YUC-Z+E4#[6X-2T&T=
M"I2J1#)H6X&Q^L %0\-AGE:VCD]&[M: #RPZ6]ZVI"\,'_8YZ:-R.WI0H,A.
ML5DK^I<JE3^$C)G !D!!J9=)>-6H/9M-+&\7;%T2"N0]ZA3Q5RO8T'RFHFQ:
M[B\+?RCCE>DJ%G]+$'JB-4=\;F.TO+PFKMI.2VNBC_EL=7 ?'XOY.!>+S3G(
MH2B6D'RA'NM85R$2N83DW ?GT#];@2BUM\JO2U*Z+X8(VK&7(CH_NB ;*Q7\
M\:$-ZX.M(<!KC'R75H"2I(\Y1:ZWM0+0Z%^8HSWWJJ)/.SH.!$#97AH[4OW?
M_M<X Z%X#/6X-SYH^W8Q@\P(T.404T-V[9DDNPK/KSZN\EKCX7=O=HUEN]\B
MU#\G"RR@^QYC/7#["CC^ PC0 J/Z=<71\NE<W]%,^BP1!&Y[IQBZ9=TQG)^B
M9F? ZRK]\MY;>Q#\7/$XVQ ,6%5=T*8G:P_ J,H9?Y=-Z>)QE),'D E3L.(
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
M4MSO=?'-=BDC_"^#Q>0/N%WE=WWO0\5R5LT4!YB5='4_VJSJL/'0C_J1)#.
M,3I'!0&])$^0;/1T)XX]PO%1M8FJ\;KTIYN/'CPU<DN:BF_-7;93%M:3-9^3
MBE)@^M607%7B9UV]GONP,S?CSEQ8_<=QB[U2I9(6S-WG* &___5QLY5.-,7H
M[W4"*QG<2#4PC132MZB=I.\9289Q(M V,V[I%+L"YIS6*(R:S>'G#3%5Z>:U
M@U@--+X6SD676,<"=M;S,D2[%+R+]%B_;MW J!>WLW/3E%OZCWW-J1JRTN3K
MA"<JXT)W]<PNV["M'T"2.^T)Z,.@'X-1HK1(<O$9I1MV62Y^#VLK$;GDV6#I
MW'#/7"-!C1O,N6X0)MFYQ_11#'#->EZ1W$N*V^O;6<@@-P&PM- ONB=S-TTG
M-(=7VW>?$,K-D[B5;CWF2A0Q)60/C[E0C.FC!Q#N X@?C',#?K3KK&]2%<)I
MJE]K\64C(>5M?Z[3>JNCJ)CSVZ6D6\ZQ+#VI7UUJ,AW4!&T!*%5 D2P#FE2@
M>TQ@;M:B]&$,EP:<C6H/3SL<Z?2S5_>F'7<(?D388*):K.3P*T2N.C\GG(Z^
M?(N^Q\ST"S,DJ0G4]<%9_*&\G:$U)B_7\UGS[E;ZZZ8-(CN<'61\/7/><"R^
MJAZ"/.?</8!D_)>>Q17D&T!00F<XQ8(^:2 ":&&('1YO@>^(HJV%+W#CX;HV
M98^KL \2VE]9>[L-)N_>/(!0^57I*K!'5%Z*U")R%^E.&GV946O$H/O)81/P
M:[,/TB=&O7W(LD5,WWG3[[%84^RQU.,[9 \ EXIE*'[I- _+_/SW18\P)W+;
MBK]#G>NW3PJ77A8$B;_^0<(LOVV*,P\_F4,6#)-EFJ,+46U!?U)KMRA\ !Y+
M/S^I;TVHN3-_TU>4'/O*+-3W@:3Y%_'ZK)H8SN>2[%+X&$7U?FB3:C>6$PD?
MAWGO\")O K\KTI&V_+M@1"_?]WJT+]R$2U6CH;P+V2<Z)%9_3ROM[2=S 48U
M+!8-X @\45C\<_32 83)0&$#=0*82S.0WNPZ.:51*$W];$(XI_+26L8X@/I>
MLY.#(X==.->1_7.Y"YBQN,)@8W6LZ)[WT/JYE,X3#$R[-$V]B,<F\OG/[8<5
M\!_W4SN9=\I1_KZ-9[!G]K< S-.?HQ!4GGT^F$T>H#W5%P"6!F#"U%!2X\5Q
M_5/X=Z@U8Y)\8N>%X "E[= C#WA'[\@]E_XP<FH7&^8@PF3*$>HIBFG"#+X3
M(P?3,%1/TII+0]8/7*^K6,?TP"/8IJIG\DF?FE*F;-D&YB3(:N,K"?\A%,,=
M>W2Z1-X#L02V!*QO(=,54E$E< "Y]&[ZMY6\0T/ZYN5WI#LO-T->;5HS1V>N
M"?'!A9]%[P[\ZO=,O'5H'=MP -G&4J11B_F:]'>44Z@)5W[2JNCU*LG719(S
M6;[5*=[>A4)\QF+^@4K%6E,QP?[P%?CV>8")?)_^,67%?L!%WK!MMNC&1!/E
M6<H7W!_+=EONSMOE.>[71!:N/V(6E.*%LZANQ0(4 H8J7H#'0%%#RQQ35#E?
MGFX7ZZO@SFU"BD;3F[9T(M$R4'4L64I&Z+@U]%DJ:^@;7&Q3_3M&RBL&$UZC
M9C" ?=!2+#F5]#'^!SJAZ-24@2 HX;GJ*^KY*._%KG#(GEW$JVL/?J,#((?V
M1?"J4%"(6!&K@4O$<E'=R\%8PUEENS6+V2;G]1^!02?N9)DH>515_F:>?8>Z
MB^Z1[9+Q@S,2.KX2VW( V6+Q##9[1#V[4J,Z2#\V]82^:97MW$RQ*^6RG#R7
M[RN=Z7[S=..ENWF:^WK_ZP^#32(C/5\Z6E7ZV6<Z+RWU3WZ^:2UEG,3O^>PI
M4 RQD(]BL71T_:?9F<:A3,!_!=N3L2C3FXW8P9L-</,,[(N+%@X6[8\EA K_
MV+;ZR-WB,.OPWNST9[ZRU+W:(^1\!C])1?5BZBL2FW;8Z-.89GA,)V_5]PF.
M:HW"$"?S'V6/ZJ^>3?2<E.Z)RHPRNIX*^*\>0$#-OLMO)F#XO)_KBRX-%_Q]
M20\&@I<N"O<.B<)S;C"]@1R"W^ !Y3.VT%4W$6O]4,$N5H3MD"BV_[S=CY\#
M^WNI2%A@1&@XTU>I1K5+J=>6%^=-@OC]C%X/=(@M+$2=#^IQU0:\^S$<OLL&
MX /B%VW7\>8(X_;)YD+1?;T"YV%Q3\]DA_<6Q](OGI*:16*%NL1[2+J;^-7E
MDR8D@8SX;'C7&Q_9(X$O.R<-\_@L6S^D:F1>?EW=4_#^<93162@7NJ<)Q]X\
M]@CZ)BBEB:9]K0M#F*TAC0W8,RC3M?VPQQ6/NB;$!=/CVG:_YAYY-OWKKO93
M-=GW9/1"'2$AY@#B7ZBW8CW$D[1O3:Y(Z#H-+C1)J(U^]4S_V;O(7'.;I1&?
MH37[[<=YN_62/W*QM@K=58\-]:#1&, 6!LKCMM5);IMX[VZ>)9YN2152Z(L/
MHR4^1=+QOFL.NQX^9^X&\Q]VZ+\)44-\>X?Y)WD85H6AS#KP9,80%E3<V:H!
MF/!K@]#XO^P*J!B<W%S\\BUV=7%4KK#SU@5">2X+[\C=D+NM@M5_TA5JSW&?
M+L.^@#7;]ZDFP 6QWG5"H!DQ(?I^QK&-#,+2AD%/C6^]BY&LX&2TE 5_%/YL
MWU'3*]R0.U0I\#U018X"PV^3@O!Y_=R* P;",ZZA4YJTHZ0[RBK49ZLQ%_FK
M<C*-Z\T[GCP.6^73J=1'D^R[X4?*QV^1/KTCG]*W)@IKG&>5:\[U[L0^\[@?
M9R?G9F!>'N9V6-ITZ^/KLHPT&'X!]^?"6C>:PNH/WX^<]E_HO"(+?F$8272\
M4YTI8=* #10-?+B5\SFVWPE7Z.YF1@GVG5VL_;K9>CUQE54$TD;RIG-F,J!A
M'>0E9:*]QU+1+0R@Y@:'1\1MUW5;DXJ3G1W%#R<%6P:VN+%+7;)YW/U+QH#$
M#'SNS=.:4LH<+BG-%!;PE)&*T4T&&\D]C% )_-L;!"6)[M'HD@=AQ)V>H",W
M-YR"HD(CW?N+=&=^183-WFG6:,D-#WT6="F\!OGS&UP]S+*E6^MQS@SC46$#
M?D;M&L$0*1N4 2K(!<U%F_UGD>>3E9VOS);^E$W^Y)6Y75UA)N'6E"4LJ@55
MS;V>KL"TC(*BQK&'Z4K@S@","R5$O0GL)38S!CG?A%*=;'*Q4WQVWU=%'W=2
M+U/$X'K:ZJ4P+6'F]TPRY]-0_HR72G1RX.OB&< (!16"8NB2".LKX[\BK(40
MO#4:[TZ^5][&J_G:3W8-KQRR5_G1#]%Q\__UCR\).+<#I?^51P!<Z8-S=<DP
MLBPYC6@M H_,Z"V"3FLZE';-O.R1"\3+?WP"J5 J?KV2I?B"9)],5<7#N>'@
MV."R[)N)7Y&G)RUKK&_,J/(M+WYBOC:FU#!L-)A<G/71$.*13\4SE-V&5 <?
MO&#,P!%V*R/)237Z?@KLV'>LD.93S< [4U;)>AWK<U=:YQLOO9:TZ3!TZ=^6
M. M_0)^ -:+[T(L9O>WV?76I3FY^RX)-).Z6RFK0[<=9N=QVY5G3^-D?6D0'
M07Q/L+N.O;^''5?<DZA[L$9O*G\VF9/VIO-V)$ AN]-J]'E67!Y<22IOGVBR
MNJ>CTEE^SO>:]$5+85DF:=:K;SUVU3<-SI'JXE"BH*(#F+92XZ>L;3RNT9%F
MZ3A]1_WKXF*/F*523=25&1.O<\QX^V]#__OLCFT3#2K J3?1'* ,^4+3GU5P
M:*7 "GKST=^%E>T77>75.Q*E^9\FMBSTV:9EQ%<Y(>L&,(;FC-!NF 7[GBY)
MTMJV/,4<].Y>1"=O9ZWT51(C&KU#(X]+=ZTV9QH?0!3NXYZ('8%0+ 8>:O<R
MF!R:&Z4%,EF"50!ZJ-TLB:I9LW0D3<9U/)3]1XW*RGNQTERU&V\NV,;V,(L?
M,PEGVW9ED$EK[$)V'TJ-QBBC U[I"[F[5_EF+O@OKJ75N+V+*#A7<CH_L/->
M5<<@^B%Q4N#$:K[]O.,\AN4 $AML($8] 0A1CV=0T'CO 0G5?@-14D6_RX/^
M1:_L,GA!8J<\R_3[59\TS+.3K=$GU$J8^$9.B#VI>LLVORQ%*T&Q@+9$>C0%
MAD@AKB74Z(<0GU;D]2T?R[N10KFTKW [O#Q'^><WX=ES7U(RFP('[QG^6PGA
MGQ$//]HI<@!ADT4-N:H #-1+4[0E\<30I2SJX!N+ 396KX;S;Y9[%$Y<R.G)
MM7[6@'(?T]P;VI8GU9G2GL.\#R BR/"Y@+*.5B O_L?OL[=Y]D<6W)+R%7VZ
M5]\K14L;ZBA]9W."C)#DMU,H9Q"*A-9DU%EP<\4KH1AAV_.0]BF):,V+B,'/
M.RY^%_PAD__9\IQ)3J[M5]36&S765+[O'Q11(P>0OTPCB>+G,[>_MU5.,6&D
MT<>^UZH?OD9$V%F\;% N++I_T^)88$U30]32%8Z>.EU0FP$,WT!O^5Z>1Y*2
MM)?WN?4&'U;TT4[OV<YH%+I]T*M1VQMH+ZCY5%JCS\=J]ORF!=+-BVU$:(HW
M]T3"QQ&*%-4 9$R-[20H/X2KWXNY?P#A<+H("-E.H_3F$6ZCRDHJ[F_?9BU9
M_B0FL@_T3PU]<S]4&*"-WU8R-/A JX#A7Z#?C&VYU_IV"=$JL7X9+"#T^@SQ
M9Q--U67VFE[E[<_VGW9-7=P^L_\49OZ0^3S6M10/ET1 B0FQ33N):&[D[?_*
MPC;_LC#P1XWJB=LY6:?<Y61MYRNE.\MA^")<@U9C%6)E "UHP HZ#^FN]9^_
M0EP;>+CVEU6@0Q[<Z?O0VH!3.VOI'^&9SKYR4X$=+O9EH8M1N,3Z,RI<#!O,
M'9TD*"D^K>H)WGY-'T<I=8!0@:]]EAF<<A^<G4;$=,;RE!Y;2VTMI<8:>)FS
MK4?^@V-=O'"XHV^NK9]3SJH=F4S2:!4Z/LPK;2+BY:6O .&SP!^Z.=13EWX
M887Y9'!:K6"CH?P:,*'U8+\'HA&;!A+3[AW-VF>T%MP=W>7$JX(O9:DO-U-]
M\4',5'/@ZU!LES0"=FFN*>4=UF^RN<9 K\JWY8TGCO_UA_E;[,/X*/^?.W3N
MX"DE#6M0CKJOE1?PV&D1Z4*ZJ34^>*9^,._K#<,M",2&;1;:-$?E=R?ST]+T
M32H0,'(9[355 )\&MTNTNEVVF3]I%BHKEYR4>E$E4Y"+.?4P7YEWK&L5ODX,
M5"=:/VK:@2+U2'<*ZGR<WKUP\77ZE!8I,5JS>E2M84#)HRS1[,23Q_[OV:C'
MA\BPF5I&[/&DP)GT3ZVDP8F250_"B;2(00-HR[OVSNC=QX[/Y$Q/!04&2+<F
M:YZXX?8E;6L+=Y:!4O\[= Q"*8*GX([> @M#@7M!QZ7!Y*$^BSJ<@P8?2\N4
MJZ^499+<TE=34?.7-^QNC:X.&YX0SC@#,J*=19V162+I4S!!E2Y6)(3VAGJ(
MN"/DI%2]*)A$5/ J"LTX:1K+)G3(4"[5I)M)/MT_G99/%T:HDMNFNC2HP2"F
MC%'7(R*(=6D%%Z:4ENT<=O25BR_-'G,V8/\9>.?.RLR=9&B6@Z9:*F<;VU>>
M)==-.D<I:8?.2:$H(B&@#BF!@'V$4D">(C6UDUO#B_]H-5IX!PD?0_AZ1AO?
M^WSS<^! E8%[LF(ZTZ5*!;;OL$3]B\4(:^,.DG9RZ,AY=:LWK;X[S=Q&7T_$
M+,N)^,IF#E^WT9%]S.*._-<96;7JXM]MA+H4>.-<"E6&=+&[W2SQ_A"P_0MS
M:[9IOK:$[XBOX6/99,-@84*"C#QKUXW_V':BF*>!^B_RNI-@(\,*Y@PKW$>R
M@\/8QK5!V)(E82Z>ZN&9?NJ7A'/_N(ER=?HAX[=R+4MGF8_)*9C?>LB;CY+G
M0]YA/)3FXRH2W;<!9:)R:[T+N_3C E$YZ%-]O0SMK<9FH/V]WTNOC>\Q<?U)
MV(YEX""CE(\)H^HS_OHBK0'T "YF6;!ML@D'^;X_E*0?6K5.WJ[^XN<;J+2[
MJ;;\Y*?3G[6/75Y;>8%1@2<4F+8BO?N7Q8"U!)5.=R+TV/R\KZ"6=7C$ZV67
M,KM9\GK<LG=.XO6TZX(JYA"N[.1=U85&.J<>A1TU[WIFN@N*^@AM3HC1#ZKU
M/=,TMV@:6VNFW-M;+?#R^K":L? K-2D/ECS,4^]A-#X'VC"6U(P!9;#=F"AX
M"RYA;;:NFBI7\6730'(N1:WIE)Z+@Z.K,6Y3D-WJM0;?X;96SN^&IU$1I"NM
MC!D2:!5H/!X=/4G_"!.C2ZXOZX":!&M>JY4+A&=N,4$"[T/]6LA.&GS&+Q1;
M6U*7/U\N>3HDQ@SY2BWFF5[\)R^%,CC!,'Q&LXOZWY:VIY"(0&N;^,\W$0\_
ML.MO&/W):JGP$1 Z[T!FRM]7)-\%X_ P'OJ *Q-86 N.638 7S/ZSJO0]US;
ML>EZ>A$.6](/"K_)NPV^YE"Z F'37 37"&:]N.3#TTA+T+\8D>BP0SDV=]]'
MA3Z&O4,K\FL97;(_-QB6^HO_BS8!VILFU+,'X]% QQM(-@$T@ON#DB6?-V;>
M.@%W5#F+33]-/$\//J_ ]#-KCG[D[Z& I[1* PW? XBP@1YJ"<4^B>0%?KI$
MU,4O<TS7ROUL5KXF0:I+#%KA+2P_A*YWEG0_>L=3,N2B1-VXZSF006@VZ9Q,
MD10#4!$_,_IU)Q890G3.2-1-&]U.62HX@!Q%W/LJV_R6MTO$[>W,ZH1'JCG_
M>];=Z_=*EP\@A.P#B"=F7ZLN@5$LF_[;[OEWC0P(XGC??EI+?3&H:-[0T3AI
M:]G8_G>QTESI:JO<:[57BIR/V5.1Q:G1AN(/!C%+;&1'VG/]0$)0 AS:!0-M
M>_+'THH(^J<\B2Y>BNJ5&I+PI_5-92H7<L_&F%J^$I$7(/7#&\=ZX<DX (YA
MI<^A&]1\58,(JG%.7S!#:#Z$PV" YI&E4O&'+JF[/92VNF'?6@D+-5FMV0%
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
M$CNO L=['N:6A)_(^K%_ .F=S;;2*ZK^0<IU_V%U_Y^B,SY,W5C\"QQ@J[J
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
MWP64<%:\"JIIO,,<IZ;UQQ:+\W7I=K!@2'G.Y1LO! H@<@*3_U$&V_<>QQ5
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
MUA'Y &.ZP2<-:56@NV_G8 KGC(L1A6^XCG5 5%$(A=IC^L>3X,D27ND>#\7
M#2*O-];E?WHHX:XE^J@T)VF^Y)@)8["7F,0W ^@<C:U-'&4Z#^8VA+5C'L8K
M :7DO(W4U5H5E(R*O?E1_6M7FFIKFW-L=[;U=.?,^O9S&[L3+[^SRV:@ 4T\
M5WZ0H0CZ73>!:9^1A*]KZ*Q$==W$X*9/,'/35<A>>4NYE"NMS'P,_,0MX2;;
M5ZZ_I ,"/+Z([>BE1>+KUKC2$^P8X"_3GN:>BE#B3W@%W-^$!*Y-S?;K<Z59
MYJ>8%3G-X=SMLSI:M<VU42D)Z]\\W&]=SSR[>+[+V>VX '+Y*1A]&;R*]NW\
MK[-'68_9V<P),JK&L1NU_5ZV+P![!6Q"SH_3:B;.5\&7+S6-K%RJLY/V]$\_
M_&)-/^% /@+)4NSBV;-W;?D;9H(ONL2 I@PW=!$IH*P_/8:%L810+/V>\3K:
MDQVYD@;QNT<4;S<]KRQ0$=,(%UVN$3I2QB(,0Z=0['#P!S(6MZ_-(5>&.=:
M1!]RY^TV*0:Y Z'$3$A"/*57'@@Z^;>A0>K#=8,J_\G,M<E8I=3^71G'/MV9
MZ","&GW=<,I]OE@3"!U3Q#E<"UW2?@Z9:G$>ZWB'=78\JM&9BK*+J1VC=5\-
M1'RZ5DVQOI96=_&!S?=+3X:$'0&X2"=1 @MB?NQ>KL,P;L>2KR83BQ!D=LL
MMP&_GG]IV3MF.[+TR=9'3<KW]>N$-Q[>?MCP6;O2+7P#NXUC"^BRC7FY"!,
MQ@X;YQMAX<S':?&;D#Y8?)Z0,CK\DYG##FOTC="_G-MNHTV-(5>ELLRL?$Z^
MS$+:\DKPEU'32VR0)\>ZA,#>NO<ZIN"EB*U1#'W5B5,3",W>AM?",ZV'._>W
MAAQ2P(UJ/W(=LU7_VGLB&OMRLF%Y@X/%F)"I@D:H>%\$$*E0S21U;=P52<<>
M>SV#2H/WU&>@_624OMN>R7$6J9'5?5*RWC^5Y/KDH90-7W2!E<@6YKVZQM?
M8L#>\5CK)C042.#8\V> D+)._<J^6#0]-I#RU?/]?*C:(\C2;F3C+YE;*B8?
M%0>0M)]$Y24O)%=6W0ZX="E*;Q>^FY!:L(O9]T!5^X!#RH#1]'[UAQ)3O5#B
MV3^_'9=#.<(_"<+($,=4:H--MS=LQX_9@\#'/.OVEW3';0YZE*OYDG$&!2$7
M!B1;9F<<-=(TLI7V0H3/%:U%@G$U]BN?W'Y@*Z\)WVF*O<E$TI^@ (??FY :
M3$K'E6<&*UY=3A;G8K_JGHGU$)(1?$J6C0X4&B31YF>0/4,@/$FU&R]N0B17
MBM)HH[<OW9+,HI44Y'U*I$"$7HD*K:Z\-8HB<&5P(*13F?:@]<SBA>TD@@II
MA 09J$;J=A^#F0N[\4HW.EM6)0M"W@"&<YN0>%1#PS*^&"CO1B@UC+6:L*!=
MCD$,PHZ?-Z2_M5;7M;\LGK&:#)Q/0"$H'M,[,E1>=\JO;T*62SD"^$YK/.VI
MV;W!#O1DRQR*3'@ NI^+4\%:%TX*Z$,4E@;S9=.#=MG4-(Q57&KT+C-I:93I
MJ)#8+?V9!FW3:(CUE FZ> J3=*A%1U-,24/UZV[W[]I<&7.^2RFH+.0V(6_7
M[N-_9[';YX!P9L/<_.=&JA(^$*:(B?)D6:<3+'SEF;F)"HS!D\.SUF1S!WB^
MT9>/3Z3SZ].L;BK85HYB>_'9I*L9@#:2*Q? 1O$:<0@^154:R&:Z.^7.C;^^
M%%X&1)VO^_)^1*;_JCUFKN!8>]#4(:F/]V^>.W[VD< @.-F4N[FQUTBT%)SA
M.Y9]AY'$FB(&!]VAU_AUHHMOJF3SDWHE?9G%W5N^0IS\/MCCNYV7C),'5T?)
M(&_4>YBO\.,F4!)ZRB%!I;%V4GC@]$?<!;.FRW<O?F^/8MEP90@,D95(CAW&
MDIT.FD,N;F@7.N,V-=$K@YT;C8!B#,GP8HS?6=*VT+96CG5/][]GY.#,[T=N
MILJOLPW+PZG,<Z@I(IO*J[C^&R1U.UIO,9=L 'M>W95;+"'ROWZ264;J[Q]%
M=MHCF@5RTP%!B%W[3^I5[KO1K=XO"\%Y P'.0!"X6EO[]L48;_;:&$+^IQEZ
MV8%%9?A\Y0OG.HUI^,#)LP>BKL3"Y"5VZT6,3Z@0)5]G:WB^__7BQ&X=Y"W^
M@2"DI(4+L[S[KF+/C]KI#)&?"%C+_>[%\M/E 5KY&E(-^ZYJ"$C'M3-L5>R^
MMT;RQ1TYNT@@((H" ^P3;YD3\<YX^1_E5RXAVC2Z1D\VGMLE,6EU2.&._KS'
M[!%5C]#&RXH'9LTY9OP.4L-"W":$EEMP%!PM&C="J'6,;;UD7,@L]61&QB+V
M>IR(DEQY%NEVF.)5_.VZZ-.+GL=E"LN7D^3*C7VC$3:L!JYL U\<Y"7;U$CC
MB,/@PJKS]SNP$FD6BK+!>6O+?^>NAJ1\.KPC]\GDPQ./XK]&=@Q_[ O$7#^=
MA;<%^P6#2@.J*P/0 :T^E.Y(Z:.+)&H-+8?/%^C;DR?T*K4>EUGJ:GYJ.1RM
M(7C<TU\@LK#\L7./S=X7@"%?0@PD=?1[I"X5>!))"'OSC==BUX=I!O5!Y1\?
M@]\KQU,B;Q:>V--M8K@)D=W6%K.GB1+-:$9.XMGV6_>&;WO"BZ_ 29Z8&^&#
M$?[YO4J W'N74@$+:8R(*E_ZZVKGX6)>_T+;/S E1[<Q&EN]E18.Y+H.D0()
MT^7LF_69)/H>)GK%H?RG*NR^J;U3F<,-_QAD<PK[O+D-I/J8'7&$ A3R1>]Q
MX "5!JIFZ@-\[0(X3SMF F<->87M>DLH&:-CLDXI TTC>O#2JZ/+5WU?[SN1
MI"REO(O^,/I<,L?WO__F[O]%FR'7A8Z2PE#)&[[RK.LIZ+*@B6JEU8K5PAU9
M\-%JD8<V:M&G1(FYK: *V/8,"*D,SD)AA!ANI2]/J"MPY&>R9HOPRX7HM&H^
MRV\U9.$_CKW*P=F=@ KG(D"BH[NH*=2INU*Y/ );!;8LB<#K?AQ=*<$7A$1&
M?,PR#^M3[NB N&^IO2DD[07R-PJ__F6$]%<!%$U[?GN5,U1=$WJ_[R2?3[,]
M=2/LL<>G4T%VVCHN#N@WSL&\#:0@ ZF,$4P(0@ED=+D]^W'V]K13/%'L: LR
M1-EKR7[ZD_IO%QHHIVQHI>0]EV$R0(M3,\OG3TUBK#G@IFMU,4RIJVGVWO.G
M^"EBX7%QP;*./1!BSQH0I<V5$^&GK/&]FMTW(?LF*$BF+8HRP([FE>'IE_!=
MOUF;$/8"&\9V9*.XIROU6S/,5]K1W*@>U>6_3KSE.;12_^=P?CJ0(=$87&\H
ML?N8V<'YL//S3I_/.I]S:#IAZMF/=1[VG<EPB>5ZTBHV3(NSKV"":Q?<\SX[
MQ6:T*#O\,G)VINCKJ[9ELN/EG%"BN!$Y)P^^Q2@678[Q^DFF#R8O'W&X-,J3
M<![['4&*5?B#40@\<W_2MG0VVEB'^&EK2XFKT,=P!!UBVI$!Y<KZ\<6A18#W
M<2#_)8;H_@ZXQ<!+!$6Z[3))T[^]U+2\ZCQC\/UQ]Z)^Q2HD;(^;=5>M-GZ4
MT(#J(5!2Z-II[5*3W&TL:MQM'K)O$R)?@=4F3@.Y78;4?N':\<@)YPO>_?+?
M(+;"+XY759!:9[A'U6"GAIT\K.\(IQ[\J1ARK.MDN<6B0J=ZM,G!"\]?/'OF
M/W?,P?ZXL)PK<N<)XH4?D1%\A;$5O3KMAO"W+:3JD"=['V4\_I:DF51T[L;I
MI)V9O?3Q: ,GE#R^4PH9 J<$L%L 659 -ZD.E7%[$[(32.S<A-3"DBS4KT06
M!YY;'!_VF+2Y6MVWV^G;RNQZN_\=#=YWB;="L."A_WPM0QA5A7^$:\Q[QH<"
MN7-]O3"9GD( U>5EU/NZ*MA%T,J8^3)BKXU!G]+Y"S6'Q 4TQ/^BV*; #.<>
MB+ZV[0H>_/$\9&HM.@8O:>'4O$0?C)_HNKF$V#=6^^F;95FPB8D,+^_KV?+O
MFK4'JSUF[)Z_.RCP)S>A71&0[6P_,,X-H#M"^TI10+H_P<<XJ]DZZL:;G1<L
MU/Y>#8MQ*IG^;M:WJ^9@FN#:Q$>4:+LN;F96B=>VL@FY"J4<AFX/00BW "ZO
M@40RPH)9E7;3SZ R*O1U4,Z(]\RTO06#XN'7*K(1IO1==DW 6*GP7\3_W=,[
M650R7(CKD- UV$<1#\[)"^=&O@W:<#&MOS-W<=CB;<+ZPB3=_\2^MW;2>X[?
M=E,9 ^<*T[<\4,H?HM80ED?Q;_"=)T"!"I7"C%X8-JAS</1DS93$2"7ZA13K
M9>B=M!T5C542^;BP6\K^\6&3((X9]P8S=\60J=A)JK6)OM248<GJ2ZBH^[0'
M[C=UL*XY_FK*W4V(Q+7P]\N!0C6ODGN S*J0=B4@D@B:UC^KO(32TA\-[F;A
M<6YKNA<&=^NQNJ41 7H=.J[?%H3R()17I(,D6A&I'LU54.>+%6\=H4;6-W0/
MIE %PTFRWA<6C?\18VK7XLR*W,:S9VVK^W=1C5L_P1]Y<&=/7N^S7D*=71P
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
MUHU 8=$B&Z5LH<+R(T^8W+U>>2M@9X+^6<U1BI;LLG!K7>#QR$=KT_NMYT$
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
MN_^\V?N!? 8\#55-['),+8"'41I2<,J!9N-E'P\Z](P_W[8.2A*AS/*%#,"
M<+_5FV/'?V],8#HZQJUGS\$S"O1&CZB8I('$YLJBPL1;5'!SQ0!E5B)0W'#W
M5?LG?LIWG!PG2-!62?I@@JK@$'\7@/@XO:BJ.J)?^\G@Z[._;D-6U59-:W'6
ML'A(R/#6\<#_^9L "[]R!9Q[D"HFO.2],-J$I!.80Z1)_#0!_#H)Q=V'#UJW
MR+<-W82,\ZJ.3:TWW!M.FUQ01FS=X"P"QAX0M0; 26\I_^W5NL'.!D8W(>+N
M'2'EBTMR><7S(^323OC>MY:VW7>%W_][-S$Y9X&>DY*B3WA5(:?H;\=&^'NT
M WMT>@\P0]M>5:W.U+4@)/AJI8(W#6Y_8UK\6?K43PKQ]'6^[ASA*G-ZI<$_
MRUMWZV0'.683\G,9O]Z]"5G]^0_.%N)%;T+H"6#3VX2D5&^%6ZXF# Q/3Z"3
M[9_8Z%K\Z)W(58X-Y^@4U2*J[[Z%>S%FH:M>%3ZL.1-2YE4Q[+_>M/OUAH@:
MY[Y7>(D?(U?IIML9YF3%Y?+$BE>_XS6*JDH5GEU\7I4]O/3#S86.VL9L1^^^
M+B&RO#029L<Y7?6I5%GW=.@URA?<7FLY]QY8Q/_.,?O_(,=,\.#7XK!3-DZ^
M>YGPK0LOC^ ^HVI%4K?RIN+OHI-66D-8,K8:K-[799@%E[8,KT#IN>A!X1YR
M-[8X<]Q";5)*42AY0UP'\JH13L%[ <5T?#1.EY712919W(5Z4.L@N.$TNC!Q
M.Z"]-I/>D&6=;IL5Z%%^N.ITHYI0,C# %POAG,-W.H'TM0B$$+0XCA*!5\6)
M WZ>K/-Y+VJ9GP8[*\_^_*Q0,W;]VA>-Y^' MWV.-:MZ;\3O/!&?QEV$#KW1
MG=N$ )HV7+G1'E*#<0WK%AL'_&*6.C+1/6O1LW!5&'"_)-#L_DR0>_PL7:WM
M7=9Q#6G;T #>]/RC UE].)$Z_B=?"*^<*\UP3%(DU?;U\=1[_UVMFQLH7TNH
M]T(E[!NEDILE8KX%_3*[^/5]HMJ'Z:?567TWK"!_O'2(YKQ24+QM0N)A[VS(
M<D QZY:WO;=]6Z3C\.URUTPK2D+AO;"<<?90N73;U+>OQSEEZ0OS)X^+O')/
MP,CRQ;YP#+$FO'(CZK1?5SU"US%)5>MM<E_WKI7!#".[.5)M2L!CM&9M[G:A
M77>"ZJPN&ASM/7OO\U;N4/L>,)C%X[Z0Z@:7.6#L4.=E\26YYD#A*R^L*4":
M\W$YPW*+*Y!+(\Y[VQ^=%Y_(ME.;7-E_-%G'!_O6I-$O&MI8]G\D(A$3\30B
MJ0Z]@N;LQWKQ<OHZB,F[M#+ICDFDVMSX5LDY!P.4>-\M?&1(U&VO&[DNMJP>
M%;*LE:N:S.NPI<//!#;D_R\U!7VAK'+VRW$T/A@.Q76A!(BA$[W_B GS+)O4
M\"F:K#4=*574-7/=HO[OE=:F1H1#J\,CGVS'?<TG]SX1FM4A/B%6D&AE!4>
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
M36ZJO_8YT#:U&PNN2:" "U -6YV>3P%44SJ#2$0JIIE^P6Y$/PN^Q]]#A[[
MSE']&A T?'M<Y59(W4.H[NU'<U>;3\=DW!,$?3_*4Y@8&@LNQBL@A+4'[<0I
MJ5V!Q\/X?EL'!%.=NLB\P%^T@5\BMG-6!?%MK**(0L7@XK]Q/G#-0%$3S\-R
M'N#N1SW@3A&$=N^>37DXQ5B?07ZV*H"@]]BH;UB!'L$$R/@E]"-M^[L?K3\[
MW)3XR4:6-&?\X4W-]P5G.H^!4-R?,B:;SMT]Q+D//BPV19&MS\#$DP6Q=X.$
MW(#SZ\3>\.[N61Q1Q-8UR??HN#B?C[(UW.\2ZE+?5L.KX?.Q8LB[7) N5S>P
M)2\'2?QH CGZ02*SDZZ:7+NQ'TY"GZ'BXCP.1?"#^OI:FAS'A6;YM3%>US*=
MWE4ED'@Y5$]-G;/!EOA)@_;BHN&*;&U6H!^&A]&08'IR^F/1Y."MX%#)G*R\
MWD/<+R/V S$Y,RZV'C]L9+S3:#Y9_(]B(%M!4PBF)W"+I82&#F'XT*I&,3W9
M1:ZJ)/T '[NT39;#A\DRE87/F^+#_<>^6E'/[;FN_JX$\.0>D&<XYK]C7^;L
MYM$;ESJCX?-DTC31HNL!3TQ3U/BR:/W&\OM ZYN,)OVS94L$0(6PNL+RPO2!
M,V4FL/0Q$\A#)KJ, TA^Y\*XV!;W?(L0D9EQ@2['K0>?"XPO/KEVQ['_2,F=
MF4+R($B(P7^* ZV'+VPJKA,IUR: NCWOPMA:W8$PX)> #&JD5+>AVW)_T4#;
M\B>EL0*4D-'AA6]1>O)UD,@RY#.03-\G@-(NSG8$EAZP7#$=<Y"QD*!X&,3D
MD#KWJTM<7%WC0R D1=A=/8/^+270Y..&R*L&IQ-5U292SV72-DE:F#?L&PQ"
M+Y;$Q_0=80>#6\T DBEJ)]B>>2J+<6Q_VN2)$VM: <7Q>DXZKN?Y<,?DE+Q"
M'&X::FR^AJX>9YU!]3/=.*]JL=$84W<A)T9 K?T,"M]E8%C3UZ8^MGC,NM5Q
M:3'ELW.%CT_8'O%]PI)6#@X0:>Q- LF)B>%48+VT]Z##.!GYM?5T6SSUAX3%
ML):29>PSI6M"2P.RZ*JSS<KGKV&N+; ;W21^!G7O0":3*""K,&0F<"K@=_ D
MZ#F61T(%$-2>[!\AB"?59HU6C[8DK?@<7LT\=H8O?V]?1^H40G^WL!<HO\Z8
M&23=!D%2IIG64+!)6.%B0(.AVN-DM((^4IMTU9Q>TZ]S>&E"^.F=PQH2&I?*
MU&*U?T>8P2ZP]P)BK!LH*', R&5=8%]Z266WR0(9/KG3YOF^I/(5CQ_15QH^
M)+L.I$W9T3^-I%V:-("<=)4Y#/L;1Y_&*L"]D9,_YWO98CQ<05=\$)!%(<0Y
MG4(K,#@CISH8/,0$;K%GXY_U(\D'SFA^/!B_ VEI2,6!^ >,+;A7R^>Q+%DV
M? =2+%,V P(9CZ1;I3S%TAT03[9#8T.60'JA"!A?<T?LUN+Q( <[VRK(6CO7
MLP?\3Y^KR%=QMCLG\.SX(#CY\=TP$"[XH X$UJL?-\FBPI--E*@V&@YC]_1%
M7+LPAR-*UW4#=%Z92=;JQ$"JN]#CKQB-Z+;D<XJ[23$\NQEM5009PDT1+/BJ
M#L(TC%KW9]1$]NN*J>)7TX-N/UQR&HOU"=OFR6WY!F4E%D$F7S=B7%?;[_0.
MPK2LP!WPXN1A[R!)<ES^>UCJBS;I95-!.CF*K5V!"K*GUY>5)$VMAEBNN7Q?
MR/EQ1.BE3K/K2S7+S4#^R;])9T-I?)U00 /?%10M#=NOAT@A\'!A,W=EX<R
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
M^?6.9'P3+!S'%#/L"Y@(C-5V/TTA3OP8>J'4ECH706SD53DZ^MS(6,L'GI2
MAL'7QR'K)\Z+@1C;_ZLQT+(-2WL[0,,BV>T25"9*<=N@XRBQ[93*O>EL!S=-
ME\1V2MZ=U+63%PT@I#>"5K<K-4Z]NK<K10.BK-IPNC#UTR0A 12)YT.42 H)
M]Q'$A"(4,^&'W,C0/#O3W(A*RPJRC;!7ZN=&7*OC@/, &U"9*]A&IK4:L=L.
M8FM)SVV_+1&SH#M7R$U$?8,1M&-$$U1ZV;%W@.F8TD2/'=8TNL'>$:N&S-25
MVJK4QPO:0LQ$J8M^OC?,LS <948O>RLM:,4%:WGK/5Q=[Y0_ZS@VMTD7EC@-
M<DV:C#^9F])"V:[+TN:VD>++3H5"?'S2%Y9O?XB"9:7>;GUXKLNKQDD:!SZ+
MH,]296GX/H<D#"6D,0U\+H/ H]QI<)FMA'.S4%HY@=@*.CQ6U_UZFAUNO>HJ
MC<R1#A(R6BVUBV.CYQ5H-)TP4FWH(DP5IF8MW[QBU(;":QV@-G@B>Z/HT_-2
M^!Z-?#7]??&XJOB[)7DP#4X[?O?<&%A+";28T-]YI^]%\9BM=(:C>8C:";S.
MVXV70S7V0?]9E, 7+;(C^[ ?CT$FX8DA)[,"^U7J&GYGKAQFZ[U1E/#P4(C&
M4_I1M@[5[>8F)+Z(?19#2OP4(A%(F*(@@HGT_!AY@9]PJRK@YR:<&P_LRJO#
M#UJ)+\C</PNZF7WE$LJQSX\N0]':ZC&%QI$1<W:Z26T24^7W30SC^X91S7M1
MED)L*I"\UQ5)U@467UJ+I7SS+/Y;D.)=]DTLHKI7'PYAR@76*4DI3+&4T*,D
MC:CG8QHS&^JQ%6!N5*0>N]2.:*PA-R.>,8$<F8@:T:\Z-8UJZ:\V]59?KD"5
M RIJ-]45T"H K8,[;AJ*GB.NLIY^4NX:"LX^EPT>9\!N2)25LG3UB&]R47[(
MJT_B;\]9(3X)EG\3Q<NV(KWI#LEXQ+E15$=RP)7H8)57H&B$!VOI+39.YM :
M;*9&077L#58'4"TU4&*#3WN @B].PZ&&@35L]V4^S70[,FO5=W9I]G=?T"#N
M:[Y4=Y1-TH*:2R@;CBWS\KGH],$(.94DH3'T/)DH.PHCG=J-8"@BD:C_T#2T
M2A8PGGEN[+0N7U@K,*"%G!':AF?C8V X,A>UZ>YNR68P("Z;R!G-.WTS.1LX
MCC:5LQK@=9R%?]895OQZQ3=1^KG^IX_/E6YNKEV<U^V>5-RNJB);E1EK$GP9
M9V&*&85,;0TA(DD":9HPF"!)_3!.U>-L%2?_:IK,C28W8NJXJ$9.\$T+>@7R
MUB]9Y\7Q.B! ;%*L\OJ?I_5-#G]\IO%A3O)0_ /Y.O^\?7#>=AX<_<_JJBTJ
M5V#[%&Z <97Y/IO%G8D/=;@>_U"^UHN7R[5/]G*!+FH(2Y9UTI2R"^Y(6;UY
M%FTSY"CT29P0"D48!Q!%,854R!ARSD,O\I'O,:N^\_W3S>WK=Z[7TA!$S;XU
M[G :^8.PEW5W51]*:&'!&^W1<=Y8V@P8MYU43TWV&AU3SRA^HC/JN;LFMO<W
MQ5645,^/ZZ"4AO?>9-\R+E;\DV*Z1>J%*/$D4]8\X;KG1013["<P8!X/J?1%
M@MU6HKM4XKDQV,:PXJV0X"43RR%5FT==YY$-\#%6;_Z&=J>D5D?O3AF%M>K@
M4U^5K>E,:=ME>FV3V5C>?PS3V!9^9R:P]<0#LM\^D]4-*99YV9IA7L03Q)@'
MHZ3NPBK4E\7#/L0>HP$63,:142S3L<'G]A%0XH%&/HO<K'W ^BGZ4AC&9M,-
M N=-TO-06&2F70#)1,EH!@^'7=K9"95[,\WV[YDNN>R$M#OY9*>NL:\(^!OY
MG[RX>2ZK_%&]]]<_LE(7L6=<)BF,6:!,W$#$D(2Q!V,:):F//)+*T+0*X.'P
M<Z.BM7#@BY;.HM[?$>3Z&>ER/$;F)%,HK*KYG=;X@@I^1P:=K&K?:86ZE?IZ
MKAH8H'C0[7E3AH'&TI,T5:9"C/0+2Z1Z84D$?80E8IR+A(5V?1A/3V;SN$[4
M=[$1\(+^BCW0FFT#W< U\MM]K&?[*+T2SZ/A*ECP]$33A@6>5?@@ /#\'<-8
M8K?)0^-+3'& .*$>]"2.="6-!&*A?B4LD<)' 0Z\R.;(ZL@<<_NH;YN;M(UF
M_L7[5\_S?/!$BL9;K(MI- FK_P:B*_6W=2\:\EQ]S8OL[X)?@56^$NOF--HI
MF&]]'W8,<VQ9S*CE0K!'YI2#)C)_;CSQ35\1=Y32@X(C+CDVPZ0DTJ/B/GOT
M73KPW/R9EN)OSXJ'WGY3_]$- ]JRU3B*0X$CK#8#3$"$4P(Q"77/>!'BV"<R
M0G;)\:=FFAN%; 4%M:2&S3HLX34\9G8!VM@'&L/PLC_+/8>%JS/8D_-,>W9Z
M3MV#,\^S-[Q.*-V[O) BJW1MEB:FH.W55]ZV96[_(K*'KSKB0&T;R(-H4\+%
M79$QL8BDYTN"$IB$#$,4^C'$/(VA8A_"4!#XA!IU)IB%-G.CNE89P7^I%5%?
M<UW-@^?+)2G*K:$T<6&/RQZ8D?UW4S\&\_?M;8+H.IBL(^G6J(!LW=[U"JR1
M 2TTZT(CNC.A F<&SC^7:_S:CD$GNOQC. U=+IOKF#HW0@W[@-\^/I&LT!)]
ME._SU</[[)N:IRY,_E]BR95HOY?J0XMB+V),'Q'H8EB4II FE$$J(\$]EH81
MMPJO,YIU;A_$K="Z&,!2B0V76FY FCKN7Y7D4.8%?"X->X'9+8+9Q\LYM"-_
M9+;R7@$M+ZP%7D?I_=<:T]][,+4F?RN,')&TV9R3DJD5#/ND9W?S,')Z2PK=
M(:-4+%@3Z)ML^:QH<$%2+\9^*F$<R@"B6 J8)CZ%:<!)$$11+%.K[, 3\\R-
M@#Z(2M%.V3&^KP!O1'5BFY^"VXQX'( X,M6L)=369F.T7H%62G?<<@8&1VQR
M:I9)^>.,JON,<>[R81QQV"]!O2:M^V3AAR0ED@8P0%1"E'@)3#%#D%$?^S@2
M<1P1.Q]HWW3S\X)N^I84&W'M**$773-><(78R.1PM,4+D97N_K+3Z.6F$#RK
ME*U2;CVF[NC#!"U''-([U:1$8J+T/IL8W3.D'TJ^JEVN?\FJK^M(C4T5ED^B
M(ME*%.^$^)"OFB=!3ZTHC>D0N >Q\+#P"(]CF(8HAL@/U4]"4BAD$+(H#.*
M&)U)NA!F;@;,6AWP7>D#6*O0U29(X^5*$56C%)"ZY-$J7T&V44P;-JUF-OU)
M+ES0?I:;>IE&9L'-"FE5P,UFA3JEIM;Z@'=ZA91*<*L3N'N-%;)I.#/=2DW5
MGV;\%;-L<.,&XOY^.!?.,6'['#=H[';;<33FI8TC.QYK$M(4I[KNH4PX1#+R
ME:&=()C2A 4Q8B*5>%@#R/G& FQE'!@ <!1),Z/Z4GQ&_HS80'-!R\/1W/Q'
MIWBE%H3GG?N]UPXP@;<E"-4>YWK%[\F/AD=N2%&\J#V0]EV4]WK"!4T"@ICG
MPT0*HLQ=J=[Y,(UA' OU_BMS-Q;FW0(M)IX;&72*<^H3.NWB5-*O-XL[\EM8
M1C8K86"GCH3OR&1B 2WX4@MODS1E [&%H3D2U!,9E2XAM[,>!^#6:RG:C#>=
M53A RQT+<,C]PZP][='.5^J)*S_*VQ53IJ::2R>]KDKQJU@)J>94YFBV>M9]
MRANQ\E6Y[28;48_+A,(@]O3W(4H@3@F%4G<,]^.8I\BS,0POE&=NGXVM.MJG
MW"A4OVJM2N"G5JF?K\!6+[!5S+IGJZN%-;-3)URNT4]&)E@I:UO8$;Z.S.9+
MI9G4PG8$W;XQ[FI8.[KF(ENT[?4^OSS2?+G0#0<X4UMP(1!6Q!O'$%/$8,A#
M%,>8ABPQRM<]&'EN%+IN^=A(9T:"AW#UT]E%((Q,3(;Z&U/+25U[JF6K>QI^
M4#]L:>%PI$E>\),*K%_5TQ>,% 1?G@D _).ZLC(,><>>[Z=8F5*Q,J403T-(
M0R34?^(PBE(_$=BN,/9TLL^-.&K)IPIK=_@(F%E>,UW8D<G0)&2]-(U9;Q"8
M9WBZ^]6;*AC=H>3S"CUWOR36@>8CB##PD\B^"OZ\%!_EC696FFLS]YOHBGJ]
MXA\4\B?^K+[/2CU62]V>-//0BQEFT/<#J@Q:HKY\E%"()0HE]B,_PK[5E\^Y
MB'/[P*TUU!O6'1UWV5"?[FFG,#MU">AJ:G?$.N+S8/@9?-55'OU,XM2*Z37M
M_OZQ^JHLF^JK+J*U<Y.ST]OQ 7?U@7(OX+3?H=$ /OC<C#?3P"+@ZP*,VYX@
MVP-)&I'42VD$)8T\B)"/(58?!2AD%+$T1HPBJX(F?9/-C>D[)50[T@X^&^[%
MV8QW7:$W,H,.!\Z^(K@!(J[J@?=--6TU< .E#VJ!F]QSL5E*RJ^*O/3_Z59#
MW\A2TUE-4MN^6#Z) S_P*!1^(A2E2 *QCRAD,1%!& :"^U;=7.VFGQO)[)B3
M2O#:R*A_Z*@PV"PT60]KD\\QRF,?7I@ W%IL8)R.9H.@<V^8F4S^6D:7!3 ]
M!I7-* .3)Q^?EOF+$'4YJ+8BL!^01.!80()TFY0@H3"-20H3(E@H K6%YD;5
MI'OFF!MKO?U\=V>9!GD$.#/FN1".D>EE+5U3E6V$GB<]ZKM*>SPRP[0ICZ=5
M/$AW[+ET:.2U,H(R76W^.'T<_]?V"<8^CY$O?9C2E$-$90!IX*GMD;)M4,QB
MEN#$+D)[N#!SXXB>C^W P.X+%LJ,:J:"?^P3K.'(#X@;OQPR9_'E%X@R<1SZ
MY: =QJL[&--5!^K-N4;$D@"%)($BK0OB1@$D(4<02R%ERH4G;7/%3T]F\P9.
MDRG>E?5__7,:^,F_ 5'+;%DVNP=AP^V;$]3&MJ5JP:[ =:6>9/K<I-)5.;@C
MHQ70/H_+:.VE7^?LZ+S"YQM(.S\W^GU5")8_K'0IZ'ORHXWH*S_ER^6[)NQZ
M[\R"49(D/":0!5+978D?0$QC"I$,$^(Q/PB&NBUM19F;U?5)Z <A6V9-A$8N
M0?55@%_%0[;2=4*:,H%U66UP_:AS_?4E7:7K\-NUVD,/GJP7U/80:LQEFO!
MZB3P0&L"6E4F.IT:BJGSDRIK05[IU&HH8*=/L :/.#0/I2?G>:&[_)*$QC F
MR(?(QPS2."*0$T(Q]25%GM5!?>]L<^/1306 ;J\3P-<U^ OQ3:QZ6I /@-N,
M IV!./8>=*<JR9$*"B[3-0P@<9:,T3?7Q*D6!FH?)E*8W&3')H+QQ=L?@CWK
M0(4;4HF'O'BIFW09D,/)F^=&"!LAP5I*PSW<:7CZWW@GR(R]8SL Q5E#L[/J
M]V1.J'O;EYGQ[3M\>L1)WMNS"JW?U?,73MQ6H-GUW:[4KJ_.DR[KP+?[KV35
M1L!^R%??1%D)WC%4%I&D1!!*82()4^9#$L(T01Q&* K"V,<T3*S<8M.*/S?Z
M^?"L#^KTGJ%6TG9G-NW2&^[F9KN@8^\ +V\!T$  .AATHU$WR18;(-2/>P\0
M^-+=8KK<4+[*LKYVU?]APL\KUV*4A7%6U_\R*5XI"7&=_F&6A$:0VEK[L81^
M( 5$7A)#(B2!010&:13(B"5&=7]>1_RY?3+7PLTD&='N47#T"7VU!9[!)]0X
M)7$#PC]F5N*@-9Q+8J*=\//Z7HZR,,[3$X=)<6$NR>WJZ;DJWXMO8NFW(3AJ
M&RA2WT\@C8,4(HQ"2+F4D- DY)'@*!*>72A SVSSBP6HI0/^P)R1(WB:?2$<
M830RG6\S1JY (^@5: $;(:32 !/7.2-'9GJ=E)'3*I_,&.FY94 =S,^*@T1Y
MX^]VUFV?:8J#.$@D@B**$40^DC!-*(:I'PB<8"0#WRB>\NQ,<[-5&UG!#?3!
M7J-GBZJ+O=#VTX53P,:V_4YB=9XK+$&SJ$WI"KR)BE$.>.#L:DZ:X-%;9+)W
M@.FJ2IKHL5-&TNB&8>;579&K[6OU<J>6LM)=#?_VG#W5.<&;0)I44D^&C=.>
M0A0F0I&GD%"0%*?,"P)" SLKZ_RD\S.VNC$V;\LJ>R1Z)_=)F\QUI<'?2R&?
MET"W5ZM_7^O8A$>M%;2SU0P6AZ8D]1.>0J:60YG GFZM3+DVAF5,H]"+8JN"
M[FZ79HKOW'&@K\ 'X1YM,P/9+88C?_K6PEZ!6MQ=%$<-$S.'R9'I;##AI!:T
M.0#[AK3%G4/C[Q6]Z0&;(_)ML<PZRL"+?!:F$8$L\GR(O-!7^^Z 04[]6 @I
M/8'M_+!]L\V-;UH_6:?.[)GXA $ &Q[5NH)M[) .6\0&Q-P;(.$L[+YOKHDC
M[PW4/@R^-[EI8/3GDI3E1_D7HL\2JX_%)WTLN',:N/ECV?ZU]!<RPI3*.(1^
M)!A$,4XAQ=B'B4\2]3^:IIX5G0R28FXT4RNA#<GOC:1J'4"A1;T"8NTV>-*Z
M=*XI-Q>53AQ4PY;3C+Q&7Z2126VS/G_9KL^G9GUVW3J=:\K-1:>#;>QC52\!
MTE4,ZR 9IHUMO02F@YC7BP:SCX6]YCS3AS=DB;S@V[;>SG9G8A@7>W:@N='@
M5F"@)/[IV\^=^D_FP;+G\>LG+>?0C4Q.?:BI/9W+W9P5-(,";,^//EFPK;&B
MW<!;\YLF#L)MXO<^RB9Z[_H;R99ZM_\N+^KZLPN9"@_A%*E]'980<8H@E3*&
M3/  8\IH'-B5U1I)T+EQUGU>J1>O;&(B"Z'+(]1YDFNYZ_;465D^U[VJM:'6
M7.LZ?&CHNAON/F>PFF.[A2Z/JCV(D;W>>0IJC6<0*&NX)J\=$GM.S'D%\UP(
MMK,P5]/Y!KC>W[0.J7ORX_TVJ[$V>#_*WTMQ79:B*A=2!#[S=!0J%3Y$,HT@
M#@,*A9>(E",4)KZW6(D'[5/I_Y98S&I$)+@ADN[<X_%)+2',)7Q6FT-2"VGA
M5C;$NI^]7>,W#1&O!:X3VCLB7X$=2*]'@M3"9^\>VHF\]VX@MG/HVX'5Z]HW
M'&HZ)[^=;CON?LM;)]XU'&U1\:<B+\N%%V(_"!2OITE"=-.C %)/II"GD4Q8
MZJ4XX9-L&$[+.+>]0K>YT;2[@)YU''D#X&9UYF_[]S0HJK6=@=U_?BE>V^3O
MD? ?P]H_#[$S0]]@JJ$53;LEH#[*3TVMDG<*I<_BH4X9N,]OU-3Y,N/:D-X>
MK.K.\GX2Q3"520R1B .(8_5-"(7G22]-(M^WC!X;+LR\H\I:/>H<HS^)_*$@
M3U\S1I:*<02Q+6PZ>+W,N'^:-1B9X@\+F[5J /WZ@[4BNEY@5Y51@Z(N!]99
MZ=/!@DQ<^/12P [+GEX\HGU3X+>K*JM>/C^2Y?+7YS);"66&A5Y"8AT7D418
M46<<2DA0(&",TE3&C 0!1J:M@8^,/S=3N!$1U#*"M9#F?8*/(=A/9@YP&9FA
M[""Q:AW<H_B@!L+'QINLC7"/,MUFPGV7#3C\?$=87>3J-Y*I/=Q*>W.N'PI1
MFVCK[*-(Q$D2<2AXI&N)BE19/U1"CR0<QW$4Q6:1DH;SS>V57DL,'K<B [*6
MV>*@S@!J@W-/MP"._.YOL.M("S;B#LE+,@#1XJ33+9@3G7+V@^KH6-,<F=XC
M38-AICO.--=IYRC3XC9[F^F]6H;EW==\)1H/UR*,4XP)%C!EH5!LBR)(41S!
ME*11E(:4$$I,#:;]P>=&K;5\H!:P=3*;FTH'P)VWDRZ!8V2BM$#"RD(ZI?(@
M\^A@L,ELHU-J= VCD]<,L(I^RY:BK-10'U>B_:K(T)<B468/CG4@$4LQ3).
M0!I23S"")3$K^WMB_+F]FAL)@1+1XOM\!#D#H^8R/$9^-W>@&&*S','$PD:Y
M#)N);!*SQ\7.!#FM>*_)<>2VZ4R,TS+OF!0]E]D'5NNSGF^B>/DHWQ:%/FW?
MAF>^5_O#VTH\FA35-1EF1F_E6MPZE[DH%);Y<[E\:?Q6^_ZN;N2P5@;4VCB*
M'+8!;E#PL-$$D\4/VZC;#2&VNF^8B^>]J"H=)'93")ZMMX-2\H@G+(4,^RE$
M@1]!' D?$A$+S&(O)EYHX] _-LG<OMZ-C'5OUUI*.\_+41C-?"J7@C.VF;V'
MRPA5E/H0<.36.#K%I Z+/B7W71&]UPZPS:\9TPUZLM7#7;[,6"::5K8+PM*$
M$!Y#G/H>1$C]1.) 0)*H#36-$J*L=3,G;=\T\W._;@4%:TE;[YZ-C7H*50/C
MW0%2([_VXT)D8<L[@&HB@_X(9([,^C,8]-KVI^Z=SL _(_V.E7_NVF%&3CMJ
MJ>PID7W3 [9?Z%@R1L/8@ZD(*40X"F$:!QC&"6%,#<6P7:K3J8GF9NRLY01;
M0>WLG9.(FMD\+G":A@"[$(U@^IP#PI'Y<W*:24V@<\KNFT%GKQ]@"JE=U*/.
MUR;+[.]-?-V*OUW]_>51?'Y^>EJ^['O&9)(&DG !J9=@B%(20.SQ%/IAA (9
MABQ 1H74ATP^-]8X$!]<UST@M0*@T<# J7;YFA@86",B/3+O6($\Y&C5%FT+
M6VU$U">RX=P\XG;6W4#4>JT^VS&GLP8':KMC)0X=8W"1X6LUP:]'Z[H&@<=0
M$C+(/*(L2$X294M&'@Q"XOM>*L,D,@K6,YEL;M^#MO+K=5T\\->+RPV?!MF
M\!U"-S+!;U"[/H;:\,+#I^&SKCWL!,9IRP^?@--I">*SL!A4(3X]QM2%B,]J
M<Z06\?E[AB::E%61L:H=\_>5;E7\^??U+MWW:)SXL0*5(XB(CR#5WHE("$'3
M@)%$!C:[]-[9YD:R2C#+%GW]8)IMT)U!-+I+<RUG2Y^UI. GC=K/(^S7C7!Q
MEHK1-]?$V18&:A\F5)C<-#"->=/HO$Z)H_M9<WMS*]HZ)LTUJ[)O6?6RVPI]
M@2475(88^K3>\X<>I!(%4"*&?40X"@,K]^>8PLZ-KKJ9;4V.+#W(I;T"ZC$
M:WTL\Y['7'@S;IS+<HYMIQ[+<-XFHZI%W.=>O0TX2LA7F\4>-8ENBH5QE1<]
MIJC3)DA/ /I!IO04<]I'E;U3&.8KL8[:>?,L[O,_9_FR32C\K_Q1W.@#[>+E
M/?E^_5B95N^T'7=NWX16?K")/^//0F?7;G30'PNM!6C5 $H/Q1F/^C?S:I_6
M\/?3_=C(CTS?XX!N%>4W%+U!$7_6DTT6_3<4AFXDX. QAIG7;\13(5B3";WP
M0\K\1&?61*G:?M.$PS1E&!(_DC2,.0D385?*H3O\_**#NM+9&:<[L 51%$<2
M2RC4#PHVW7S.\V-(O3254OV7IU8MF(>"-@7#=V4#XH?^$%L&%.Q 9V:'#P5D
M9.(U>GRL;=MCRCJR17>&GM1V/*;4OJUW])IAK':[8HHG[\F/W5(/'_(55^:D
ML@:5'?BV>7B/U^*YR<MJD<0^(A%23!CA5.=V"YA&GH">4-1(L40AMCH=<"+5
MW BAMK+;K3_KR&I'"FX6S(Q-)E^&D6GHK91";W $:#2K"SQ^(E5C$6X5O ([
M*H)6QZOC%<ZZ^W]7IN(H*^"(&]W(-"FI.H5QGXW=#CZPVU"W.IK>VE=943^2
MV^R8:ZJV^X15BS1BE$BU5XA%D"@C3#"(4>I#F6+D)7[DAX&1>W[ W'.CY*VL
MX%>Q$C*K&W*UPEJV,;-9 C/Z'0G8T=U/@S"U;_9CCXZK%C\6,T_;V,<>DH-V
M/@.&&!!"=)<]B>(S6?&E*&[R38I=G"1>$D$A1 B1QT-(<4I@X*>Q2%C@H\@\
MKO38#'.CG[O/-Q8A+4<QZV<2)TB,S!>U>*"5#_PO\OCT;^ F'Q+S<Q0@BT"?
M2X&:*+KG.&".HGKZ,.@-Y3EZXW3Q.WUR[P3M]%XX)!CRJ+>ELRF@+]M+#EM1
MY/)V559DN:R+*2XP0DD:<$6!."00^8$/,44IE#3U/,R#V$LL0B==BC8W[NPZ
MTKN[:4!VBU*7G>N>VBT;:8I2KS8-:;*.HC9!AD[7WH#*7VU%)_&K'T9%'*\P
M3ON["]W.83%MXDM?:U&GBD:=?'$M UG'P+\_[-7IC!,&R8Z!U&Y([2@S7!J
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
MUXG/U5_O"O:QN"^+M\I$>JRY_S=1?<WY=M]AV(/"9*S9F2]U$[R[(F/*BBG
M_>=/8"L[:(0W;TAAA&8_(8P!Y-@6CP&&CON!V:(TJ(V%T023-;6P4;?;XL+J
MOJ'6A&8C?7+2%,;3"3S/V>JA/3W/5^7>ADR4[3YL0>L@3C^%$8\Q1&%$8!JQ
M!$H4Q:F'O,1G1F5G+A=E;LPTZ(3I@I4PM5.FP'=T2Z8^/?I)J_'SNE;H6A.P
M5>7PM$F? YY;F $VSZ68.K.*!@LRL=UT*6"'EM7%(PXX.WJ?K709_-I#\XZP
MVK5XZ$#X-2^*_+L2YE=2"K7[TRUFR8-8\(C% 6$(AL1G4$<Q0"RY@(3%G+-
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
M0,5#MEKIXXA<@D8$\%.V ER?F1=U.V%0:IA^'M!.^+4?+!8C'\5"0)1$N@,
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
M7'BZFX2C-;N@[YJ#!38S3Z9=MI&Y[N+J!2.U=7,'\FL7'WC_.BWAW 'HK(3
MX<CVY;7:6+8Z,L^P?%;GEKGQ92O:'\T+7G7U[Z>K"U0?F7-:J9S%(I[0=%"A
MJ>XXDQ62.B)\MU#4L3\/,X*V!U"Z9.:V9ULFRB/%%V.62HFY=F@GRM[1>=]I
MF'H0$XH0CA/,(ZLVL5:SS^U5[0A?'ROMB.^B#*;=VIB9*J,A/C)#N 3;VO08
M!)HC*\-N[DD-BD&P[-L.PP:Q-Q,^/E=EI9X<-?JZOM[MBG]0CYRIU7!ZA+DQ
MDY;)W(#H0>:\/>$&E+$]85LA-S4QKX"2,_N6\6>R!+V 65D=Y_$89(3T##N9
M37)>M:Z)8G#UT ZPM=.A"?%;U;3PEZSZ>O-<5OFC*.[R9<9>MAT- Y]A0H2$
M,M8A>1(39:T@#F7@>\0/D/"CQ,[W92? _)QCZ^@RO2P/J\P^RL9R!<P,D_%0
M'9E<UG#*)O*W$1U\5[*#M?#@2R,^<-I8\C+DG'6JM9I\XBZV0X Y[' [:)3A
MR6$L+Y[JL.5\I7/VQ(W.<RA>;G(N%IX,TI"JKP,+J-J !7X*J2 )]$,>4.3Y
M:1S$MCEB/?/-S;#9Y#YU9+X"M=1 M^UH) =:=/NTL3[<35U9SM"<QJ%U$9"#
M$LH,X+DHKZQO_,G3RPR4/99E9G+;,-OI3WG.OV?+I=IIW:Z4=?:0T:6H8QG+
M]9\:/ELD2 1!P@.81)XB&H9#2#@14')&4D+B4)@E@EO//#?*64MG9R*9 VUF
M'8T"W\@<LQ:L/J_92@T:L:_ ^N]7H+6.1K62K!%T9""9SSNI;60-Q[Y99#_
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
M]+PH7CEO[X.[=7N6[&[U@Y>U*'M_F0>(9IP@+#<TG$*$0@ZS($UA*$U=B++
M9YXW7]:EW-B%S8T]J;3F8M;,Q:YLCJV?M'.TRQFB;GD+I0' [9^-R:)M#N6%
MW=C(PS..J=PH!'[;J/2[BI_;:+7E!.A(7P];K1G8C*H.Q;6S83-(1AM_^$9*
M51MO&,V2V>P"WIOJ9JFK\1+A[&*SER9GN>D!J^M-X/F9BFC84 0F H641C!0
MBR-*O;A)B?8%CR,<"BP,^-,/&I^:IZ^DJ^.8#&SA(5X::]$5*#A>5+8 #&&:
M//IR],W[%8B,9*<-D#$SM&=4[[68A^^,9_K.2+MGP\X]8YZH5I-X5>\71<4?
MBC^7S[FBR3FHIJB9L:;1U-2L42,RJ&56/L%#_L35<<.?7^YONU1/,U#KH9_&
MI@-KOQES@*ACRZ8+II.*DX9P#4IYTVE_M-PW V6[27 FKUU%\_]-+A=<^D^?
MY9 MCKGH*:?2SQ$,XA1QB!+L29_'"V 6^5D@?\1A8L0&H-7KU,Q/+>T@BO\+
MZ.J=7UK'S/7U:DOX7PM<;]%JD4=B_M>#R6X!@ M]OD4= #T8SI0#T'QYZ,7P
MH_)2O_+GHE3GH_?%(J>OS?_N5ETA/%[S3R49EH;'(]+FI!F&@N(TXC$EQ#>Z
M=-'J=7*&IQ$:;*4VO?W505KW]M<R?LYO?P^@FX%&6/!7^Z^32MI&,%F[_M7I
M<^3K7P,8CJ]_35X>9H2:%-S-/6+, Q[CS(>"\10BY(<PI2B"E!$2DI@$"24F
M-8WV6C<R*J.7,&K8C,SLRCYX>O9C,"2N=T-MPKWU2]63"EN:\?MMCSJS3ZIU
M.(-//W3%3+U]>L9YJ:S"^Q^X?.35/ D\DG@LACS+(H@"=7NIRI!E*!,H#$B2
M9$8UJD]W,S6'H,E^S+=B MK(.6#^'D-J,)&O FJ,&0UV$H+W%S :-K7/0F!S
MCA]W,OYD/ZOHR5E__NF!NP7Z@[/U@E=WXKT26G$GJO/M._$UK_[][E7][R=,
MY8#M/-HX"04)40*#0/'VI%31=Y,4XB"*!1$92[C1H<4 &:9F.#8JJ#*@&]+)
M"CS\P*LZR*C,R5K=K?K>_R%'!_RI6/?DDXVK<$/KH."J0\UGN \9,(::NQ*W
M(^-ZC[*1OAZ5KOSJ%TKVF:I#H_X#-%HX.9.U *:MG<P "<;=UPR'Z&B7<T53
M0Y-#GY\7-8&=BD2K?GQ:%#]OEZ(HGYHJ,AO.T222KA5.$0P98Q!EOG2MPI!
M3$,1,H]X069$>Z;9[^1,9D=LP+;W(FIJ4JD%$%(-D._T,&2$U1T-34-H'V/7
MQJ\+KQ(9*)E!1V@G[*Z&0%G+1=7K=>345",HCC-5S5X?2#XDO[<?N.)W9)$_
M-O$37NQ31C(,<89"B!CS8)8F"4RC1'@$AS[WC,C+CKN8FBG:!+<]MY(:[O=.
M8*AG5:Y#QK$!V0@'=M)9I ,ZJ[DM]I_C#L8E^SFKX!&WS_DGAU(32LNPIJMU
MF2\?WQ>5(@QJBYW4Z6@,B32*U5D."P1$6-'W<(Q@%@8ISWCH><AH^W:AOZE-
M]CUQ6]JP :E_EU#6LP 6L7-L#LQA&T!(J 6&-4K"_MY&)B744OV8EE#OM:&%
MW3K[)K5?NN>E^@5^Y/X<)=RKSX9CBA-I18C<P(1> &.49MRG7$2^T2ZFK[.I
MF9#]LX2R/DAXWHIK6IVM!V2*,Q'X(H%A&JN+,Q9 [*E-8R1WBCP)N<^(605I
M6S"/4_IY-*#UK+4M\!R;ZGW4FG.N^\NH#:A@=QD.:\7J>KH:N2[=9:6/2]!I
MO'-5F.'MDA9/_"B4J$F17,O%H:5$*Y:[VC<T0H%@L0=93*0%C](4XHA[,$I#
M/\.)[\?QD-C# :),SKZWE_?/9?&25^9G3U<,BJ8A&@5JUV:J1;G1XG3XX@SL
ME $[;9P<75T/JMVHQR&"O$4HY!6 G8F/O*;%@6?W0PN_*R;>U>OM4OGAZI=5
MG2CW\ ,O[YHJ\'_()NIB!+S,"_8OGC_^6'%V(_TG:?WK/W[ *[ZM'S^/@Y@E
MA,70\SWI\F'I[6$<)S"6&W,2><+C@59AT,EI-C4C7TO(65U7F16+!2XKY5LV
M-98-2RQ/!F3=ZXRIR#NAY:A6&-8:@RXJ>Y6IR"OH/M=" VIL9J!!!W3@:;.G
M5Q(@T"*DF(D51G4-FAJE&=C@!%J@FD> @@HHK$ -EL5;FJF-OZU[H,GH->Y-
MTV34/G>7-3D!A_%4WGZ<BPACGLGU65 >*C*7 &99)#=1$0XQ$GZ 4BVFYUV3
M4UL8;[]^-*=XE<CT+SW#]'5L\R^I:LQ5N=/N:JY*V=2H7)4[T0^Y*CM_&5A<
M@J_4#?:]VDXSSMZ]?I?3_':YI6F_H:O\I6%J23V?A2$6$">*2!UY!*8D#6":
MICX+4!1&G)JD"NAW;30-1\@CD)(W@3#/K>S*^?AMK=R.?/D[*+:%#?!6!<.J
M$OJCHN=5NL':L0E0,-?A,?==F+]O8-[5C[BY#+-YW0ACQ&P5B]#O>-P*$<:
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
MD"5YIF90#H@GZ4ZKFM2LW--K!IZWFJF7'I5NH%+*@6>EW3!"Q:%#JW-;.^J
MN;Y_W:=?["@$I$;@Z\%8[912+]5J@5HO<#_^6 WCQAQAS-Z&.M/5V UFU[P2
M:5WRS:'=O DWYY68G*/NO+;9P:7ABB>NB&)X4^2=UE_\A^()Y\NYAS-*0I1!
MRDD&41IBF"(OAF%$@B0C7A!$D1F!?6]_)A-T')+ZCT_/B^*5J_N<\D6B?;:&
M\:RN)]XHH]; 7>Z>FK1YH9ZNU!3^RI^+<@4^YTL._FK4-KS/ZQ\RO8,N:\/@
M?+NMY 1;0<%&TLO8#2DA=QD3>[7C>OH:NVC<9;5/5(O3>&E@F;CB%2]6K^W!
M;<JC*&1J0T_2"")&8IB&6:K8I&C*B.<G(3&J"==M?6IN]R;[6]%VJIL9O+N9
M,:SYMH>AGDT8C(QC&]#*Y>#,^Z3&MLJT[;4];DVV4VH=%6 [^="P&?M]N:,)
M><"_WO$E%_FJ:HR$_,4]7\J^U.WSDMTNY43BU>KC+[5V\KG@/"8)HI#BD,F-
MN"H[RZ(0QA[U4"H]QM#3NF>V(,O4K,%&O'K+_;R1>T?)HBCE\F:!5!FKO-'"
MS%!<,W1Z9F6D 7%LA+I:U/FO&SUJ>@XU!.J76UWJ(=N.W\<+(V-LN"Q@:LG,
M72/)J$;1 F2')M1&DV8&MRI7\S_S9?ZT?FJ7]H#Q(&.9@"3B"40)K?/UI8_$
M>"S\,,:>T&*R.FIY:L:P%4[/NAWCU&^KKM+>L>5IY;+H_IS5ML\FR)<Z]D#^
MM+,%Q^V-,K//JK&9I^<?L%P%Y0M?S;$@44QQ!K'<D$ D$@%3FD60^"))8I3Y
M)!!F1R5]W4WOI&0C;;WR\5W1DR4WW+KTHIR*D',:AS"A?J9(VR7*"8H@\Y#(
M(L*]E'LF]"2V,!Z#I&0<A/6<.ENX.;:=%PKR?.E!SEX)F0XDKFO'J*ZF432F
MH[1VM9CN.P-NA?=) C8.UPVE):]OE]+0%])$<&FAA0]1Y$<0HS""/ Q(Z/O2
M?PJU6$MT.IN:][3;2FXD-+CGNP2LQH6K1;@<FXPCGI$M=#<.H#.X_[0(X4B7
MF]= :79CJ8E-[W7DI3;&NVO4U&;O(E'WG0%V]48J$ 2>W,T6I*+%:E/AP6<A
M2C,?QAC+G6?* IBI"EP923Q"?8]R/9K(GCZF9D5E;U!*";9B&EB",RAJV,[K
ML7%L,H]@&5(3YPP^!@;R>IQ&LHOZGY&9%>P'H-?XG7EU/)O7+_N>J;OPZ, \
MZ)+C._&5X\7'2MUJ;IS4.8X"A#"*(>(LA(C)S29.,PY3[!%$*?$Y-RIK>JZC
MJ=DZ):<*9)#_+ "O107/FQUH75KPO]:XY$!POC*L+W@6:[V]IPT$'5O$#7A*
M2-!("39B6DP$O@"$K2S><]V,FX)[0=FC_-E+SP^S$]N0ASOQ'E<_/BV*G]4-
MJ6HN[WGF10GW!8$H(-)@!!A!S.6/?LR2A,>!\*E1AEY?9U.S%[L0'?G=*VE!
M+2[X:R.P8913+]!ZAL(6?(Z-Q17(&9L,'4@LF8W>KD8U'3I*'YH/K7<&NAHU
M@>_V6TY"Y"/**$19B"&*.(9$^A0PIJG/TD@@D89F%P?['4SOJJ"1S]!GV =-
MTU,8#(1K_Z 6S,D,/ZVS+5=@O_%Q'8"3BATM^Z>?,L_=K3F8'IX>_UP^YXHD
MU9@-]FP#4UNY:T'!0_ZD3NK^_')_VR&%U4_Q/8]7_URU!I7K*=N#$OC+.D/L
M14@&Y0:?;W6T-.&+BG4SAB\_/*0NN-S-<OIYQ?Z'^J\%_X?<(ZQ^?*,YE\)O
M:J>&.*-90@)( T6V$64!3)- +M*$BU (YJ'$TZ\.KM'CU*Q"(S-00H/?&K%!
M(S?8"*ZY[=<'7>,PU#:4CJV&#HJ#*HCKP&E21]PRK&-5$[<"KV%9<0.H^HN+
MZS0T8HEQ [WV"XV;O#@FX_?':I4_J3+$'6K-/PJ\N*$_<OY2O_I5_GGN8RSW
M62F&?AC$$"4"0RQ2!GF&<23_E&"B53UX%&FGMDYLQ59)X%O:W4<I., [R4$I
M'QF#I%EWS#66FBF-I.LCJ.M)EW??09=^6:D-.GJ#KQ/[#L8@YW;P/?Q]R+AM
M?!<CT6X;CI,;FFU=(?X&M-J&>-JAT3;M=& H>%MYZ"M?J+X>B@?\2Y5R573=
M^?+Q4]&RL!XJ,$]1[',A" QPR"%B<DN)*?4@2V**D!]Z.$KF2_Y8MZI_4S14
M'BV;DS4VYT@J=W9'2J^X8W"NJ&9JC52-KR5?U9FQ'%1\)1W-S9V)BH568=$U
M:[IA*/30<=0[@'8Z+*-516J"I55^6T?V66OTW^T;?8V$9?/(ZBM1M!5U/52,
M<2.RKP3K*%K[VO8LE:>]6_W@Y9PC% 8D36 J J)NS*3Y#+(41EX2QDD6!&&$
M36[83W<SM3U6+51;D?;*@K0-C'K6ZWIP'-NFDP5I:R$=%J3= \%50=JFD[<M
M2+NGZ,6"M/M/#PDS5LU\Y:N\;.[=R2)_K"W)O\I\Q0LAY@$2:4R\"/H)CB 2
ME$(2)PQZ)$E()GR$<* ?<7RINZD9@5I@4&XE!L56Y!GXV0IM$G![$6^-,Q*K
M*(YQZ0YVPH*[#H#_<@&@2?"R32!'.AVX#E##V&9=?/K#G"^V,F+$LZY&^\'/
MVF\-\[N^\)6*=[HOBY><<?;N];OTZVZ7G_*EW$A+?^^&KO*7NI+(/*$DBM,D
M@#B. HA2'D'I@"'H<Y;RT!,H)L@D%U>_:R/3/$)FKI0<4!6X]]S*KL[$?ENK
MC5&^_!V(C08 ;U4P<^,,1D7/M7.#M?/+U%43'WG?A?G[!N:M\.#F,LS&?J Y
M8I9\0X..1_47S0$Y]"$'M&"9N.%#7CT7%5Y4\R")X\03$>2^IW(],(%9Z OH
M>2)+?!IQ)HQJU5WN<FK^Y5;"UL=D@*UK$KKGFK_2$L7 #G'-$S2K.+H^*^NG
M&]B*/ +IP!$\KJD'=AU.@X#@" !M&H+C-X=7<,I7]>&9;/Y]L53IN5Q:-E[M
M0@=W89(>95% ,@;#!$L+%!(&4TP]B% JXBB*XX!Y9G'@9@*8S*-QXL0[\M=3
M:4\#\X)0!F.A9YO<X>O83O4"ZRZN]3K<+-:A,NA\]")5YL"<JF UH)6A1FY9
M1]JK*X'WZVI5//&RWJ/6-.7OUV4IY9CS*$1!0E+HITAN%?TDA#B+?<B8'S#&
MTS1&AJ7K-'J=FH.U$7K00;X>SJ'<<_,D0C!)L0\1$RDDF(<P]3)&?$2#,$Y-
MUQ#+2(^U=#C'6G>-L(R?\Z6A!>ZG%!AL))XUMRLS0+@HY+J@N.Y_UH$\\D?P
M7FX6<D7-KNHIM2K97"T,$+2V2.CT.?+:8 ##\9)@\O) VG:^POF2LTTEX@U-
M#!59QAF' 4,91)G<8J<ADC\B'E."*>)(*[BVOYNIV?H;2M=/ZR9RY0,7.<U-
M"=Q/HZEG=*['R+&5V0@(-A*Z('?O!<$6R_OI3L:E>^]5](CWO?_I 8F2[#\?
MBB_%\IX77WBA0D ^+<V3)?L:F=SD9O\I;6A]5+8J@)0:WG^\ U_D_]^+D?U4
M%*MEH1ON?!G*_KEO%477-[%F +I(K]1!:EB*96_+XZ59ZBBXEVJI]<(PUV!C
M:^[Y-E@LI_,@"I(T\C/H>9PIST!N5K)0P"P):!3Z(@A]H\HN)WN9FNU0=U@+
M5;;MF9=-,*MTJI6@-:<2*Q8+7';^:,BL=!IH/:?A:O@<&XVMJR %;&)/9Z"6
MT9[+T N!)8_A=!^C.@R]:A[Z"_T/#[0';56UMJC:Z0!2:8M>5&8AJ\/ZJP=U
MC]_]NZJG]J58_2\5#K&IPE 7TKM[5G^NY@D+"<$1AG'*/6E?< "SE#$H"/)C
M/TMQ&B,C^S*&U%.S5WMU3VAW=:92DQDH&K$-S=0HXZ]I]J8VJH[-Z(6H_1G8
MZKK)X&ITF-4%#.5?5^"UCOK:Z#D#-T_%VN:)SZA#8LNLCR+SN,O$F,-PM.R,
MVOG0' 6R^L;INJQC5&Y><"[_NN J)0(O^/:,5/[<G)"J ])M;&A&61#R(%9K
M$E?>KV).SF)(4BHHBD@H(BV"$1O"3&W1:0^4E9]L>M%[U9CHK1AC(>UX(5!J
M@)T>THQO-(&B**'29=9WT&\OP-<FL-82,JX09>2TC>M!.T[NL-#F0')$2I4S
M(7<<]\4B5W?66\X_G,7R_Z$4^DP5HXX$AR3!#$9Q%H6Q%_I^J%7J[')74[.'
M.TG!1M3!O*H] .N9/SNPN3YA'(:8.=OB13!L,2^>[VA<%L:+"A\Q,EY^8YBI
MN%ORA_R)/_#R*5_6_MZF F-[6>8QZO&,<.@CD4#D9UPZ6UD*$^+3S(L"$6=&
MU.V7.IR:V9#RPE6N2I/N) 8;D<VLQD6L]6R'300=6Y!>\!Q<5^I"8\F>7.QN
M5*NBJ_RA;=%^;RCMV-&6LW-4\NYU]\@> \FOY[RL'[ZO(^>_/Q?+CH1WHMW3
MSGDL$NF\$,@2).V3_")ARM(,ALSC29)2/R2A&>^82W&G9MUV<K<9"HH*I#V.
M!&NI!.#M&<+_58%59Q++QZI&)5,B*J=?0[\%G=X8CWA.>99ZZMWK:1:2EGIJ
M]X4T:@.E]YY!OQ/@VP2_!5-6LJE\$Z/2DDW@VQA 3#;&4%UF)G,JQ<C49&,@
M>LQ--DJOYM%8'\M2"76SQ(O7*J^, ['.O3^YU;\LBR4OUM6! 6CEUH^Y.@M8
M_WIL"RO701/],#F(K+H$RJ"@JK.-CA9/=4FM;BC5Q6<'EIX::G;:VZZ/OWA)
M\XI7MZWYJ>_+;I>K,E]6.?TG7JREY^%Y618%M.'60G&209(R#U(<L92RE+#4
MZ%IJ#*&G9IMN'A_+FBL1Y!LYP8L2M+M#X:UBAHG5HWP$>H<Y4QO:*6Q(2*_3
MV2JNO,]6=?F%M/YG71VY_5AJU2T6_1IQH&P5#QM#Y'&+D(TX"$?%S,;L>V >
MZ0)7U9WX%U9"K>[*K_GCC]67M3K$4V[QYB[R/5XL%%-(^US5/EC->8QH&D<^
MC!,40N3',4S3T%=,'F'L4\)B9!1,?*4\4UN2:G74\O.S$52.#2B5I#.PK)5J
M3L4V:@%:ZZ7,6?M"M7VC:JJ_JN]%MP*,K4'66Y=&'#K'2\YVU/ZU&[6OS:A]
MV8[:3B/P?CMJ_^J,6J.6Q81,._C:2M6\4IIQDSCM0'>4WFFIV6&F^W9)BR?^
M@'^I(+LES1?Y)CB/<;:FJYPL^,=?:MGA#?LLH9DTS=),DU3(/4:8$HCCU(->
MY(G,]\)4B,C$5IL*,#7CW-#[+KOB@GS%GPSO:(W'0<^<ND37]>F'$%QQB''0
M*%'S!"OV?["O2QWTW &_5:?E$K8?X#P44DLFT[C[46WD4' .C>+@=@;<%7^L
M*Q#L+*W*LR_6JZ\<LWSQ^H&WUX\JA@[G9>TOUPYW-?=#[&=QDD!&/>FW!LHJ
M>AA#E+ @2%!&$\&U[X 'BS$UB]@HTG5(?S:J@++1!;".,D!(;=H3%F/?],KQ
MT[BU'6547%O29D ZOF:K!6C5 %T]@%*D.<5HRT1H+F57#H;!M>DH@S+2=:B[
MP3&[W[P:T]Y[R^&MCW<?>34">_>,U[=FMI0QGL\_M)_L@]PA5+GZ;K_RYZ)<
MS:,XQ"C!*0QIP"!*<093%J00IP'B81('&=(B2.WK9&K+T$9.L!,4-)+JF;->
M0/M7#ELP.5X7!B"D;5-T(.BY392O-\ZP_(^=#]S;Z"B&0D>MC1G0>G9X;?O[
MDK-5^;1DGQ;XT;2N_=[+4YNY>]7:E:2ML=2];CN/TN6P@*L!<CQGSV,#_E*B
M6JY@?Q*&JZK7[[<X>N7ZDPJ=JEI_^L'!AVQRZU/Q#[SY]W;9YE54]_A5N0#S
M(,)RB0X0C$7H040Y@B25V\DXB5-$Y:?@A=B,^_%BGR8?]3B\CQL!P7,CH?$)
MV@60M8_,[ 'GV!IL9 6_;:3]75U*;X&\OP#DD,,O/7#LG79=Z&_LXRT]]4^<
M9VF^:&9A*NF+WCSQ,J=XD\S#/<Y\X7F01:I(*0HP)+[\$7D,$1(D.(IC'7?A
MN.G)^0FM='IVX@14_0;A.@!<^P&M8!:3F<[KVS>9Y5N=B2Q_VDWB$PV.,EO/
M*[*9ECU/C)IL5)\1W"ZK55GO$IHZ? \_\+*-W:A_WL1M_(NK"S_.;N1JC!_Y
M'^H:\ ->[<X/YEG,DRCT$ZA,@(K_\V#J10G$(O%Q%'$:AEK;_$EI-36KTUSX
M74/X-BEXW:8NO=VGX-C^VLAB:4Y^.^@T5Y9 X;,+-VQ^=[L+-=S !%J<0 T4
M4$AUCH?_CI_B*)E3;_=)_HT2K-[FTQPK(\O-)^ H<<NRL'^'_"XWXV,I#<R1
M<.:W/1^7*RG)_9HL<OII4>#5G,19$#'J0>HGD4H""6'&,PPCE(@D\+(TQ%JQ
M62=;GYH?U@@(&@E!+:+^Q<XQ=I=O=*Y"Q/45OP$81G<X9Y4>='ESW-IHMS9G
M%>E>UYQ_:-C![W::-V76;Y;L<XY)OJAOA/_D6!5S8G?+K^J66)5KE ]\*11I
M:_.CHNNM/N=+?JL""N<B]$E,40IIP.7T9IF :99Y$"<L)8GG\S0QXM"R*MW4
MS$,W4*+1KZZ6UM$0;%0$];UGJU7]5%?-FJ>Z G\I34&MJB%IE]V/0.\0^\V&
MUK&=>Y-1-3XE=X*^I1-UN[*->OKN!-;#DWHWG0Q;/I0<C5^Z86W\P 4OI0 /
M^%<MW_L?RE^]739!SO,X21(_#"@4"0XA"A,!,<T8C*(TB6@61PP9!>>;"C"U
M16!W/\:Z]V.L50*L\*^FR%P=@-KLDO%&53,K;SQ6>H;<Y0@XMM5;T7=$M#.P
MD;Z.YF_KTIVXQ;0?MC\42$MFU[C[42WK4' .C>?@=@;<NJA*J2JS%2]N'DM>
M[]DW5>L$)7'H<;GO]01$<NL+"14$^BD7*,4^X:%6[8C^;J9FZW:"@JVD!H?
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
M\6A,O31T7RG-@B:3<Z7J8RE2'TO1[O$5WC^^JCK//;?'5[@YOGKNY#8\*E@
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
M@2T68 -&S9,-&CCLTJ.-/XP6Z=1&%'YT^K7Q!^847=L;2&'O=N\K7_*?>/'
MRZ<Y$=2/A! J'XXH>B@*TR2F,.:QG]$D\(5G1 ]UH;^IG3*TH@$5"W#]W5T7
MV.%7=@/A>JN;N@V$#WT06KF@.P&,PWNY;F]O?AUW0G6=6[A3KPVS(Q_K(H[J
M5+582CO65O9)/$2%2 /HI0RKDFX(9AY.84Q8',2)EP@]-J7>7J9F,QHAP5;*
M@:623B.J9S:NQLFQL3"'R-A ]$)@R2R<[F-48]"KYJ$)Z'_XBEMW<OE*A1Q>
MJ=S+C^F'_.6]](/XG5 DF,6RYC22/A!5<7*,\* .MZ8)YQ ETHZ0+ R@P"()
M4B*RQ#?R/=R).C43U%Q7@6<E+\!R.PV>&T%534E:BP\J)?^ 6W8W8VUPO?[F
M(SC]>_6-NJ#65PUZHW%#PU;OHJG5 $WW V/S)MV-H.-?H3L%_.3=N=L>!W!Y
M_IDOY%9:+F<//XN6BH#X/L,9"B&1FU>(!%'+1A1#&D04H2A+<*151_A,^U.S
M]5L)@131@)+R!'+]1M@"'HXMYQX40V@Z3V!BP,YY'38CD7+J?2YF5)SG%>]E
MX#SQVGC$F^=EWN/;['ELH+^L$ED5K[&$=/'_KLN\8CE50[ZAL<LB',74@[Z?
M)-+I10E,,YQ!SX]\FL9^X/M:?%2:_4W-FM7B&GJE%Q#5="WMX>3:/U22UC<E
MM:R@*ZP##AI-8&SY9Q=Z&]?)TE/]R%/2?&V NW,C ?/OOWW?& L<H(#Y%$:"
M$XA\Z>6D(4<P83'G(LH$"[2H>$^T/37#H(0#4CJ#U?P + WO9C@$CN?\1OLA
M3LT!# 8.S7 X1G)F+GX49G[,:7U[?9B#5\;S7T[+NN>[G'ED(/DNK4D7JB_%
MJ@Y^_ES@9;4CT/K"5^_;]-:49GZ62.<EC$,!49BH_5>209X)03(2H8!')@$S
MVCU/+=:E20046_8XK-CCJAE8<DV^37/L]7P=)X@ZMH ;F6O'9\O@UJD',P-8
MR(4(W"P6Q<\ZAED4)7A?<I:OI*=42>#?V\Y+-@;2%L.O=K_CLOV:PG'$_&O<
M@'D9XR_%\@_95TNR\(%7M,SKXW+C"L:76YJ:$R4EAG_<W-QOR^EVA-8O5JR!
M8+\=L@^>8^/3AYN#DL3ZV RJ1JS1_&B%B/55[=8@-GAKF+?S@0LN#0U[P+\Z
MG IU+/\\8!%)/1Q!7R08HD3NM](LY%"$:9P*C'Q?2MBFT>IY.#V]:4V"_=1=
MQS9D(RR0TNXS?]0"FWDV?3CK^3+78C<2O_A T(P]$@TX+/D@?3V-ZG5HJ'SH
M9^B\8L[X^W&Y4N$5C8>R38!0IT'K:BX2GV0Q9C"D&8/(3QC$D>_!E,5^EB(4
M!(SKUAGHZVAJ+L?_1]V;[D:.8^NBKT+@'.Q;&S /-% #]_GEG/HFD)5I.%W5
M:.2/ $>G;H<CO!41KO1^^DMJB%!,"I)!R:H&.LOIE,BU/DJ?%A?74,O:FMZ=
M/)Y:7//& [WH]G.%3\P&)@I7N*R*+YM@X52+N7?@T4HSFZC7K=1L=+V#LU:]
M6<M2+\.K#KQZUOZPQ@>7THC$ 290IB&"2+??)4F*8!R@4(8A#R4VJMK</\W4
MJ& G:)7K\]S;3-H&3@//KA>0!G[W._ALA71Q^)X'RL+WZP6PD=S IX#SY!*^
M"$.O=_C\W>,YBB]JL.<SOGRU<VMR'>I3E\NX+U;_?E#C-#'-4<IRDN<IC$G
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
M#FF."8PDCM(DC!..C$JC6<PY-6IJ1:[Z/'2$;D-O+5-835 W8R//6 [M/K\
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
MIS#(4"(9S=)4(MNPV>-I;)[8<6)CVT+M.I]G*W%E8BX7PI@6>Z$U=:E?!]?
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
MF:=& XWL=5@):Z2O2C0!ULA_ U9;#8 4AEYL^S4Q,*F&0GI@2FE!_M36+:Q
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
MMU+I2<6.:I.>OLHA9.7CXG]>GT1S*-3$#80<!PG"$:1Y2G7(2@1)F 20Q4G
M<,9$G!LE(9Z;8&JO;2TB:&2TB+PX!5[_2^L#DH%?VWTT7 )23L%B$8MR)3PC
MA:$8/C1V\2<]JO>&GIRZ;[RHDQZI]P).^JYSB;;3'N'/3\^D*/5ZWRYX=5[V
M_B<I'\5JAA*1)8SG$',=<Y=E 218AA +E%.>$$5BYBS6/]?4"*V2%A1;<:M#
MD65U3LMJB6W"R_IA-N [?^ -3'TU;CM)JQ"S^GS[O6_<;(+SO.$W$C=>@:-E
MO)X1,OU1>_U#C!B[9Z3+?@2?V2UN.[FVFE<3)535\GJG2WEU*WE]758[2<%O
M_R(E7STLUV3>_7?MG?^Z7/]+K'<UOG8CU3=5,C_\)(MOSU7MT%G,$\'R.%:;
MQIA#O46$F,6*PQ-)!,\0RB*C[/(WUV1JWX4_%N6NTAKK*%=UM;P!I-*B^5*L
ME1Y@62MBMXU]NR?';,?\MW@>!O[4U:7Y*EE!T^D"W):END0T/05:_4&ERPWX
M^(O--UR[!VMMFJ-/A0%X56R_0\%?W-=D%LR38^'M]!C5A_'FRW7H+GE[@1R+
M1I'G0DE11;KP8KU1!/"Y:;+T;M,(HY.)9SE.4T(X@4C*6'\Q$21)]<44.8F%
MS 2QJNAG.O'4/G"-W$!T!-_UI:*;-5@T=*5L)FY92\IT,<P^0D- // WHT6W
M*S/XW$6W_1C<]:%K7T_*$BI?%:5,IQVWII0E&$=5I6SO=Z.NTQS;L3#>O>XN
M:0R0BD._;K1?Z)NL_G5UNUG_7):::F<XI2C)DQ@*2=6N@ 4)I#'5Y841ET@B
M2J/8AN.\2S@U,JSEU/655Y6D@&Q%!;\5B^:W_VG'@O[7U8PNWW2U1K3%N]IU
M#7)]5'_29J^-\]U:UWJ"G:+^>'BP-?!$V/[E&Y79!X/W\!,PW$0.7ORORQ<Q
M?U=4/@?R+#;K@JV:,Z,,4<1S*6$<QQ*B5)&]LG,1E%DN0AKG(>-&P0,7YID<
M;VM)P8&H%H[G'D0-G/5^<!J8,4]"Y')4V8.5A8/>#V8C.><=L;-SS%]&I-<I
MWW/[> [YRSKL.>,-+K_"E*:7Z9H>TG7CA/BV6:_69*%==_\4Q>-/[>)X43(^
MBGNAPT?4[]NR*!LR?Q#E4S3+0A(RRF*8\$!1;R0#2).,0L89R^-,L3"R<L&_
M@0Y3H_56;D!JP4'92KYM?Z9$!TJ4)TM_^UL\(!96^W27??IV?8.#^F&'Q W8
M/DH-&&"+!NC  30>GJW_MUE+G_N#D348?P?Q-DMT<H_Q1J+8%[!X*(F>28E7
M]84RK%VQ?]?4OC>-=%VR,<RB.(%(/]U?!\; +'P"!V\ML<XK[E23XF"HT<I1
MG%:A6XGBS!4^?<.="B*-?Z&B@QT/-+D*A[6%HQ#%*94A#$A((*(TA#0/,4QE
M3!#+1$09OMXO["C=U$CA?$>^;@&7UH>H5>Q:'FUBD&7%:+_K?8V_>(15?.NX
MC>-UO#FYA(/FK ^"_J!>8E?9)N AOA)6,^_PM9.X?2G^6(EO\N-J73R1M5C-
M(D7G@8PHY%12B!#ED.0LABF)I PE1YQD=OFR^Q/8O.?CY,(J^:K.JJV$=L1[
M )\9<[I#,C#U'6*AN&XY+YABLN:_@U#9:3@\<='!X*.2R6G%#MG@S%5VKS,7
MQ>SC8JW8X5,Q%_4IT@RG)$V#*( )I1%$4OV!>1#!7!"N_T4D9EU(3PT^-;.K
ME@]H 9NC6K,7^21P_:_QM7 ,_!);(&'\JO:IW+,/4[?5[ZCZ8?=JGAQLE!>S
M3XWVM>R]QK'<U7*UTJX4]0T7"U:(5?4%GXD\22G.U<<UQE7!7@9S&3,8ITF(
M@YC*.#0JV-L_S=1>5"TEV!.SL9,M,[G/@&KV!;X>JH%?8@>4[,M>]8+@J^K5
MZ4G&+7K5J^A1S:O^JQT",*J8Y<^+RKJO?+1M1924AHCEC,*0" Y10%*(\Y1
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
M&WO<:GZGU#HJVG?R(K<7=5N'X-WK]L?_MQ"E&NCGZQ?QHK3]5:QF+",!#L(
MTER]O$B$%.9(IC#"2292DJ6!77-PLVFG]FIW*F]LA:V*='R]_1/\T!);ONR&
MZ)NQ@'],!Z:':^"T)@P[=#PQB>&DHU*,'1"'W&-YMTLS![(67U[GHBG+'Y$L
MIG&@J(9(K)B'(H@CGD""9)Q3'B=Q2LR;.>R-/35ZT=*!_R!/S_\7:"%M6AGL
M8];/%U<B,?09Q3X(3HT=]M&P:>S@C,I8C1ULT;%L[W!2__[V#ONWC-C>X:2L
M^^T=3E_B9BG=B[4RMP3_2,I%L7A<W3*UXINY3F-76ZJ"J?V^B$F* LXAEYGB
MJC!-(5%[')A$(<-YQH,DL2R]=WE2FX=TG"BTCHR UT+:644&2)M91'[1&YCX
M6F%!*RWXK8MD([!'?XHY.IZL(8,)1[6$S $XM((L[G2P@*H#GW=D)7C7$7];
MENIQJ:I8O'O=77)'7JLV6G^1DNOZ<NO7SXO5NJP^1JLJQ/;A)UE\>]9#U'__
MO*B+O,\05[NZ(*902D0AX@A#BJF  2$BCX0((VJ4\#FFT%.SV>KX<>OF$:.N
MLX$Y.,'5&]HWI=6!E3Y[YUV@HS1X]PJZUS6*@TKS&U#K#CK*@_IQT.J#1O^;
MYG>?%TU?C D^(!86\@0?E)%,[^D],':V_<@KU[MI&$N6\78C(Z.[M\T9>V[7
M4VFZWDWU2;UD==3A+ NR)),XAV&N_D!59I[$B=HZ)4F*61C$S*KNQ+F)IF8Z
M:#E!L17T!DAU'2 6T:H7H34]@+X>L,&/G!56GSM8:2F]EV6X!(2W,^4STXQ\
MBMRO[/&Y\87K'78Z]^)%+#9"5U)X7!2:<MJ^*[>+Q8;,&[*:J3<#X2@7D"<B
MABAG,<1A*&!*",N#2"9(&H6JV$PZ-;IHQ ;E3NX;L-CVDR*5[."Y%M["R#1=
M X-=Q #(#NYTJ4&][X*Z:Z54B]V:<0. :F%Y#P#N2):S'Y#MK%U+M'JM5=.Q
MQK,V+;7;LQ9M[W7,6>S6)6Y[O,\XIBB@(H688,7C2<IA3@,&I<!1%& 9D#RU
M<Y"?G&=Z/O%&P*9@^']9YBF>Q-+,MKL:GX$)^*!0./C1RN@S$[$/ U_YAR?G
M&#?KL$_-HUS#WHO]E%_YLJV=21.9Q21A,$T9UQ584O7>YQ1*)D4>9#A(N%5+
MXK,S3<UH.U%>Y(MK6=+S\)I1@1?0!J8#1[RN+LERA,5 55F^O$VETHOJ7JK-
M<GR#PV[OEC&]8=1=AIL>>1V&T,Z>/$VA1#K,)Z/*,D@XU\'")!+ZWR@RWN'U
M3#0U@MB)NFOF:$\1%^$UV+QY FUH>V$<O"SV99YP&VDO=@(_3SLN QQZ=UE]
M]X^WLS+08F\W97*]:];W+>>E;CVLG@GQK;PKER^%4F"& I+D(4EA%NH^'PDG
MD#!E5J6)D#**A<R$$55>FFAJ5-FD*3?"WE3U>H6"%+0"V^9XG\&WGRM]HC8P
M5[H#YI#1W8_&%;G<9P8>.8N[7[WC_.T+U]MG;NNCO5NVWI#Y_%5WW_MS=:+6
MA'5"M]VH4V.$_6/X1HVJ-R%X6?T?<*[<B7G:MR7H_<PQ+-X#<XDCU /DC+M!
MZ)1*;CG5:!GF;A!T$\\=1W!,!F4_!=_,Q3?9^)Y7GY0Z'W\IBEB0^?O-:KU\
M4FQQN^!?EHO'+\6+X+5[ZH'0N9B%21[CB 602MU2DO(8YCQ$4 :4DS") YY:
MU2N_3IRI<6"KC3X#;/4!^G$!K49@JU*57*65@I5639=&]8YJQ6SS5*];5#.7
MU7A+-3!]CK!*]BFT7L#UE7-[G3#C)NEZ >XHJ]?/J&X4_56L=8/RRD[E@K][
M_6,E^.?%MGK[K6ZF4JS5]G9[_H1Q2H*4(D@9U4G](=$_Z0K+5$24YSEFL=U9
MWO]/W9LVN8UC::-_!1'3,;<J0NC+!23!Z4_IM-W7\;KL#-O5'6_4!P76-*>5
M4@XIN9S]ZR_ 1:(64@!$,CD1,UWI3!(XYP'QX  XB[T0\[OH.Y0Y('MI+:_[
M',;"C$W'Q7=D!OVDBT0HZ4$C/J OX!>M <C6O[;*2QRT&.4RT1W$@9C208!)
MV=$=H%-&O*&EVXLIU@DX$ ^4V4D(%*&?0A0$"*9"&9^IC/T@90DBA+M64IQG
M_I+3"H%.64PN(&G&4;?A,_8FV!*:FPHGCI+:Y$('KU8RL3_)2<^3=I.[R+?+
M3VI0/\O?R']O\L:0JK]*Z@N%$8YA&'H2HBA*(:;*GI%I(!(<^8P%S&1^]_8R
MNRE>2V<YN?N1[)_?@^$S]A0WAL9X<ANIWC>_50.MN:W^=9C7_6U/,K6-U&MF
MM]G#MQXS[6LOU/Y-Y0[I<$P;",&)T"LY"]6:'A,$22(9%%*DH60(1538[5Q,
MNY[??J5],+&7O8QOVZRUXX?KH="5(; ]_AD.U@D/>EHU5?;NC:7@XQ1<L$5K
M\).;*]V^TAF-&1C=IS&&[[LF%;$ZZOFX=U!A<9+*$!&8"";4OB0D,$5>#)$?
M)6$<2$2154(V5T'F9MJX'JY^=/7*=!Y!,PJ<8EQ&IL0QA\0AZ<EM> Z6"L51
MC(D3I-P&UGG:E!O;<S0,7>.CFRCH0^K]+YO5ZOTFUW]<QE)BFHH$2JJ,1T23
M!&*28(B]($U8$(919$7!XX@Y-X+^M(]8K.H:6!J8XPREH3GZZ@,TMO%JDN*"
M]J:X."2Q."@+_M#J@EK?(2W>40=D*/MX'"&GM:9'!?K,]AZW-_OCPR^"K-X5
MVI5/+5)'N;Z><\&R4KSJ5.,AWSR+?/M2GXF% 4-85U%-"2U/%R5,([582(]X
M+&1JW2!&R4MO$6)V"X#ZFZ;_1DJ'0TCG\;A^1CD%RF/?E%H#;'64>2M"-YQT
M.G<]V4'HK>"TSTEO;LLQBK.Y7OTH%+]^S C-5MGV9>D1]>%%+((1TG%9.(DA
MQ5$9@, 3&=#0-RLS=Z6?N=%5*1W8T%7V6")N:;!VH9F@4 J>I@I-+*N$^H1S
M#V(6\C3@-&*(+I_+O$M?MR3?3H;I:9_C(?M&/&9KG3X34*+^P,0"K$[!!A!L
M]IX=Y5^5:;GN*5!M-0B,8]_W)(;(TX,08PQ3&:@O//(02YGT6=0,PCNU.YUV
M")H>QQN =Y5U_EKHFVVZ!L!SY/7VX'I4BK@ >R$'C%?N1V&H:.6.7J:-5>Y7
M]2Q2^<KC@Q1+_D?Q($3^]WRS>[8.L3%L;F[K7F=$QS\*H*4'I?@W556^B&H_
M*XP$Z,@,88;E"+$REE -59SY8A^O6:VY3^DKY9M[7W6SL-\]/:\V+T)\%?F/
MC(F.XXY5.;3J)^T07N9J^K?@52;.LCK\X28IYMA#01C!E'#MHQBFD& _A-)'
M$GNISWUA%2 SL'QS8[9&/5#K5Q]GTK-CSP4X*%D%;C1JUIEY0:GH#9>'0W\)
M9B;5*X[OA ?8^X/IP[GAHBE/R<L[QWORG*GYKO5:U+E$1[IU' GQ@<R^H:6;
MU%P<"=I3,W.L;AS2Z-QOUJ6S^S^S[??F]G1O]SYL\J;_LD1%_EZ(99I$(?83
M DDH/;7/#6.8LD1"1D+UEP@S'ALYL;MU/S?^;Q0 ?RH- *M54-O?1HD%>*[4
MT*2?UXH *6PJ<MD/4C]WCP_]R-2\1UT+OW?^:&V6%Z#60.<$;70 [T=&W2+1
MSZCH3Y3^9X11L,L2Y QB;^X@^U:GRRCDK/%1GB'W5MSV*/\0A3Y4::(DHDC&
M84"A) &#B$<!I#HB'U..$/<]C*+09H=QU/K<UH=:.,?(IV/@S QR9SA&YFQC
M)*P-XHL:#V3.'K<]J3%Z4:U34_+R0V[3],.:Y?K<\ZVH_OMA_9"+9Y+QILI[
MO>&Y6_,RI6/E6+=D,N6^C!%,DSB%"%$!"8^551A0*B.*XR2*EVOQJ*\;S6:T
MFR!&WWI:?>MM<<;[Y&NI@:C$K9Q3-V56TBIWLQT;.(Z/&6V,B/DT_-(H 'YI
M5/@59&O0C$$M?CD$56+8N_XAL*:AVQ <B*\<A9B4V&X#ZI0!;VS-_DKG[O%Q
M^R[/RZQ'3UO3FYOCM^9FIBCI\I(2@9)QLQ:;77'BM&E12>@"2-<O8MSQ&9E7
M;H7&ZH[E,@I.5RDG34UV8W)9A?;%2,<3-P4]?1': -*94T4N-_F3=D+XO'<^
MT!3 U'K_+7M2CWR67]5O"ZF3JFS6I7?*6^T8]3,KEA%CU.-)"(7.08.$#"$)
M8PKCD'EA',0<"^D0"C60>'.CC5J[!=CK!UH*@H.&U6&YUA%42I8^^RTURX2B
M^19H3<$?6E>WT*FAO@,SH^GU1G=DTGN=@74-P!H8_V'#LH82[C6"M08&MB.$
M:^A>7$M*2EV%NSP;R^A.-_^@YH2^:CE<ORP3RB,6(!\*'.JB0TD*"5(_L5@F
M*"&A3#RKZW&C7N=&^[70@+6D!L_JD87Z56%=;]($=S,^'AS-D6FV ;(M,'@H
M@;SO ]*A&*4%,(-5IC3I<^(RE18PG->LM'G985^Y6KW[*9AJ^(>X5YSVN,DS
M4?PF=(BC\2ZSIXVYL8B2%>R%!0=I+3:9?8@9;#D' FOL#6@'3N"/2M2!W/M,
MT'#;B/8U/-VVU$"]HTVJR?..F0'[KM\^*56JW"!+&041#J,$,@_I@W4OA6F$
M QCQ*(E\$A'*L%UJ(<.>;3[^:3(+-6=Y(&\V)FNQU5N-6N+&R<(RL:#A0)@9
M'R. .S*S'#NO7+S /\@]8&)".Z"&RE9HV.NT*0SMH#C+:VCYNDN=M<#ST[LG
ML>:":W.G7EU]S/P8)0R*R(L@DK& -(P)I#PF7H+".$@L2JQ=[&-N]HH6$M12
MED:Z37FPRRCV$\M V(Q,(F>P7+=+C/&QJ9QV,TX3>4V9?T:6)=-Z >BOEG;Y
MU0D+I?7*?EPCK?]1UTN$0NWI]"F3SA%]MR[_\^Y_=MD/LM*)"R__MCPHCF/,
MPB#Q(:>$*",M2"!!/H(1#2(I6"A"89D[S564N?'E09,JUWKE):]^:,GM>-3O
M/%JFQ_I3C,'H1_BWP^]P('\K<H,=OCL+,O%!^ZV G1^JW]RB@YE8'^7K9&R7
MC-(Z?N:;R)^*940C%NLTV0P1M:^5"8(X(!2F5&V\/99&E!E1IFW'<R/()JAH
MJX6S,)9LL#:P,$="<)H;2J#%!EV>Z W"WT9$V,)&'0GIB0S7 1&WLVP=8.LU
M=VW:F\X&=M#RR#!V>=_-6M9FM\X55%I4OH]0Q#"%L2 Z*UD00,)P"F6$J>>)
M1"!JE)7L4N.S(VR]NRTS8KF8K4>PF1FBKF",S+W&.%C;CY<4'L@B/&IZ4AOO
MDE*G5MO%9]RFYQUC^4YMCO.-%$6AE@2R>B]$46<<5Z9?ZV0;I1)1'G'HR5C-
M7I10B'U?**,,4R1$1*A/;6:O1=]SF]RUZ."Y)7OEL+_;%AD7H*@C_*6P331K
M,R)FQ# 2SF/?9-80M\76X8 #.N$[ #,0O]CT/"G].$!RRDXN3;B1U[><\(.K
M/F/:M;KX(IA0&U6Z$K^O:;9:"7[X3?&P667L91D'F,4R3J O PQ1@ 3$8<"@
M)R3"(L(BC%,;)G,59&ZTU@@*#I+:D9?SB)@QV10XCTQKI0KMP*):BQ;D"W!A
M' H='ZUU 7_4_QVEE,NM" _$C\YB3$J6MX)URIPWM^=8@K=,C*]CN+5CA&[W
MJWC4^[]B*;TXY F*(4J]$&J?54B)ET"&PP3[RN0+<&)#E-U=S8T*#]4"\KVL
MRJJKA+4LJ]N-KQGM#8/:R,1V .P@)OAZ#3#[*KA7L1BJVFUW1]-6M;VJ\%GU
MVNMO.*:/([GVO"\>1%ZF(=I7@0Y3P3W!*>1QA#174)CZ5"J:"! FA$0^LSK7
MZ>IH;B31R*GC7:ID;B:5G^VP-:.((1 ;F2#<P++/>'8%B:%2EW5U,VT.LBO*
MGB43N_:\JY/JTY,.L%&VZ#_(:B>68>1CAF,*$T:\JD(1K2P(Y/L1E=*++ M=
MGG9A\V%/XW9:20@*+>("_,7[J^=Y/G@F.?BA!0;/ZK,O-.A_ TJTA?IK]<\"
MD-WV^R;7$0%_ W&Z2+VHW"#$T0+[?O-05A2[.GW@IE7AAFS!6V4/:L;_S__P
M8^]OH;\ ^FLMG[SXIV"A;)I"!TIE/\2J.U>TV5";\=,MPS<R+]7C]K4:MU*Z
M!?A0HCVD&^ME_0?S5SUI?F+'U,O*G7N@=CSG6"\B?R3K[-_E3>;]9EVHO1"O
MLB&N^8/Z0II;SL_R?;8F:Y:1U5==U*(TA0ZVB\2Q1P(?XA1Q156(01H*!G&(
M0D]&//"PU:GV(%+-S=!I*Z7#S5IJE3S35DQO ?:J@8-NSJ;1,.-LQE.3C][(
MY#;5P-G7%1@2Z*&J$ PBT[0U"X:$\:S"P:"-#U$4Z$OV^'W[6?Y>B#(SS]V3
MCN3Y]S[T>UV(I:0!#B1.H)_J0*B(8(B)%\,X%5X:^T'L!59[45L!YD;=;1&;
MY&( @EPK C<2[G2>JZKP;;OHBB8'68ZJJ NPW%)[Q6#<DI"&*6<)E$)GADLY
M@81%$4QXY$OF2RDBK\D,]^V5A^\X,=RWJ4=1'TJ>#]_(XV.X?HXX6\9>*D^K
MZ7QI,%;R5PG@%G7Z_8R!+X+O6&\4X8VE=LRQ&Z4&CT'WKUB<QQR<_JH]%NTX
M+E_U58Z^$6^"[;(.;XXH2"7W? 3CF%.(?!I"*JDN>Q>B-(A0E"9V=>[,^Y[;
MHE6*;DEH%D@;<MDX^(U-8\VU<ND]TY)[0**R!V8HCK+H>5IZLH?DC)D<FG#.
M7E0&R']8L\V3^$9^UESW1JR%S+;:(SA;[W0"I8HLE>F_WT:S",4D]C'DD8['
M8)Z 5,>Q13B*J:!^&$16KC,WR#(WTMKG':"5[/]EG=O(>53,"&TBK$<FN#W,
ME1I Z;%/V/M+K<JOY5E'K0TXJ#/*4<8 L Z71<E9DJES*]T*V86,2S<WZ4:G
M7]EWM1E8B<_RG>IC^_+/C(NW6<%6FV*7B\_KOXO-8TZ>OV?L3B<=_KA1QF?V
M0_ JN?"']8<USWYD?$=TP7B1/:[OM>./SB#SYJ7Z\>50I9#+E"9$4*CH-E#;
MY$@G4&<(TD#$8>HA3X3<[F9M2O'G=VO7:*\WU5HUN-*ZU?F^ 7T!!_7)"F@$
M[%A]TH_#;!F8ZX"/O&ZT1_J@+MBL6T-<#G"QJ+Z$C^TO(5N#@]Z@5ASL-==?
M2JT[^.-;Z?LTBG_F:XS=0(O3I*)/NIJ]QJ"<+G^O(L--6;B[@@_W1JV(_3#T
MXQ!B+#!$L9"0,)1 F@B=534A3%JE3S7L=V[;BB:45AZ%TAYEX7*^6C4="K.%
M902 1UX3!L+6-1>U*5+#)IF^VNMK9(\VA:(C+;3QZT/D_%DF/L.>""1DDG"(
MB/J?5,1"_40%00)%<2C<\_C,CX#VR6&8$F_1Y%&\)1&/4W*=61''4<*<L9+B
M#$X 1XV_8O*:[NE\\2FG!,D'D\8^,?+9NW.;E#K1;TM(JSS(Y\#TS\8A,!EY
M/I[ ,7RZXT[E7=,<GS<X97KC3G5.TAIW/W?#?>BGS7KO:%(=US5.!J'@B*4)
M@]+S<.4WGC(_@$$<1#S%A 6I_15H9W=SF]/5U5U6'6O_4OOJ_%JE+_[E+]X"
M_"7P<.F9\Y<4AY712D N5MH+17N:;U]^=;@T[1Z.-/&#*-7)MZ*(J1T8BR#Q
M$Q_&/H_"- D03P*[P\;A!F2:X\&>(1D4:8L;Z4'0F^02NBUI<UOS2RUL]X?J
M=AU]%94A;Z"[.YO^TOFJXA?OF:^_9<?O7&3+ZN#I?;82>9T$_V6)8B]./8PA
MC5$$$8XEQ *'D,2>3".::,(W(?2.]N?&X)6(H)2QJ;Y@&&#3A6 _,PR R\A4
M8 >)\>2_HGB/5:;>K":Z^N$PO[O:FV1"7U&FF<'7'K/?)2D:>!";3V)S]^/Q
MVV9+5I:%2KO>G]N\5'+"AW>?P2?U_W?*<B"/ I3RWE:XM!.^Z_NI(9 ;>>8.
M YK51NL:*DZ;K<Y&)]MP75.KO>FZ^JRCDT(3F%%>3BXI3RGS?0HI01*B,.9J
MHQ5A&"8ADF%(6$2M2I<>-S^WZ;^7KKZ;M;PE.<'.S%9W1V3D:6T.AOWM]$6=
MA[H_/FY\VAO>BXJ=W<%>?LK>DJY]/M]G!2.K_RM(_F[-=>7*91P'@>!1!*,T
M32$2)($XB!D,L8BE'Z112HV\+_LZF=ODK>4$E:! 2PK>Z=AV):NY:=T)Z77[
M>@B@1I[33AA9V=K70' RN#L;G<SJOJ96V_2^^NS-[H-25DD9]CZ,7U3SNE[D
MFF6KK#2W2FHY>'QYB"%.TP@*X3.UCO,8IF&(H!\E$9<\)J%GY8Y]BS!S(XYC
M6;7;UT.^^9'IE)1 ;O*6_[ HU,YTQ7;502K9@NUW409 []2$> %:<;#=]+SN
M[!-H/^*&UL=$XSBVK=+RV=LKTG;\+H?F9* G\K]SQG5X?SI[45[+/\X9M!Y_
M-_<V74K<Y?\6G-37IDP0CU%=:I,QQ;Z!^HEZ4:Q]U;A07S1+$#8O;-=J>6Y4
M6LEF4Z.M#5,_9=VD_,C\4XGE5*2N#8!-:3I'(":JZW'E0["L0G=!U_[:<^T7
M)JPX=T'.XSISEQYPLP9_7^?[^N"*RNKHE6+I<^P3BAFDL>^IG9_@,(UY"%-E
MYP4\P3((T^5S&9VN#)=\:V;N=?1F\^&=]CG>M_>&K,IT%,H^H^(Q6^M,=MHP
M>%&FN)T!U@4RD1AY-/9@% D"42H\2'P4P21DBM9]Q",1U2 KVW]BB)L>)P%8
MZ#1S0T)K9K8. -;(*T);PM(";60<SL:\ L) YF-7+Y-:AE=4/37ZKCWN1KE[
MN_&NRL.X?2FK[D0^]VB .22>+E84"*:=7Q(H/10)'DOI<V:SM;[<S=PLO=;>
M:B^G4P6C#E3->.!VK$:F 1>8K(F@'X6!>*"CDTEIH%_14Q:X\K3]+;B^;U-C
M;7KI73\^MYE;7M6JOYM?7S=Z]\])1Y5'GH!7M;6Z=S[1S^F:N6ECLEOE$Z';
ME\BG?W(L#*%D(,7WS_F#,N[K?]RQ_]EE1:9WF?5O]KG_/N>Z1NSVY<.ZV.;E
M9E0G#<QX'6Y?)IPNJL2Z_M+'B10I3B'%7*VNGA0P)22!,1+$)PD-D&=5"GM$
M6><VT6M=U%"6/K]@7?^;'-1=['\I]PD]U>.BU!ED>Z4!:VN].,DU_4NVKG]C
MZ58\YH=C9D#,Y',8F01;7X+6$S3_OFM_"<TOW[>_A$I=<- 7W!]_"97*@^?!
MGF!<AJK_,:*DTQ80&1_RLPHD$W1IMZ05^79Y5V3D@;!,9JP^ER5I&O/$2Z#/
MX@BB-&:0^I$'!0KC*&0A#;'1^?W%UN>V;-P]W-V;T?AEL/J)]V8(QC[)5[*!
M6K@!H\-ZU>YC(O5BBX74OPX,=+G-23BC5YUFEO<_Y%@F.J_3-Y75 :H9?[<O
MB['$//!3Q&(8,B1TZ5D&4SUO"48!U['88<JM"D?W=C>WF;N7MBDN<E8WQ-U4
MNP*\F;4U')QC[QKW2-;E/FHSYR#L@.6IC4 9JF!U?V?3EK V4ORLJ+796T/D
M;Z@=N=0>% <4"P8%H=IY*HHAQKZOMJ2!K]9^DJB/R#V-P_T\4^LVKH+Y<5:'
M6Y(YW%NEU;T9I9$YXB2UPP+<7TEW<6..A_M1,N5>[N,5,S[<]V>_[7_X5L_*
MOV\V_,]LM3JXT>$T];"05-GZ0M_ND!A221!45@;U4IX$/#8*3#3H:VX,T':J
M:X1U=6 \!]:,! :":V0JN(341.Z%G; ,[CUXWM,K.0=VJMSM^]?]RG#;D,^'
M:GM++TIYE. $IA03B$AY8*!LAR@0PO=E$*6I?^L^I-7?W)BC:R/2+D@XZ$ZD
MC;W[5L01T5?:B[2D'7<S<@&6$7<C[=Y>?3MR0763_<BEUVY+P:]OL<L,G.J'
M>_7O;'M/\OQ%;O(_2<Z+I0R%CU%((.>)(AR*8Y@F(E(&"T9<>,A'R,H)Q;#?
MN1%/):)EF(4IQF;$,@)R(Q/,/E%^Z:52RKPH?Z[$!D=R#Y\.WQ"H@5/?7^OU
M5=+<&T+1E=+>]/7AJ*CY79T4IAWO?[?FC=]=28IO2*'V;*T'[C?%=LF0(BV9
M1M"/U:8*899"M=L*(>8!Y8)$2>B%M_+6K4+.C>3*A092+2I@+5EO9[V;A].=
M(J<<I-?BT_T?:B47QPDR=,*V1M':RH.EKL>/:6W'9>&AQF)$RKY9Q%?G]Z%
M-ED,!NO+;>6H+_#7CU\$$]D/?2QRMUIM_M1!!.\W>;54?=PH:8N/V5I\V(JG
M8ADEU(]"[,$4J>4!R81#'/@QY'$@2((2AKE5Q+*+$'-C_KT.X*#$ NS5*,.-
M:Z--:P+^T)J 4A5+KVRG(3-C_[$'8F1V'V4,K&G[%A 'HF4G$2:EW5M .J75
MF]IRB!\NR9B>DO%=GJMOL<P=0U\.CSR0%_VK.VWF_T9^9D^[IW=/SZO-BQ!?
M=[1@>?9<OEUFX%KZ21SZ49K R!>I8E8_@MB/?)@$/.(A$RCR$N-HY/'DG!OY
M5@;9N=D-R$%97=ZG:#WW7"D,B-9X 9XJG8&HE09%2VM +++*C?V-]%/YC$9^
M[)N=UF >9[,['O3V<[6NX*X:]%I=T.@+V@I;I1(<>] MPL_G,?@3!;._]D=@
M%RT__M#TQMZ/V/UTD?SC8WB4%V""[ASO.:N^BF^;TBT[%V52Z _K'Z+8EG]8
M!CCU<$@9#+@G(4)$0,)2#OV(A5(&$4OC8+D6CSICDN%=Y[4^C1@BK1BBW?-X
M!'$03M?_6V_6\(GD_Q+;T@&@$&R7ER6:Z^3\ZO_U4<\O?TD6<>C]JE^Y+3O_
M]5%* LJ19#$,PL#7Y8>8SJR-(4-!P$2<$D3]9I2^65Q+CS!4WR8)7MY+V#M@
M0P^#1"E)_$A"/XV4Y>V%&!*?(TBX%*&'XT1RHSB"8?&?-&K\=8 W] D8$LZQ
MO0)J676^N5I:4%53:,D[H%^ *31#>09<[6]:WP!3]<^\ XQ?= R])5M=ME,>
MBE4O*0DDCI(8)GZH4XR%#&(/*;I!.&34"X6'/;MB+.>=V$R$:0JPO!4'<WHC
MP9M=D:U%84DD%] T8X[;$!J9*BKA-"KM O>C^"5VXS!4M.5Y!],&278J>!;;
MV/VDZ_T[W1XB'S^LU7JM2$3G,"SS2?,'H;X7M1=^%$LNB2])P*$,9:R+O^O\
M5&$ ?>$1*9/$BP*KK.WF7<_/X*AD!6H,Q (4V\K(WLMK>V=N/ 2F-^%C #OZ
M_3;=MB+"%V /\I<2Y$IT\' =9(?;:EN\!KN#-NYXXIME6T#.[XNM6[BQLL1G
MN8_H?MA4D=[[ M(A820@FK2BE$#D"U\QEV PB3P1\]2C?NQ6;Z*GT[EQUJ'P
M@EJR#]D8&K&=BW@;#8 9;PT-Z]BG^+<CZE[CP@"BH2M?]'7Y.O4P#$#HK))A
M\J[##>NW/S=-]>^FO&WD\\B+(@PC#PN(=#TZHLPE&$>2>W$B2"2-D@UUM#\W
MHE$2[LO7&^Z4NI SN"^\#8^1&>(("I<\SA<PL;A.NPV;B:[!S#X7N\NJ;L5[
M+YDNO#;=Y5"WS$>7.CV/N1I0:K/^?;-2;Q15(IPE09&.34>0>3R$*%#_@X7'
M(-'64AAQ*>)DN=75P4S-I=,NK#AKW]&('V%96*YHR?F?_X$#/_E;G;3,UB0Z
M@S2-XSC",H*^'RD+5(0"IAQ[$"<DYI**4')IGT#[-F!?/W=V)<'-X#(:><J<
M#Z#Z/A6X6%)($[7>XH2))(D2YGN!;>+L(:!]C9S9 T%J:K#? M+(BV\ET +<
M;;=Y1G?599"NHT.&S:?0#<)@!OA9!Q.;VUT*GAO7G4\.6H_@VW>R_>=FM^(?
MGM3@;_<U6.KJ*TN&@T"FBEY]SU<+6!@F,$U8#!.9^KJ8O.2157I/-S'F9I@?
M)8_?DI^*BRL]P%8I O[4FH"L5 6(?;DC_6!N7.SNQH$SHYWQAV-D:NI,XU^-
M1*D$J+1H%9YJ*DZ-GNO?$,AQ2P%<$V(.E0(,@3(L)&#:VJU)J$J6KG>3DLE4
M"N'#)$H]B%(?*Z9,,(R3.$T"'(2Q;Q4/<[&7N1%A*\=2*:5K]JDVD'&"4<*B
M /HQ4C9HXJD]$XLH3)E2+:4D#7%J=S]^,Y337)%_^7IG>1]^&4 SZK\9E)&9
M_?33&C#9IQ$$@^?O:O?Q2OF[+JC9G;_KTL-NA%D9L%_WWF/_S+;?-[OM%T%X
MMGIY*Q13/65KO:MX3[+\'V2U$[\_:_?9!R6)N./_O:N<<>[6ZQU9-<[P*<$8
M<0*C-$00Q43 5+$LY(B0*$"1\"2QX=LQA)P;7=?9PEL>KW]66H*\4A/PEIY
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
M,AW]79;UB+HZ'G&._LCU9=Q;4?WWP_H\G6S[OC@5$?%3EBA"\F*(.!<P96D
M8\EQ0B*61*%1P7G'_N=&7XWXX)=&@;(&;%N'_P?4&99<+O-=A\GL?&1$\$<F
MSA%P=PFJ<$%ON$ )J]ZG#GYP@>9"0(-3,W94*!A??E+?&G_W\V#894SU\'Y]
MN"@QX#2CAN;&8*7 8"\Q:$1>J!FSV:XWICFHS5#LYZ7! 1R9A:YC-_!5DA5
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
M.=&?M3^M@WR7>F?.[YT/NDWJ0WZZ'T+31>.<&6.9>%%(H/2$FMH1"R#&DL$
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
MAS4OL]88>H0<O32W26N>L^=<__ZY>9/J(\_'"^GQ=;$?GOW(^(ZL!LKGTXF
MD]O&<4N3N6I<5*#MGG'Y@1M*,]XU7AF8H41(!&,L,42AE\ TBC&DG'I8QCB)
M8J/L69<:G]LTW%??NW.H1WAG[I]Q PPC3\D# K>49KRS]]2X 9*I2S-V?QQN
MI1GO+'PV3M^9OC3C78_G1M<S;D;]VZP@=2E -;"?96U!E&?8AX/]V/,PBJ@/
MN8<#B!(_A)A2 5/& F7EA]AC5AD]C7J=&W$="ZVWMU]<,OB:(6ZV&1@<QY&9
MKQ/"46]-K% ::/M@UN>DVPDK&$ZW%W8O.QXPZ!.V,AD2?[O31VL/(L\VO"P&
M^$G\6?ZE6/HBH;Z(.$RUWRJBDD B_  F(:9^&@0R#(P"X:QZG1L7?>@XGUR
MM2@]*/8'F*SWX.V&<3 \KA@:W9$9JI2W2H7&024QJ$1>5(51%T")73TPX'FF
M%4Q#G7 8]3GMB8<-#&<G(%8OW^CK^D5HE;)5E?"G]LXX_)5LQ=M,7Q HDSDC
MJZ6?2M^G,8%1PBA$'!.8^M*# ?<I"A@57FA5[<!1CKG16./5LJENW77NB"WY
MJ68>V0+>R W4GWKFVJ#C9$9J$Z _,LV]4U*Q;?9#@);_K987'*NTV#L>G3[7
M5NQJ=2QW=UTWA(?VYK64XG6<?=V@ZO0%=FS.C5=K<_*]TNY2<J%W/]EJIX\Q
M=98A]7]<2;"D,L!$$@$#$F"(8B(A34@*$QFF* RY%\:)G9N,@Q3S<YSYMMF2
M55-<QI(V78:!4YKP!'.(?%]"O9C!-!$>)!)+[GM^E(1&9;4G&H0)KP<G -]L
MO1H9THEN%#7U@:ZD<GL=0*.$7JJ&6Y!N@'"@Q<A%@DD7HAL@.EV$;FG*->%.
M$[2&TYC14$(OX(K3O 3!E% *_5@FG"%)6&B4(/.TX;EQ5)U$QBXL[0RM?OZY
M!8.Q#6!#]1U2YUP-+#/-F#-EZ%B7^.?Y<08)#;LGQ?>[-=?_T4EP?Y"5=ECZ
MF*W%AZUX*I:,J-VR'_K0YRQ51H6'E&V7!#"A@6 T]3$)K0[YKO0WM\FIY2QC
M.,H?6A*#/[3,H!3:,I3T&N1FIL2 0(Y]RWH;AO9Y9LV0&2JY[)7>ILTH:Z;Z
M61I9P]<<*I,]B377U]5E4A:. Q'B*(&<"44F-(@A3ED"14 2&D:!3&)I7)NL
MW?+<:&,O'-#26=0G.X+K^IKN#,+(4]Y0?[LJ99=T=:M3=M32=)7*+BEP5*OL
MX@/VD^ZC>"2KRD:X^YD52X2BA <(PRA6]C.B80Q3'& H<101'\4H1-QTVIVT
M/;>)5XH'&IM22VAA4)_B=GW^W8#&R#/0!@BK:=BALM-$/&UKLJG8H41[,G8]
MXN)D>&'GW$0:O7P16V7%B_R]$%5<L+[(?Q#J,UAOR:-8"B:B"&$,/82)V@83
M"C'G,61)Q @E/HM29NZ1>(,D<YOJQP=0;'\ M6KT68"\U@A((1: [972^<]K
MK6S\_6X9QGXNF71PQC;WFW'YY_'!X,?#N#3*@/=Z7 [Z@(?)Q\7&:7.B\9G*
MPW/<<;+T#AT VWY7TELZF-#O=  <CIU4AVAPR*.ETK*B'HF9AQ",H]B#2-<]
M(F$<P0 %(29IF!+/KOA19U>S6[6Z#T,LK%4#B&\Y19J9+>N,V4!'1U?LW.%.
MC:8S@LT5-CLKNL%$WCNV"BET%+C.?E:6^OK[9L/_S%8KU=L'Q4?KQTRQ4_6G
M9410BJ74WN]!I C$CR&6U(?:)96F'O<XMW+CLNE\;I1RD,^I1IH5[F:L,A::
M(_-,(W:5 [&4;@$:T4L":D%]UP^UO6^\ V9#N<C;=#VMI[P#*&<.\RYM..SR
MCZ[*5^K7&^U)^4.TXCVU,9:IG]?;RDVO6&+LIT&B-O8)EAPJ3L,ZPY"$0<B2
M5)!$V4CF\88N$LR-S.ZX,D/5OH>LRLJ/E:Q-#0I#9G,?#H-=^M@@C\QQC0_/
M^\J'IZ7 <6#R08?:I71T["UVXF./P40[\!'&PF[7?0N.O;MMIX:GVV7?HO?1
M[OJFAAS6&%W07(A#:CR=*K0JA_9M\^[G5JSYIUT9B^P1G_,@H+I O%I7,&.Z
M7GP(O42F:EW!B'*C*Q^K7N>VEE12Z2"L35T/<[L!HA2XROP+E!1/%KQF#+_!
M.C(&J*/?*6F1%^VLFUKJIJ8D^+8!E>0+4,D^!K06R\08$$^T- P'M=V*8 M9
M[RI@W-ATS&^KWQ';6[_L=A!RW,%);<NW6<'T,J+#/NJ3VB7W$R9)$&B/&@H1
MBC@D^HH02X0CD29,(&$7?V$K@LT,FB;XXC!Q2J97&_D_:RT@J4O<\EJ/,JS-
M[LS$>HC,SDW&A'WDM>&,J,XJ"C?REU%KB^8*:;@#%%?P!CI$L>Y^TH,45W!.
M#U.<VW&-\E46FBBV#R3CG\1V*;R48Q][D#'J0100#BG!/L24AT$8XY@'1L<E
M'>W/S8!MQ //2C[;N-MCY,P(Z 8\1N:7/11:M':4T3UYSK9DE?U;E,>SY4-M
MN^E.1]>6&7V'#(J]"--@P:['K4\<Q'I1M?/@U,N/#9IOI*RW652_?[_)OXK\
M1\9$L90X2 6*B&:!1+& 'T$<IAA*+TTP2CR!8ZO+'[ONYT825:*,K$J4P:M$
M&<]UHHRB5&'1_%5N<E#4:H!?LG7]]U\'R4K2-5IFS#/>&(Q,3'UY2K[6\'\X
MP-]H,'K&DBO(C9NZI*OS.>0PN0*,83*3:ZVX$>&^]L^'I^=\\Z,\0"R:](*A
M1[V$8!@F*(5(JOT>95$"8THY#@(4AH%5?N>>ON9&<7M10=:2U8ZU^J UHZB!
M !O]D*[!JBWF"+F?#> 8B&3Z>IJ440Q4/J4/DU=N]I=IE:U8TM@3E H*A4B8
M,HXB!#&2>L>4$,9EBE,<[0M+Z P59FQQN3>C[_ZDK,2^SQ$/_L46\,:98TM^
M[GW"^W8!-B";$<8-F+V"P\M1@1J%X"BN+1=P&-Z)I=W):[FK7%"TQS'ETM-N
MK'!R)%,=2'^6;[/53OVVLEH^[[;%EJSU]GFI=D\X2J6 4<)]B/PX@81C"045
M$8]3C\9FX26._<_-TMB?6C:'Q$<U9ZKM$M@53:V:I^==><B@<SVN= 4ZM?&J
MGEH 7JGLOL^R'4HS4AIQ@$9FJ[,3Y</];B4V:,F] +5&P]&8(W(#\9MM[Y,2
MGR,TIXSHVHP;5?X])^NM$+JTYZZHTZ@@AA,J(PF#.$$0"<6$:>)Y4*22I22-
MJ>2!#1U>Z&-NE%>+""H9'<NC7\+2C(]N1&ADSK$%QYI4>M0?B#@N]3 I.?2H
M>$H ?8_:5\YYKR3>K(7.GZ@(Y>7=SV<UMG7:;+T=(VR;L3H4ZI#PW;#"CE/C
M<YO[M1*@T4)?K.SUT OKJ2;F97O<P._GC$EP'YE1K"$'?PR:B_]F#)T*";GU
M.%G!H9L :1<FNJTA!X_0OW_]/_4A9D@%C@B.(0J04/^3<H@3CJ&(!$N]Q(L3
M;IXH8-_LW!A+"08>5F0K-U:>FP>8^AG&7?FQ#1&EMT.-HH/>%GZ33OI/Y!AI
MA(.=S^.9NKU.C8>GI_-:/)/PR"WQ_*^.M_!Z?_6&%(+?MTI]MUS9W[P<'JE+
MF][IBNS-/NT0NU-MU>YVV^^;7'MF+ 4EJ4R8#WT1)A#%/H9IZG$H41P)+TZC
M(+*J6S2BK'-CO%(^2+4B1S78 3EH"^A+=<94/U?'2P&M\0*L]^<DY!!=59]E
MD;W>-S@$C/CAF&TB9_(YC+P&5%]"J0-HZ]F.%M)?0ONY6EEP5WT*AR.S5J!=
M?7IVT'E YX3Q!V8H3X81)9W6[6%\R,]\)";H\O92V0_YAN_8]F.V%K5-%/O"
M\W&<PE @!%$D$*348Y#%8<JQQ#Q.K4[[>GN;V[I2R[D M:1E@'OMQP(&J*=]
M#K<AEP\%XLAL;(;?R$6W.P$:H?CV>5^O5H2[4^V^8MS=+[EQ2TUDQ;?-'?N?
M79;K#IY%OGU1^U/%;VNN\Z,\ZT>6,9&(),B#Q(^9(AH90T(390,CA#GU8B\(
MXL8IPXQJS#MW\-$8F7D>5$/?=?BE,D.>:['+V2,:F>U8QV(@S"AH8'"GX:-&
M:!WD6HL-&KD7H)1\4:+\[BK*UI1D#]A _&31\:1D90_(*7,YM&!_0W*_^2I6
M@JDI_YL@Q2X7=T];TPN02^_.S<;1YBA9JQU1+2FH1;U6)LT,J.N7%;=B-#)E
MN,)C==G0AX'37<+%!B>[*NA3IWT3T/N<2Q+A.GGC^^8\E\4T8#2 & F=U%LF
MD(H@A3S$J4 AB[AO5.WK4N.SF\9-,?KW-FEA3P S./B_ 8:Q9^H> 9=;@+-O
MQR+IK3LD4^6QO?YQ6.:BO:QR?WK9DW<FS!A[6=KC)+ =S[AG.=,7G(_K\LSF
M;KW>D55MKBQ%A+PPB'PH>)I"Y&$$TP A&*CM#DUC+XHCH]@\D\[F1E--/J?\
M(*^VN+7$S8F\?1*M3J0-^&Q _*8Y3 %?VM!5PC9'V -"9Y]J; @()\XJY@*E
M4_JP:]B89 KK;&/RI&#7M+F4_^OJ.VX'3'7.540#3) ?0EPF/1#4U^=&!'I1
MB$)!?$P39>F9A_(X9+&=(&:GJI;KDL#6*C7M[)+.#IU'=I0,L:^1^[4_J^M-
M^5KU_JR\?RKN5YM"?-O\MG[.=/:2#VO^28V5Z1%(7QMS,TZT3.;G';WH7#_W
M& J8L>=>*28HY=0!/=^R)Z&/3W_[]/"AS%>D_K"K(OC7//N1<;V&]@)I=3)B
M@I+3"4EOPY.=E)BHUSXQ,7K>;27=GY76&^"$>GZ .(&<)!(B'\60"L0@93+F
MH:2^D,3FXO>D_;G-_8]58M)-_N)ZQ7(*H-EB>P,L(\_\_[^Z:^MM&\?"[_,K
M]+@+A( NE"CNPP"IDP(!BB3H=.:E#P%O:CV;VH'M%)/]]4M*EBW+DDQ2%*.^
M#%*/1!Y^%#\>'I[+0;()[F=[1NUH*VZW[G5/[AE:>W/N>\Q2#>9_OVYW]67(
MP5-$I1ZZ6^W3/Y5N([3M@?)9?>W;Y4[LK^6KU!T-;?TO\OPJGDB((EX0 1!&
M4L%.* 4X2B@H. [CG$,$$V3"!E,+/#=ZN?WQ\KQ^$Z**DNUP5334YZ>>;\V3
MPHQF<6H]Z/%N<=7M-MC,0WZW8ILR;;)*9+18;W=-&X/#$XPGX%V=C:86U^^I
MRQ/X9^<Y7_U:V+SOUS_)9K>LLP6%-!6($PC"C#$ *:>2\E@,*!<0LB(-,X.;
MM].VY\;LM70&MM<66!I6:GL()J;%6C";*[<6# 869WLX/!F8]6$Q,R=W#WS0
M>MQZQ9^QN%O6$]MPSR-V.O!GL=UM7MFNS$!WO9+T]JP<]8[)3:_IMJSSJ*G<
M:+<WH^5X(G/IR;:7NI'C-?A:"^[P0&<,EB/-0K]?KRJ",1SMO=Z\ 4OG?ZD)
MR,8>-_M$2V4JQSTA%SPO1%9@$+&< D@RY9&;QZ 0!21I$F)&C2Q  WW-;5.O
M1 VN@X.P02FMH:O_ +AZ'.0(LHE9IP^M*1S[+P/BRJU_H">_3OV7AWSFTJ_Q
MBN< 6&7OVKW=K12ME4>8A]UWL?GRG:RJ\B#;OR3C"7F0J<XFK31'9=*3&\F
M'\ER4UDHDB@C41@7( G5$2-2E[\)RT%$0DXSC&%>A%["95V/;&Y<6(E?AKYR
M5<!KTTCAYBL*UOG7HTF_<Y%W3F0_/L*V0B=HP!.4^ 0["="^?-/V*MA_>/*[
MJY.%GZ6W*Y$*%%2!PBHHP9I!:.Y4\__>@;S.Q_5KA/U.-9W.@H0G$]#<:>1^
MO;H7Z]JHH^DE<O+2W#9 *1RXOWW0M/"=8W#9%\1Z^)-;]ZJ1.U3D>X=KY<5Q
MVI(WMXW. 33]-+H?L%.Y%^M590N0ZU@NX,WZFYSB^MO"A4A9$1,@D/+22" $
M>1@R@+.84IJ$46IV+SO4V=S695-6I26\[*4UTTD'X=53$UV!-O%J;N-5"SK!
M,5T'$4>ZS&!77M4+G4&W=WRM=RSNX_Y@WP5_?18/Q6>UU3\4?VY%Y0]ZO>)5
M54[ZO/Q6ZA?;+X0^BV."2900F,09 :'((8!Q7M()!^I'D9&4Q%@_/F6$('/C
MFWHH*B:_' Q8%^!U*X)J/*6YO1Q1T!B2P7W8F#G3N$/T-!-3'S_K27CHGH3K
MKDD(OI;C"72RA+J=%X-+34_SX^D&U&J>'-V2.D!R\$IU3/O^[E\=H'!R6>NB
M/<LL,IOE#Z$JIM9*+PH32'D!6![)#8K1!.0I#$$<,<%0C&C$C$J<MMJ?V[Y3
MBE>6!#;,^=*"34^9'0'&Q-1_Q&$"C;5GV*YRL+1:]YMHI7MH9]E4>AZS6[/W
M8K<@V^]2H_VYY()_>)-LP>]6'Y<KLF+J3OO<+0,Q@5A6%( J]V(H2 JP_"A
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
MTS[FK&@^K>ARQZ*' :+YU./Q@FP"!U\O_&3RZFHQGL)B,8K.&9.T(;D\69&
M8;3/WA(,HXR77#,7:MQMWEGT,!PTG($\59!-X.#M!<S/\<C[ZWSVY_+[Z]G%
MI9]>CR2 PZC:DL +&TRC7X3N,\F::I=E=H[7.#%V+GX8+AI.3]82[,#X>!_S
M_.PJC?$WSI9+6*QT\&[BST<98Z<8 \J#2HF^LPCEL0$EF3(EHPR"\]-\SOUK
M'X:.AK.7E<3:2('VN_'TZ_)B^78^G\U?SY"(>,L-U\Y9SC*1GEDB5:(D6!6)
M%DX*B9PR?UI=Q-,T' :6AC.>E<7<Q(GS]3M,)C?V,)4Z'R;PO#01J<\0T8/R
MBB!7V1FF@I6LAN.QM>9AH&@X!7JB&)L P>>K,!G'=Y.91SF U,ZH4GX>%9%!
M9A*HC\10*9))*EI9(ZVUM>1A$&@^T7FL$)M  $+WHM03S^(_OGY'L2T^72W+
MZ_)RPS-R*E+'%2/*4"@%HXQXBZ#F5E AO6:&UO _'Z/AL)>!S:<]JXFY$8=C
ML2E'A_3J^DNA!*81OL'/Y2O\Y7^,2H6/-=3@"6AQ.T3KT)]BG)@D(&=MK,MU
M_(XG23D,0@UG1_L1>AOF!]F:^\G[:8*?_Q.N1RJK$#D#HAPZX!+-)O'":1*5
MM9I1DQ6KDD:_N^QA"&D^.7J*, =&PQGB.W4N=G&FC4 2!9,D@T0Q1*0Y1/2H
MN--*6!""G_B<[,YRAVF_X4SH\<)KY#39/))^A]]9C 1PQ"[% Q&8)E)G1ISS
MI<S8)\G!\I1#I9CUSL*'(:'A7&@-@3:%B55#A143&$II6Z+K[(1$WSI88H7
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
M>FIYR9Y/K5U:<@CQE<I*WD^1 KA=\+9^ *P,@($7$8@W(EUI=@P8N2LMN,@
M,D+M*L(]I%0N'LDL4*VS)*"X*@6 %D%>!L4JGS2WH#2K;6):*AZIH>\GZD6>
M(^$!#Z3%?%F:?J>KN$2''N8_QA&Z2VFI50*5-1%:(_TL8(BHLB6:HAN?N<R:
M']3_%A?80@?^;8.,?6LW<L-QA!YG%87:!BBZ4LP5!XOU/720%DRY>$X.*)'1
M>^*<EX1Q*;FG5D1]T W%8<AX2, P\*BCTX< .5' #?BR:T;6905,@#4A ^&Z
M.&?<!F)#<<29HUDR;1BK_^IPBX#!T7&J0A].9#A2NH/>>A8/LHQ9 ES_.[K7
M;^ '3&;=*(DO^.7T"M8<40TN@8@$@BG]  "(8]D1%E%@@#%=N-\QYJ%S>NAB
MPUQAUL=&+\)MXI)\5[2'YZRE+A.>#4)>8=SG:(GV-*,VJNR4J?\LONDJGV-<
MDDH";N"X62-\,Z, J$''7.*6<1+%@7\E5DE/D@ ?M(J90^U)#?=I:,1C/5*G
M#VH%3Q!P$U9DS<$[E-2N7FQO?\;)54GXE D5^+_TS?\<9463*T_BH+1/ECZ5
M,17E-3]+,3)OLN.U'S,?0>;01:FG(&,WS'I34A-(O&W,]GJVZ$[_]3S;C0@#
M4U1YA=+3(I<RW$R<%YYH !X!OY=Y[5NF)XEJY+2K8\[JJJ )5!5./N4RD&O;
MH?PZFZ213AKW@8Z$!:Z)M,(2EW%'"J=SCN6=KJI_=["/FF&M567%/[A(J**#
M)ARJ52!Q=B>06 MKE*WQEJ&,F..E;;>,Q$9&"5?6""^D]K%V/>JC! UKF_K%
M5#U--&&FOL($?W3^5YBBT";(U%FZ&$_'15#+\0^XY2M9';WQ) :-VP7]!F)M
ML? 8$$M(W/M0VW\_C+)ARU/[A5H/NFG#E"WG5W%Y-2]R^^[GY[ 892.XI]X0
MIX$5'H $'@5)UCHJT'$5NG:MX2XZAJU4[=UPG2;W ;'3)=.Z687O+R[]>-Y=
M"$Y3U_;VAA53>LLGP8@1%%F121''0R*,,N]+E,/N7X;M25(^OLZP-:C]0*2V
M>!NP,O?E,Z*!2T[Q*)8!I2%IIL3SK$G(8)R4%**I?8+=IV'80M/^7>VCY=U
MOZ%;Z:S*#C[,%HM1R,%)C3%"BAC6RG)AZ'RBY2+'T>BUHJ'V@(8=9+3W *=&
MH'^DF!M ROOI#SQ)BTA6/+R?HM7"[XQ*[4F25N%^B<5">D5"\)[DZ)0V/.=D
M:O?'VT=+>R]N3L!,%8$W$6QU!^K'V71V=Q?<./()0-O,&%$NE[&3Z,U[],!(
ME-$SRTUVMG8EV^,4M??>YA334T_X#?@W&_MYDYP?3Z^0J4T1YBO(LSFL?N^;
M_PF+MS_QF$>EC:=^?MW)LXR)*&G]61=GWNXKK34:9*"$6UJ:EW)/@D2A*YE<
MH!A5AE [W=TC.^T][SG)%K:A]B;.X36+ZQW\"J:0QW@JQ)R9S8(HS2213$OB
MT7,E(C(HL6ZTJO8CLSVDM/<<Z&3DG2;N)@[AC[#<<CYM1BJS!Y)]Z<:B%(K$
M.THB>"8AJ$"K=Q6Y0T![#W].P,CQHFW GMPT6[YY)OG*+\9Q1#W-R5OT"(0I
M8W:3)=Z6VCYK,T^& ZT^268G(>T]\#D!)Z>+N@$/[#X3;\:3JR6D$:/441D#
M"2)8@@=J)(AU21R$(!QB/NOJ?8IVDW+8U2[]14%SC+P;@,W?87S^'>D^PS/-
MG\/'JU($^BD_>.BVVA,&0!AC*;&J=%#"\);XB!O#,1ZX2AED]7NW9Q%X&,1^
ME:JZ_G33A.>SA[WU1GKXU%)+[1U83DQ.Y7)(E?>Z((E@T;B(#IZ#VE6]SR3Q
M,/C]*E50?>JGFN5[Z8>P59NN'[+$RSR1[;\-^[[WD\E3GGGW^*D@-+%,\* ,
MQ$:1A784_]]/=J?O][+H(SHIG2,4G47<>D$12[DCWDAT)B-73O76:K3A][+/
MT?<3[V6?(^$VGD;>?0;(E,( 0\A2ZH?T@\+#6@M&(CJ0(G,5F:SX*K+=][+/
MTN-3[V6?(]0V0+'CA9?0V?+R/L>:@$>I$13#"3Q4*?,B.:5!^(.N7OZ;O)=]
MEDX/>B_[' $W$*7=?='I)#>J/.',X#R1V0L2&%AB'6@,+SDH6ML1;OZ][+,4
M^NA[V>=(=^@:M$,>=&I!A<R,$D6Y)5(6PYH50Q-K42C> N7I*:?U5WXM>PPR
M>A%N W;D&1,F0#D3,P\DFU(P%? K'W$O)*FULL!L3GT.5*@PXN6EWM8>X[[T
MK)#&H+;>B=G9  XE$Z67N!,!.1!E: F %B8RI4/M+L"_\(B79^G[Z1$OSQ%^
M8_"Y.9B%H;BG.+$<@T;I*>XS0S%\1!,>(M=<5A]._@N,>'F67I\>\?(<(3<
MDQTI3V-34)0RHHT+1%(6B!60\*\B,*IB!%I[$N>1S1_ZKY(]_8 Z4< -0.28
M1^,R!&<<LX2)*$N[2$5\>6( (0:I;+)2U)]O]XN][#\5&17>]C]'30T@\8F2
MSYQ94 9<N2KN;HXY6EU1GM!%P5,6(JO:YUN%>MN7O,TZ!5\5A?_+]7'=,1NZ
MXLW5OLG3/5U:/<5,_;'!CPROENAT>0B<:*H2QO\E3Y1*%_O,%8M)6B][<S8>
M(ZSR759006=0FGCT_] KS(QXJ@-1)LO,@ 6(M=^2M'2751\+3]QL/4?>#1QL
MM]2O)/)Z=G$YFY;=V@6RWE.C$D:N7BF&5EL$XKP$0B'Q(*W,T?76.'@708U@
MZ0A-[P/-R6)O $/W>%A'MXSY'#RU*)Y4.J4F35S&T(52W&@J.,%9;?NZDY!&
M,'.ZHG<.4SQ%Z@U 9ZM!_SJ+ 1FM;V*)*%7>< HCB./X1^8F4>,],%[[O'I
MQ+"0J:#8_6,0CI!R S Y2VE<Q.\GG_TXO9^^]I?CI9^LF8G)X"'--4D6RK"]
MY(D%)XFP&;]K!$O5+<VC! T;?-6'3SWI-P"E+[!$>4"Z*0)?<^$U2X$Y39@K
M^0C#N]HF2:*067"7N)6U7^COIF38]&-]\%20=P.H^>O<3Y?0U<1=K8YNZR%*
MFQS147 B+>?(0 !B0!N75/1.U+YD?4!$(UF>T]WAT\3;&C[6NX8F72))0UAR
M%D/)2-$P&L SUH4D7(B2UWZ$OX.,87V9$Q7[&$R.D'(#0+EYI5:N[JZ[ZMHY
M,G6^"A$N+B>S:[@I4)%@T+121R( 2DJ(PAG^E0K#."@K/*U]YWXX=0W!ZA@@
MW _'^]%*XWC[B&?\7>9*U8+-7I(0F2E9>D^\CHDD&GF*S#.5:K?_?!:!PQYX
M+XFZTW33Q".Q';= S@NMD%0DNA1HQAB)5Q&(<#)ED003MCJ^VK[@KY)$/$[
M#5BG]],X!]P ;V#UW_?3ATGZ+[/)Y-UL_J>?)XP:++=>"6($:(P:4B)66TJ4
M-E*STEFN^F7&,TEL)-MX)"(>=NKH33T-H._A.TB73=2@/<&0-A I)7Y%T;B#
M5#3HJ$#YZM-GCGN)VA>">E7YKO/O:/D?#:!+F(]GY5YZOJQTSMT7T A\0F<0
M]QOEJHQYXI%8ICEQ67@/(AM?O0)[WU7^4,[2BP+I- VTA:35B.LW77/ESZL%
MNGW2_?#395=S_/8GS.,8'<>1"MRK$!6),:'8(%/B HU$!:E#Z9O$9?WK_>=2
M.:S']>)([$^#+1R:NSG\#S^Y@MT,1A:I9J6[!:.22)> .,T$ :LP>@I49E<[
M#_9L(H=M<]H 0BOIKUV KIV-4DHX,LD9GX,AU.?26@./"6=+\6G606NP/E+_
MDD:SHVK8%JD-0/!8#36 N;/T?ZY6C847WV9[KDL[]D+)]I3K-9@N.MU^ 13M
M8KR$]=/'E2B^0)R=3[M/Z3;FR(B4*3.*"(5'@\PY$>^L(#$Y)E-RP$+MYG%]
M\S1L-]67Q'M3Z&A@MZPV>F$?I?O-_RR/!8K@T1+@-S99T6U)C*3+/'H'9? V
MGD(IH9N4O"?!R< "#<!2]7+=(^@<ME/KRT?O/6KQ^4AU*Z1.X;Q4GM>V[.LG
M=]]FAS*;DHXA2$H"TWB(207$>Y^(#DG&5%I1TMJCB$X@=]C^L0/9XUYU>BJ
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
MWN3%"XBGZ?,6^;>O1OUDDS+?-/2DF08J-49YR9<GI!E#/6Z(IDK09+U6J?J
MT1J$GURCY4OEQ:>\[O.(9(R"M3H+6Y(CW)56DII8!#CQ,M-2M.:XKFVJ'E(Q
MK ?_\IAZ4)YUFEXJ5B?4-5VO_&*\F.5M(?II^GIU<>'GU[/\=7P^'>=Q+,W+
M5HWMQ]/SSRC^6!YJ'F'A3EJOAB&LQW E>_EPF4TYE\IXSGI+J"Q>ES/EL9J.
M!'0&KB-/KGKOH/W4G)R;V+>'.XU\NJ.1FP-JZ]3"G?Z0MF^H@U>3TLM"6@R
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
MZ^L%>_>-Z,NJME&;><O:W\"7/LNKL>]'&\G'/JZ&53R8W$IF\':]32?JQ5;
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
MUQJV'6U?..E#T$/CYE/&, FVF7EW-9^.EU>WW+@$#'( 0@.4YI.0B;6:D2!
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
ME"2E0HEL4H;>A8(OT33Q2(RY@&<0J#>4Y R0^>%\D?_56$FG9RM>OC_!TZM
MNV7?JE9VKPK&5KZ>"(+-!-D$Z= BZ>Z@?(:<.>)Q4[D_-"TZ"6$&>/J)_9K%
M5Z+5D:X3-IE,0.:%"*&-U=)L=;7*OZ"3-6TNK4R]]?L:,J:-:NP4/]LR?0:X
MV?*]OXT.E4 FV6I M47I1O"OL)0(FJI'[WRIHG<@N!?MTR+T]5B.FX'A\"_!
MF\]MBMB1J-GIF!5$I?G0U06^^8(52#!*IZR1]<F\;L EX7-4\+O&7%_@;P"
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
M!L[*_?+$4**DDC)(75KA?&TY!/;V<YM/X47TSO:.W\R^^'.40)\M_AS#W1E
M8WV33PA:**OY$%DFOC'5M6W*&G2Q2F8;I'^XN/-[D][.=%4_4<T ;V.;AK0U
MRN6([$-["T:LAB%79IVSV2J/LJCO37K;@6++)KTQ$IHZ^[;6P[\ZA\\HG$X$
M&C6K@#96+V!3!D$(R?]' H>EV9[YR&$U[(V2[&(';)X:+NM/4!PIE84&DJT&
MPTG%7G"1(&5626=32ADV7G5SB.Q,Y>T-(MNS=@;*K&NP6A0IR$;!MD! ,&3;
M,$\A@!EBA.3;@=0[UK?W\I9#ZBG=QE2;#!@SN!2;)$Z\: N;"I_)LN?$'GH&
MM%FRYR2-$ZF*B(/"83/(C!U&-<PH3'7(C(T1\-1:_X7S?:#S\Y,5:W\F.J*H
M<W:V\"M1V-*6L5P.8U:ZQ"B8L?YA!]*0?>PO?/45%;AL L3=2FD&3^BSE3M'
ME"NS1FE(LME<2@J^2R4 LS*;D$+5:@==F$\3](JJ6[9Y%OL)[=!* ]XN/O-9
M\S&>[+0PX)G/[+0L8.CQ]E44@,K85!(_9A%K\[D82EZPDU04J].J<BJ]T]T'
M6!2 VI%%8T"1XZN<3%PML()BV7I75J0X;('J]Z* /DC<0U' &)'/<8:O+*)H
M)AN";0L)O&+[F%SK(E(B!:&BT#TF0GT3,WQ'8>&E&;YC!',P,WR%CTGKBB"L
MK:TXTD!$B^")C1^?BXGE6Y[A.TKF&\WP'2. J7WB/UD1_/KUY&:P#0JI4\U,
M<#'\\$<%S!,+1-HH-IV5DL,Z0.__W$.8Y#M*:HL^+)R!2[H^SUA24IJ"ATR>
M7UFE"&(D9DN;+E*$RNS6?*\3V)/ZZB>J&>!M;"+*.F-4R %TI<S':[/]3([
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
M@^<GWFEP-@3)%K<VHO=(F2>)F;8$<G)$]A76#%"W2:%;4F1-UAZJ%[;M&12
M(0B@T@9*9:F4[%\&LIM*1OOJD;IK 1]:6=G[$SQO09(_*7\Z79PL/EX6F##A
M:S8U[*+(;","=EIRMCU+]E6 )E)*K;(1DBZLTI&O1-1L=2I3%%*H EUOO_0
M"]!TQ.B2XY<"O0+#-A"@$PBN4FPO"%KU?5K2E@5H8Y"XAP*T,2*?8P&:-\E)
M64OC7QNY$2S3CP%0\Z$D:6WBH)K)[P5H(['P4@':&,$<3 &:=(I4E 12A-9P
MGA5$L@C%D4(?HPNE1[GCH1:@C9+Y1@5H8P0P=?3H]\5?3/WQ]0 $C(C6"0'!
M8QO_&0J@;!E^7;QTE)5ZN%#@J1%)]W[N(12AC9+:H@\+9^$B]R@%*9;Y)4-L
M[IL#HUK 5-0*,E8M@U2E/EQ>\KT,;3;J<3HH'#;^[Q0@J&05&A0@ O+)M7<0
M=$'(R.?7@9\#UW_0[?<RM/& VTD9VACI3ZWPU]1&90JFMHF 4;E6/:,5I) 2
MGR%C,&WPD1ZF]%]G&=HHZ;Y0AC:&U;-!RFUM%'\C2&TJA-#6?A@9V,K1!,4&
M;<BII-R+H<-77(:V/5(V8_4,U"CS)U-C49/8'\=G__KAZP]TFC]]QN6_+HN%
M0W76& 15VD9 MJCY/"H _VE 62PEN8.BFV=I>G7E8ML8?UT%.$M 7I_FZK(:
M)&=LY5.DED"OQD(0)H(*?'E-4-J'02/,MP+D?9JF+@3KB8 7X;6%.*;6C&\7
MG[]<\,_ZZ=\7QY>*XK1\6-3SOYG/5\^WT>SO(TF0/K;I&,I C(J5 HJD(S_A
M&MT@3?GRM^:&FFT$N]@=EV?Q)G5,F]>@JPQ! :6ZJE$SD%)FOJ;<)K/PV>6@
MH?ASKM4^I&ECVRG?B8 QBTOQ7-EO5OQZE)J!J!4<97;SH[<>;/0NRHI2R/XS
M];Z-6NU1.!E5JSU&:%/K\H$5P<I(F8W,4(*O8(@=,W;<^1^%=5E6LHBT:;'L
M*Z_5W@1FNY+,G,'VYO3T D^NRGO/_J3EYZ/"C"HMBN"\1# %)22^.Y!14Y8Z
M4!+;-P@\_NXKJLO>"?BVE-3\07A[NWXYS4O",VI6/&;#=TND[)F1)4.(N0);
M."$*[TR(MA,4'W_]%95E[Q"06TIM?K"\=\^.JK3*J*Q!MPY((V)+\U@+)(.-
ML0CU:-+)8 3>^] KJJSN"+;-93$_7%UWU-P_DQ%&9Z,45'*J-1@B!,-V1 PV
M1$>8;!HVC&'@!P?AS'UK.-M>-G-W:>^?^;]4CM"Z@EZP!:NB;SN>$9)+%AQ%
M+5$%I-*[ VH<A8.@ZE\M5/<@UD/K,]E'*\DDW2*S:@C12E54MH(.F=6L= C1
M>,:2R56+&/@U[#_<[> :0H1$6S%;-D;:F/! ;;1/J%"MM05KKJ+TKKWZYAI"
MQB!Q#PTA8T0^QX804S$87]HFN-2:MZV&(,BRDE#"D&"]$0<50WQO"!F)A9<:
M0L8(YF :0D@*K:,SD%U;$";994NYMDT-1?'I=%$T:*K3*VT(&27SS=9GCQ#
MY.[R@J_H=2N#J*2B(J"8F3.%V9.J2! S8DT6/0T-N=S^T$-H!1DEKT4'YLW
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
M[UJLV5?"*,&EMD.[S1!*3O!O2TXFU6IR[:T$1Y W<5EJ?W",A=^&DIK:6_Q
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
M)3;"L T%CY22E=&@[%X%^,JF*XX"QQ;3%<=(:FIO[?E-)\XDU,I#<$V1A*
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
MZ0!.^PON)]NS?,=(0W)::<D@)U^7D 8&,0L*E4H=;L(-Y[;U2\PA^!CW(O(
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
M&8X&93"4Q=>!E![I5X[\N:7?!A^EL[)UIC$$'^-6\(_L)8^J]-, ?FVQ6?S
M&HZ?I;2X".=T<!@KM&<!I)01E,,Z:]4%B-Z0O3O/C,#C0_L!2L<MRH\+WD,5
MUR,\/RSF%$"O_JKS?U?$V.O_OIA^KR.')_6I32X,P7M3][L6!0$#![0L*BVS
MDS@X)!^E;MQJ^C%AV$9!/4+O;_-Y_N?T_)R8>D/*FWVIU=++/YHD9R.&[("5
MX.KLZ4*IFPY@C&"*>1Y5&ORH?X*^<<O@QX1?*R7U",!7X?NT%F_N71S$8D(T
M6H*6=3HJA2! X;<%@2FS5"@.#T,-<GB6N'%+T<>$7A/U](B[-S-RZ@F7U\W6
M9%R_X@\\GU\Z=A[1F.K3BS/$'^<9?"H.,G,Y1:^2B(.?O,_0.&[=^9@H;*FL
ML3O4[C'W%BGGNJH)_#613*J22@'I:R5 V00^AP)&VIR]DEFZ[98T/O-%V]U.
MLQ."3W/Q]NBW+ELRI0K<!9]!&JP[KY0&5W*M'KFH!#?:E3BT=]J^HY:_C"+'
MSI+O$3^7Z_K0BNB%$%"2+W7T/(?@3 (>8I0R( 65@^-G^[V)_$64*W:7? >#
M6[9I*$R\6"X" X[<U(<-"2):74>&.%<DRV7X>[,]VT6/,EIME!Z  _74SVO"
M&YP])+1H@I%*,="BAGX4ZD&4F0,EPL4&9IP;LO=DWR:GHPP2.C+N#M5.1X'Y
M#58^3K]\7;TO?RRO+ERD*")RKX"IS"@ T *\1C(J;LBB% FLB%WC\R>^KYLF
MDH/5^TB4WDK6AWJL 9W5X]?'1+_/DA= D\D1Z[I1(%"H45!FXEQ;8P>\8MV&
MQ&[:25KA[QBJZAB+EUF,=]8RP1&DJEF,B;(V,100%!Z4['F0R(^"N^V3R&,T
ME!P'8[NKH"L\7?=1WV!IXH-%G=% 2K4$:\A).RP.4H@A.2.8'>RV_B%ZNFGO
M& I1!ROAX !_B!3S)C,A>:U9=.!+W:V;$H/()/W*,NYRX-HW'V/S,"7C8JF/
M@'XG;;2&UF"ON=Z%16U;_H%MWFK=^[C&+[&>)O<8[ZS09Y^$@NB<!X66CJQ8
M1QN;;*)!8U$--L2D_3NK^S<DGT,\QPF2:@G4D;*,NBS!:DV@EY1^N.@E,F+3
MM'Y4\ @I';^7V@$)=SU,"[F/>%>P7*PFZZ%R-2OX&\Z_+,+WK],4SL_(;B?(
MA>/.%N"N#DVN<TH]SZ5.%7 B>F-0;!58T[?<  [][B=HGB1@7,@T4>V\M9S'
M!@M^N<O"K_-O83J;!$/'LBD&O(X(*@B$F(0')E@4BDN/K@E8'B-@'+ T5.R\
MM93'O(.<7\Q6B[\F;]Y-&#J*K90 50+)P#"BW>;:U&JD1"-1^*<F*2TQ_:\O
M\Q__L?G$2VAL?O,3&3^_;T08M%':_" )=E"EO>\W*4;$]<+D21T+Q@(C@RB%
MS""X4ANM.###4>44C19E\'#DFIQQKP-;GB^M9=\EC.YFC%=S8LZ^55N92)NL
M-13&D3WD&L99"*9HB%)'1[F$BJ7UV[)=:>PMH-D3',^"KJ&F.D#BP[<(?\SR
ME!*(:;Q87>]5>AT6L^GLRW+"$R9M$O'%E*OWZP)"X@C<"&>S+G0@#+5Y:'LJ
M>W-_;= XL+8ZP.,?LP6F^9?9]'_67%X]>;M.<3_@+)RO[]#6+?9(BEUM'AQ-
M5"D9$S) 10:G<J18(O( R<NLA'082^NYE@>0.VXM92B$'DM_)PK5]4LXS!,=
M5 J1UZ;\0*=$K),,=7V-E)F5F0L>FS\7.X#<<2_6>X+J/OKK%ZJ?OX;5?\XO
MSO.;;]]#6ET/Z_R\V1>BLBP:LZ.43"<R2$._"K6K(R)C3A;4J?5)OQ^EX[ZS
M/3) 6VJM&3:'*_V\?WOK/5.8Y<V2FZLG)N'6$Y/K62.-YOH=_OVMBTMM!7*,
M:I2VW$E;0&ICZD4/!\\%05-ZGD0)6K$3J$:MV^%NS4^B<^'AR3:7=QW$G@A*
MD*U+ZVHFZ" *+R%+)B(+/*>\7?_A#E_:<2%J!Q#<ZD <2N0=',O7\CJ[6'V=
M+Z:KO]8WZ]:H[ JSD'VPH(3WY,!]!I0B.5M7ZK'!MC7>HF0<- VK]<>FX>ZO
M@BZ!M+F=9YB#R\Z#5NO;*$&Q ',*@O'T;^U0NL%6/=RAI1/7=(">GX7.'D+O
M #Q$-64VT_3JLBKS.WZ+N)C$@"[&),$9QVI=)T&,3$&4]',LT<?0O.'Y(4)Z
M@\T^.KY[BW>PP#M S:UU??_G8C%=YFFJ:MFPX]$BBZF0@,+ZI;>&H(HBQGSA
M7')?1.MEC,^0U,GRQ99(:JF$L5_U;'?B_\RLG8]9\TC,>*,IH-3$FTL6-/+$
MM$3&,34,KT<NK!XE*!I<#QWXK2<FX&+*G 5K((OZXM>4!+X@AZ03UW4:J0VZ
ML<OJ;2;Q\ B8#Z*.#H"UPZSE=_/5IXOX?S&M/L]?__E]>KGU8V*\S"+E $Y9
MB@"B*1 D1R@J8-1:YI0&'U6\*]'=>\,V,#VN<CM \X/"W+0XY!"%0A)D3+F6
ME+$6/Z*I,UIDS#PSC:U?<C]!SCAUU*,CL)5"^K_QO[WS:%X>*8.TN=[?\<L:
MW^4?PNH1+NZ-\>2GG /A1/59LB:G5D.TQ5G&K QQL,U=[9^1W!;V^\>$_?K/
M='Z1R:@OC6OY 1<D_=I,4_UY^$;67/_Z1UQ=+&;+C_/S\]\NC7$2N-,V9UOE
MHZJ+)V>?HP!;*,?S0G%C0V-Q#<U3)[<O!V+SKB_M"@D='/:/\#\QI4A3;*28
MA1)))5,!)XT'[W0PQDC.96M /T+*N#CL"R_;=0GLI+R],4@!T'2>/ZW"8C5P
M3]6B3@>L8R4OSFO$]1LIZ=7%HFKOPYJ&VK S7T[7ZQ,GR?K$A9: E"?6%RFF
MAMT6@F(),=1QXZTO']M0/NX=Y2GB?$AH].N:'^;Z W&[>(!G@R6S%!-@*905
M<,I"O0T>4C',BB)EP5'-X1&ZQ^V0?3G&T (6_9K"K[@+S[FX)*SCP(+WH$Q*
M$+40$#(WR6NE3/-YFBWH'K<#]Q1-83A8]#-Q\;'03WHZXU@2H)D1H$2RX,G8
MP5"NY$I*TL?6:W8/B=L':\P]1=SNI+P#X_;7LSS8A=ZK^;=OTU5M0*T=JI=+
MSK\@::/--)==/K[%I=W>[#2ZIKOQ_6=WOO^!RQ$6%->H$N02ZT5SKLMNL@?'
M(K?2H FJ]5/DG0@\U/&]G9-MXN+;AXO:[KQ>E+;Y\LTS8UT"9]F *$S6%E.*
M;*1 T-RJ^G"# I[6;6_/D#3ZHN.!T'/7J[74S,CC0#YB.'^]W'38G*5T\>WB
MO)[?OR)1DR[/E%]QF1;3[Y?'R]5(RG5GH9;!BD3.6];^FW6>28QS$#DHH;5V
MDFT5:#XS,N0@(L<%95.HS,?0VPD ]%WXAC\YO)K947+117@0:(E'BX+"%H_@
M$D,79+7QK>+#!MA\B+[QQIP<$3H[ O9@/8[=WG=&GR@$^X"S>5RF^6K3H2BB
M=KG6JHW42"Q0SN69C23":*RF.%CF\EPL^,3G]PVEPY4Z;ROAT4&BV)K^&^1K
M<OPY1P2K6 3Z<PI&"J58AFFRLNPH-]\2(/<^>YS+]I' <9AD1P>&9OS55UR&
M[QC^@5<=\]YSE8J$G.IF.T:_\C%*"A ,%ZI.&LIQ.V@\\.GC7#Z/!(Y#I3LV
M/#Z%V:NPH#1F0SO30IA,L:(3=?2MTPZ\BQF*RBD4PSR7?"MDW/G@<:YAQP'%
M(3+MH%KP$>M(G$0B>A66=0UA_5==$O CG-<\^.&?KN,X&946SBO0.3E0H6ZI
M-LZ#=-X1MX9QV7KLP?[4CELQ'B*'.[(&3Q:K&[N4*1)_(M,Q[CFH4L<],!XA
M!BU3"=9ZVP=:>WC/=RQ,-8'R'@KN ,R_XK?U (KOM;AVQ8.JIX\O M ;3X='
M+:W5)<2(D6?O"YU#K9_6/$3'*8)O'Q3<>[UPH$HZ@-5E\_MO(:VWPZXM,M=I
MLU@2Z(2^AC:UPXTX")IE)3.=+7>CO,.K'/>H&+=)9<CS]T")=X>934"LC.4A
M&07<&P1E/!D2.6^(6G$N*/=%UOJ5U4-TC%P0.E"W3T)E#T&/G4!6&WH[#U?O
MIA/+W!B=0?M$I/OD:SL(@C4.!;<E2+/=:N_;G]N3SO=1TKR-Q#KP#!_QQ_S\
MQW3VY;90KLY:2SDN]_5A5B:O*2)YS93HU(W1Y!!L2KYU^?Q)@D;>D-L*-^V%
MWP&2UN\_;Q;4?_GK75A=+/!]^?GC2P_+I-#.:@-6^KHD,S.(WM09DKI8Y"SZ
MV'I1UO;4C=MA.&0<,Y"&NL/>AJNK>[]@,5BGP255WT<%2E<5_8.GG&*4Q9!+
M'A1LM\@9N]-@& 0\";3]U=$!LM[,,GZ;3<LTK97TMXNP"+,57M<&A!.!O#R$
MP'7=VN')1TL%C,5<9/8V-1\!_S1%/>'K ,7?FS#63 L=8.IQ'__V^H5\$H:7
M6I[@P@M0BN16A02%.V-C9"ABZWNB+<@:MXMYV+.QK4XZ@-G9 L/[\K->=E4/
MFVBNF<O2 @M8Y<0Y!%\BL"*\TC%H^D=C;#U&R]CNJK'2YP-H8.P;@;>X7"+^
MG/!1WY*\7W=]U4<!M:?[W<7:"P?A'5.QMNH+^@?J "ZJ#$(R2Q[8&<>W:U#9
M]AM[K?@=!I[AA-Z!3WJ(KX\XPW^&\RK+.AB&VZ@IY[4UFP[90:10$S+%#,EI
M6Z_?6A][3Y/4Z[5V&P_54A\=P.M>8>G-[ ?]:-WO_VX^2Y>/H2>%^&#):A!9
M1)*8)_?+0P'KM8E%*QM<ZY&NVU'6Z]U#&[ -H)T.,/>0":W_\6Z^^B]<52%2
M+K1^[?CM,LVN;TOXA/%H$W$'3&>2I*$8(,9,(4'4(6H16';-[R7V([77J'\X
M%]A:?R<$TQO>GT]D2$;*7+=44J:N&-84&P5P)0TE[-:XU'I>PCYT;@50\](!
MNK?F.D#G'>XV*_W^FDCCK69"UWU]=!;PPBBEMPJ8$ZD:6#"B]0/N1TC9"F/V
M5#'60OX=P.@34A!1:W.7'3Z3C(+2ZN) \E '>V@$E[4#QZV3@@MNFG=;W2%A
M*]BX4X7-(?(>^U[C-N3_D]C ]Z7\>H&?Y^N?_#[/UQ?.$SK98_ V 9)7I5R;
M& N9+,+'[(H5,L:RZXSUY[]U*^SX4\/.L,+OP FMYR+7E7331976JZ]A\067
M]961*8E),H::UD1RJB[7?-HJ@1A%#*[U#-&'*=GNSI6=&JX:BK\#$/UDX'U9
M6\37^7F>2*N+-XH#\U+7708!0AUW+ V7J>@<#6\]A_)!0K:#T,G>VQ\N_ X0
M=-O%_F2IUF@GPB)+UB40.EKBI4@(@F7PF3)7.J5M;C[0^"EZML/3R5WE-U?%
MV#'3VK=^Q-5T@6OKB.?3+VLUK4_P>2F3R#1'KA5DSXF;6$>F&.7 )V&]X^B9
MSUL%2L]^U7:8.;F;^0'DW($S>I2A"?,\9R,2A,(5I9G)4G#G/#B5N<.06(JM
M)Q0]2LQVD#K9^_<V2N@ 354<[\OMIMG-H-M?YHO%_)^UI39\IS]9_34Q 4LV
MF" &57=",#(2;A&\)4L1TJHH6Q]UN]"W'>9.]W9]*%6-?10^Q-A92NNYB1\Q
MX?1'[4FZYO$7DNT'7*2JW"\XL9R2VL#IJ#=UXBP+Q"1G!@RB=HC(C-CN7<5!
M9&R'O9.[.#^R?GIPB+?[+HG/Q44X7R_(H1_]/9Q?X*NKZBHC$I.W8$P--YVU
M%#-0]"FY+:E6!X1O[@ZWIFX[0)[L+?M :NITD]%/Z=T=%/HI?<5\<4Z![,?I
MEZ^K>;E8XN4V,?J;E[U.U[')(>N-&E/0=GQJ>Z&,,F&5AY2-,QZ2UH4\I2V4
MOB99&[!Y]@4E:FSL3XXR8?6!:^JU7MZ7/S9ZN3G_F'%3,R];'Z73>1&4 ">*
M)U$XDTOQ7&BWU7F^[3>>TAC572#R1)6@D?@[.*Z?Y&N21;%2*0DYQTS,A)K5
M*P7$4,2BM>7-3^@G">IB 6M+ #QY.W>(-KK9'O0D2V??YHO5]'_6&GS]YW><
M+7&"(AN5=0#I@@=57 :GN0%K7>$VVJA,ZPD2N]+8Q8+5L6!XJ,[&7]6P%N35
M6I:KG11O9D\;G]6,S@QC0"M19[:1\86,]*NLM'-,IQLKX9\\5G?\XBY6J0Z
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
MZ5YO]]4VO"Q+'_LY_FA[4M8"R+0TS*^^73GF6U8OWB]?.EY%2'!A"S4CX]\
ME) ""DD"$$H0CP5/HM1USY1.BH7RL'M:*SF= AQ)V<]@AYN"=IY"C0D!J>U]
M#@F* .-<VN>')D*!V/S?,Z2=FU0++M<WUBCZFMT AL(Q/%:LZN=,7+R>S:9Y
M6I9H)B4',K(/*%!DVZCA"."$R 1EFNO$]2;<KE'@9C;$")H-S04CX=C7#F)I
M=%\B^IX]U[M3$Q%%'"MN^_-% &)N^S>@% C%S#R1$E3@,SBW(^H%ETN>RO*<
M<Q6H&6(S-=(PM3@B*J9)!")L7WWIR$ H4 QBE$7";"%8*]=M%GNH%UPZ^BQF
MZ(*K0,WPZJ\E*^[+CY5B9J#[;VQ.HX;UEO"(Q$J:!1:9B0J4 :9P#&BF-*:,
MQ0*Y[NHV6-G@\MQG,5'W//K^;M$V$GF+Y,YL%*6)3& &LE7EJE0$4!51@#&1
MF<@B\^]NGY\\.51PZ6IG-C4!U&%ZNF,I@<_;!XM<J001J &/:&([B]MUD2A
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
M@)V=_W/OY>C@U3;)L<H,KBS"RJ=A:SFZEF,#0SH06^LMG^N/>?8+:F/F:AS
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
MQP818=LXH^-]YF$>+F?84A\IH!-/Z$'D/6[]ZI*.B>.68WV;2ZCY-,/&U^6
MG3$.'##<>TC]IBRF[ +.+/+J#<'@WMS-OXC!NHX!U.O%!9@&!XB2WI'R&%_@
M0%7!U-74*DT7]&FK!Q$HQ)5(1DYANHNW<@[UY]! K9?>#NDM.LI.6/#S+,Z-
MB5<_S?]20>,H3ZH\C8N[QE%NE(CJ(S8(G_:40SJL5H9PO#;V=-58H)@\WV4=
MIXKP;@@J[L,Z_I2C86T4:J/LSR/JZ 8F1Y=8ZQ)TC<TQM==PS&YS#+))L/%<
MW:LDF^$9]+UW05I-,'B8"XT\>"13E8=8 ?^K;2  9\60"K9@OO0^:*>Q3G+K
M0)MUKBK.[7CP<6HR(5NIS!X"+  OVZSD==)=]HX0;5,O7,2*U3V.D\,XK#PK
MVI%2>W?]*O5A6LRE9C#J^=YX:A[Z=E^Z.+]HTOJ:[;# #=6CKKUR;35X8$:^
M-BK!&G]V>QJ68B&Z)]TA5$4[O&MC9$@32EW+^&, XK5'-**'E(_!R3 1(#B+
MP2VOR$SE\.!4)34N(I-_,?%*,U+[ _@."]*K@A(\L,5(6P@A&VVBFO#T6TX,
M4=W%J2^,! S@(J^(ED<W)P#7Z2ZX5XTY)E^)_2XNK77HJ5U2!T[H-*@=EDRS
M;%P^_,4V'[X)^?!GX>Z_ZG/W3Q,\TUI5#J>;^^8Z/IB/K*^#T>2G15%A#=+;
M.!AK1IH=XF--A2M'$U3X0M!"=5$S<I-,E LU\$WPV;A#NU;:![P;.!36"\4_
M>'&@\YV7S,^':@FT:84,S1$9*J/7KUY0JC68BJ\_D((/'.#6]5AEO= T$Y]"
M[_((-[82VQ!W(N7N)RI2.?%XA!G"3IP=2R2Y=]E#JKV"P$JQ(KQ3484<LH9%
MERQ$*PKUWCUG]B1P'KQK^=%PZMP<N:P'-X1=N[EB^;V*2<"Z+$^I;1?%WJ'$
MC<"@;9.IE83DPG9/8LER1'5.LOA*@1-+R(?8?AC"H"AC(@VBP!#W-758,)NI
M("'2,E0$M[Q5Q+TIZ-"D15R4AC..C@DQJ#%-K'-DJI1\'TNV9LCKQN"^"-E5
MG:-+\&T$7E$!%;)0TR@Y94>C(PPGR$$CG; C<U7$L#B!L,IJLBU"7_CB7A!]
M6;I'0@"GX6WP\+2ZKV=AD;WNL\C>P[N#/$0T'CJ-+!K97_N8J_LXJPK0YC>"
M]LN-]!R$M;9V>/G^-B/OLQ)/@:$AALV-9^)6AVSP].9([$CGQ,6-^DT<J>6^
MPE-;QB4RM@>$A4 ;"O<"_PYC)P[,$\]30XF:RO>%/Y:(7[SKP7Y*.-94 YGI
MZA:NN<?WQ"".O%8A/; > J*=IP*YCQ3)  &4:71A0&)R;CB0[.N2)+ "DF_0
M=_%#5B48T"BJA,/S'GK+V,$RE\&;/J$>'QOJ#X)SCS5Z]H<4=+(BS/="-&V3
M1/[*4'K?.[Y0]_WH,O>6(89JG%:E2:R,9&^L#<=FN*-":Q;A.IJVL<+?C\N
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
MI=&F-AL)O'',UA*Q(#::T*R4C/3S73R.2^]LM2"1L@P0"^4)L G%(T:WI7K
M8Z#=8)S)-[*82(2Q]2A7. %1E:#GJ,*JQA#H6QR<+BQP$&NGH2#UWV39)TV'
MAP71 L.S)=<E.*1Q!X[6;5"_WBUS^B5:ZE0@69CAC)-5)OPS0$EWOI5T3PB[
MU]?XU*ZQ"?%M!> 0!:!B#T&DGW-49<\YI]7R0$X6IZ#ZJH[66/XM*P '*.<N
MMG+N"0#@@* D5MQMI=H0I5K-K)/X<Y,B#N\#5V(8U1>Z0VD2$@L0MYEIY\5O
M&'5?Q70^>,'6WP$P\+C$3@W;BOM^*]V>,FF$>B'*F7E1JJDF?!R4%;>QXJZW
MSWI<;&L"S"R]VM8$;%Q-P+!Z7S2@,4OXQKZ%[S4-S,'4OMU8-(]WKH$7 U '
M6_.W8?ZNMZ^]R"*M3XC! WDH[;4Y?_KG/QV]^NXC1W>%ALT]L(3M("P_]H(I
MPCQ[<'$<["CT,F.^IISD6L__HNR5H1K5F>_(N[RZQCZA4^_GO=?K[S#=+XH$
M>2%BN;!('P%"D2[1KP-^-))-<^_1GI;"DU\1;#2!&W 0SGB["%I@]J(6S*J3
M:>#%_L$( ?3,P^)\-MXE;G N0#$ I_5-7O?33363URZYE).[-IVFMLGK[Y:T
M=;R6VMKL#%FGU;>AD[1XEI8(3VSFO/7;1)S2!ET0)$U*\2_H&F[:/[?L'WQ.
M_6YQ6I2Y-*CL9F)&_!9(8!S^(LZ;#3 :_CB308I6O\1B..RP& Y_"XMA""OS
M*-+PJ&^)!&%(%- "#QD$T'#CO.&/FGM-NVCIG!O\;.R,"(:YK]=<O5YA,3HS
MS&:Q,LR!!AEUI6ZQI2V2X9S7>[1J*$ OALJ[CP/XOYS*74&P!5Z>95-+:SJ)
M$[4'H\FI"*BDG)+;4RD,U:S4395XD#M$5FBK&!1(P(C:Q=8*%FJ5(_!6N\V"
ME=I4D'1+,Y=T SLU-2?($! \/C?(:=@_+0:!'B3PNA&11]<)";%<H]:FBY#?
M8AAEN;W#C&@P757^Q57 )P?/M IX/<J KRX^7EU<7[R_H1#_-47>?SZ]PN#Z
MY<6U]^%[[_KB[=N+J^>F=GN*/3[CV:;2!M<6Z2=%E .;*_0/3#W@ ]%9.OEZ
M2]!8V"Z>6,[!3-N&I=UN'B[WRBLEY1QYCF% 2\-*54Z<Q%TSD^=H08WVA_PV
M2'5[17+S#2^*B4IM;:!5O+EVT.  X&Z=9=)+ECR"C)=-1?[&SL\]G+F( @3,
MQZ&!/]YM!I:":>2@J6^)(-@<=FK]BW^ R1^ <%&&J029^ZE_@RGGTI,/2CA[
MD )*RQY4)[5NT@")Z<1&3&?6S9*ANPM.96J4P0A!\L%Z5R49"B[?,LHJ32\O
M_+#TIZ\13Z:.7SU2PH\_'<_M;<9S+OSDV(N6#)'VCBR5<0?Q40U,W_7&BU^8
M"9*H$6;*@0W[J"=.0)/)H#'LITV(XQDW7?+Q7+I,<Q)*.1M&UP>GQD:U4A6G
MN'.S=&\3IQ- HFZ#Q/?H /"[CF/>[.[L6$Y*A8U%0\4M5&\#C.;HK[90$RU.
M7F^A)IL -1D,L*0[\%KO.D:D+3[29&@;&KU2<YR901^K^+'A<3R-)4P^#M)/
M>34KPSGVOX;S=Z]2_#>8MHZUYWM3%%(@Q*HI-U:07EZD)P-32Q"";QO#9:9/
M-*%M"^]6I=C13X(T\%CY )G&TS">)1QC0*D(H]S)06CE$;<F0[X[10I"WD5W
M'BFP7[DT!K)MTI#P +2T<!OP#=>MA]C1@@+H]QG2%D_ _^=>,6?<,&6UL<FZ
M@> ;ZX 54J\._QH#*2YKMD*GDO\"U0YCS[C'%?$M<N\NZ:D5F)Y:./'2JXK:
M_KD-[V@4-KA/MDKJVNSXV_E>(@:H ^TAHKLEGH ?O.4C\ _BF:,05.)]R!M=
M,&QF1ZCLFI4]\MAPUQ4K76D"W)&+^Q=(^R.S" 2ZX=[LO@W^R7K2G,]U9S&Q
MTT+9UB3__/9$^/46:I&:!-BL2W[=ZMZ%@<1$Y;4.7BWF;]L,+?H-YP ?9>:
MNY3X'4OE8RQ4=[*1-O;8#\27&> 6#7BSVF^-4\Z#YU'[IFE9("2D81)4^$_<
M5,2-&.XB^8V2-3(-UGQW>FD!?#VW?FT2:4"3($XJILH1F@RG:]9M3"%5>A%N
M[H8GB8SEP'N';>\Q77D:P<L4FL."&=J=P=NQXZ+H(=>;0SUM3DE@F&<$M[>H
M?C TONP8UT^]]&:]L.LSX= Q>O^14%_E?!OS64W,QR[7PL;&$NFDV%"5YUJ5
M&I*:)"[(U43'M%7TY$N'F;F0SF (@Z1!K6D":T!2IEA7Q9('__RERN,BBHU8
M9[/,J&@,H)"?'!=%A4WDX.AAZ]H<_YUQ,BBR=YO1F/155E_*0+@+-)_0M)J.
MG4HM^CD]I/YK_11\NXA[2'66?KFJ!<F%>!Z3^9Z.*)DKLX>TUL&I371KF&/?
M!6F%M& 5E:O!AQ6+M[/S?^Z]'!V\PCF&23(/X_!54>.%)SUI!GFO<IOF6@(V
ML^])S'W2L@#T3760YLL?8N+TI%6S!+M=VIJZ)T^/_]C\['L?[/PT.70IW@1+
ME!/#;KT8D#:GU (:@GW;Z+F>?#-O!7?C*.!75!8ZC?%T-]!;S&&H2#J+\I0:
M.XD>Y?2+;%5F.R6+U%/Z+LXCZETUKS45R/"XW*,2E$QH7CA!T'8CE'WO%%[4
MUC473A,S!O[PIS5^*Y@ D!%Q<4<7YY3O;%9EVB5QYZS[G6QT3>.]C$>A),9%
M<L,BE$QSR4Y#2?>G<\)T6D3D\L:F>2>+"KY^@J343L>U[M%&DD2:!7,RNFN]
MM>H\72ZBIAI+[SIZ"<-2+[_[JA>ZR9JS_]^:;]LG+P:/IQ#/8S_Q"9X_Z7/<
MI2#(>AQWV\=9S3X^PLL6FLCD9E'V#08AG-@D#HA.'_<BV'[Q5).!Q\SG;<4Q
MZC)*Z3&;"^VHWL,AW=(IN>=SOV,C6G:"PF0+=$S6R?KMZGFAJ:X?L-BUD69B
M(^E("#=6EG&+O"=01A;AXSKD*8X$#&Z;JEQ*Z!+-^-1(4'8ZSF!<WIL@_?3%
M-\6(PF+I^X43LWXV]'$OQ+PE5@=A0*\=R+^?H>Y,)_1=,]A"G2BLTM$!W(IG
MKN4V0%D'#121F7"E$0F4 BG0N0R3*M*L!*8U,<OI:19Q-(@B4(SJC)SZ>M$R
M0M:"!>7]B[9QN9C1P389LPG)F&<E>OKKB[HP3G4CZ?@14#R&FL%^<%'<'1T+
M74Q4+0G<DP-V4L"Z^S7_:5(YCI'(SR:KG[EY12R)UU,LRB+7[]YE@O;?O2,/
MAM)64E_R;+@(>U![- +ZD+FNQ%!%VRO-4N6\<)8_,B(+4J@-2)XVU5%!"<BC
MBYKE]N-V)!I]/ ,]I<BT-'[&!TE44D+2U)M&HT_Q1:GOE>]Z?>W5-P\!Y29N
MA,1FV5.1C O=),"(.D= :4*1>!S^BR 2'9Y/@ID8JD(?#N?R3J*CM9A[>R;Z
M)V+Q&ZR?.7C2VU4:XP6X*H:"<A#FX ;&4TW\A5!A*"U88I9ZA=!VLVU@V::S
M#E0S>^9[$Z3))R,S44&NCW02J]3WX-(<90OYL[XW$U%3*'"H8G&6, [B9,=T
MTEVE834=YR0$=X0APJ6'\8= &W%A!SD(MHC-!3\J$^*UB6K<@]R#E)IE4L1Q
MKLI6M J%O2)D!^;%);;"YP/424F-,MQNB9;CWJ:LIPH[M\2AMB1\PBG&UK3
M3%O^"3P=K7LQ1C\+XKSV$2(O02T5;KXXB3\I>9<@CPN)$\/!K*BGA!Q,,!A
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
M;(KH<)LBVH04T;.0_R_[Y/^%[@KJ78'HB%9<:;2Y@MZIH'-2')=^76R'-H/
MY40@\#E LJ#]IM3!9=(CT/2!148S%<T[?1E=FR2 7-<^-1A=#H30@Y$9@%J!
M@YTZR8,JTNR=.'(FM64C$QTBIO=$9Z'1U:_/F'\"?_.N20K5<SOUI(ZO,SIS
MRWSJ6Y8U;M9J.]-9?DMQ VNM\YJI4^T_,+5O1W]NHYQ=5%'9!U-EUZ-&L=E,
MA%&<"]P+'!+WLM,4TX89B?-*9@E@WHBRNEA<>VFYKS'#H(F19DC=5%IH-JC]
M>D&;[EW(.X63$&%0209$_/SAKY-$4)C0V'&!A810%_GQCI;T#QPTMQ=OJQI5
MCAG+V_KFUP>*)Q6S@3:?21DPG&:A;_[M=H[NV-AL78DZ0W8JH9MI"!S=;$?.
M,)# _(S41I*N;441X#HG"R2!TG9PD#.?<L>YEE$9AWTT>(^2N4V1(ZTKEQ T
MZ^??O>K3[U=ZC:Y5N?=A,AF$=E\[5$,_+MXTQK7]I*6Y]J\8=.B/^/I\###F
M,W%1#J3MR5<S5<8DGW*E7&XZDHU\WN@"2IYH%K=(,?V>T(0WXJE:/OS3%]IN
M)R+6%#2VO[5-FC0C:"Z):R=5-%8$[AH1B^_:F](FT'U7/MN$(44XFR3W7",G
M99QUT>D*_/7=GOWPZ/<J%LL.J0)5'J*F3"749UH#2&0,I\Q<Q,T"M'2AF!J6
MQ&/QND(A/6G/M"NO&/= [8#CLJ(L@*<2N2";L-RGU&,N"HBP.619" 64OD#7
MS_:R8]F=Z7+<UL@>G0-FCTO7B[CO ,?^R_G-7SQ;?O,G$9S7SLGHE?-)SG=_
M-606])N+JW<47<!_7+Y?0RKT5PNHT)$6>A#VPL9% V[JGDB83:<(LRC8&T"Y
MQ2WST(\XUSE4E*@F0JN"'*QNR\C=K>J=77!(Z1 P'2KEE,VAFYUOB4'JM3SU
MN3=IOK6=GB4I0VKX2MX\8,YU6VNQ9"^L7;;3A3)L['*[+Y<BMF^C;090<;5J
MH?I%)5=#V)R/ZK%>!N<;NS&VZFP ZDQ@!HYJ"M@"1Y+U3O3[IJH?2=M.*T*
M:,2#Y=2WU0@&3+.I[%5_+ 'D  \9QO1;D%#9'?%7&G OAZ($>K9%_'C\31HE
M$%32X)CKR0<3->](!DA\/U<6BAPT[^/7*XRXEE9B*(AYY78Y2^<Y,J?Q#UM+
M-MK6'\7B "'W8[RE+)_@FVL1G5K%DT//:?M%QMMR7P?+<;3%<FP"EF,9H;>B
M+6@#<+9A2UOLU&1.&*2258 O.5LNX@/^-4R&&A;7YWDV\\Y5$)';-P1OZ:OI
M, >O0?M5:(^FZ,KDO-@_&#GY+"?SQ.VS+1*Q:Z%-\(HVM][%)D4<55UZS-0L
M:O6J6\O.;;U/L[.>7^M]2S\P[\4%'T]N6%MW5M;8 N\G-*F)E[8I*I;8QEJB
MVA1?&U.4%_0/L41_&^7' QZL[I,-LE5^SU?Y'2ZG_#I7^HNTG]QI2.IO_0++
MO4U(.#V!\[L-,:\X^G7):5&F4Y,-OS A]'@ZM!.V2Z>>3X!"EB7O/HLC1R6;
M\YIFIKW:O(6&;L(4&=:YJ9:1@;2Y%;<+<:N7?JT2TW<Q:[@6YL]++=!ZN\]^
M??IV\!/_R,RG @&N]4+7)=.MK4JY6;NS-8S;A>/VF;*R%$9IF(IQ68HOQE*]
M?ODLL527__Q"53FPUWGWK[>GUQ<4N?MX]>'F O_X\'']L%*O%V"E/LRVNG]5
M;^Z2")#5;:"B@_'M5K\]MJS;B+67T(MC:?@U\('#>,9+AH4J<<9H_)FNC@ZE
M30U: :+SL%U%Z=(#BLG'A"@-8T9YIW_^T]&K[SYZI^&_JYBS8:T(#YH\R)*3
M*- 4G5Q&>*?;7((O? K$].7!-UI:1Z#3[Y&G"NY#O<;24KN)@O\.JQYCF5OG
M81<8[2JRO8NT-(C<II^";XC-]0+B(\5DF/8,%[ZMK\N"ZC\UAC12-1"K>1'F
MV8.-XZPS9=SK!6BF]X:2YT*P^%NMLXHW/^W#+"V%36S)%Z=HQMD%1[H!)O%#
MP2DPQ&!T(B5_[D4Q' [%1]Y4:#@/&<_UX9<"2(T:ZF.A,S<9B@(=UJYO@2@W
M;O??N$#?]N)@FD-VG!M[MSO/B'>WB9-XH,/IY23'Q[S5JB/RS6Y.:Z/M>D.L
M$E3>JKA5'?)'R!<>,V7-.<=2OVK*#*!B&XO\"$J=%.5J$RK/JZ?H+#=!UXD<
MC)):/!7U8H8AJ*\./B>&&F.5,E<4-XBC=-M32CUO\8$&'WB\Q0=N CYP,&C
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
M7IT@&7833\'(-EBD3&^V@J8BN4E#RINM(_)L]K8:=[MMC7?NL6U;<)[CHAK
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
MU&KHR;/53AT7!>J"$2Y'F: K:1,,HA%[4VX7\MQT(>N6)2WVW!KB+;36"#E
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
MDWH2I#[8/.7SHQ[<KQ8LW?N-H'Z-EW;W*_1DO:,T5#__='!X^*;@_V!.&*=
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
MQ<I<PUH3I%%F4DJ8XH=_7HDOX-J""97DK8SPL<Q"X'*XPPDEXW7Y(",F?6Z
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
M]NNN!E\]?[S+P]2SS]'1)#=49>!3-+G-F/)76'S%"%4$CAHQR&$+_HE!LL9
MT<2YLQE%OOP(RCR1ZG+ LL?;>C+; Q>5,/B:AF^=J\I;8RA%9^3:6H]+Z[^<
M1M;W0KIKZ]X ;2+F7"5[B0%N90P?;.T?U(6OEKEDWR>AEKM_%4F)(/O[C-YI
MY7%-V/93Q!H5T*V,[>?>]%[]H!!I$?-C>:WL7,R&XM$$ND2=!WL'1_<IEA6/
MT[>K >UBVI$@'Y]4RWB5@BH%/E)@$P97F+GU.J5KG2*"T)Q(@2>"(9]I"3<W
M8[>XJ,^D KUM]6B,4"7U?&5]?[AASD=!5I0>S89PSPF-UIFE&:@HD26( FV3
MXW,1?A;7Z)>.01W'^(_:4.R03EI&E"++<=0S9Y"<>YH2%WU'B^J,R9CF\W:#
M$P1]QWP<ENKDQEMO7,<U>C6XRUO5'+C!-3D,3MQ"D)[;'Y';ZU47GM<[YW4<
MJI7P?#3,Q]YP';X=@66KW3"EJ",@<V?LF.5F M8&4S+C>1'NI_;?CF3!#[G$
MUYTST5P!\V<LRB3$";].81T%PF8I_S/"T5]J7.J_< I;3/]4,ZR@TY>KD/Z1
M234;XRB":FJFB,!E*!C:GI.NO$I=V(.)$EV&0#+KDHMU4_ >->J77K$9A%FK
M@3 UN,'OF/PG %Z:+0&/' _Z .I0FY?I.;*[]T=BZQD] .%ZBNA:1N.$R^0:
M ?+ FEG2H2RD>D8WW0:G-IUL:#PR%[/'NC:=^\Z]*?MXQ)Y,%.X#1@O.J\&R
MGNR[EI:N15O(<$IA';=ETP[%<>8!XX?4),)&*H_.S1IUWC;W2I//L<[T1N4E
M_PN+&-$.1 OS.A/S*9O, Z<+A?^F2E5;M$E=&F-Z%DZLD5,13QI%A,O+T&9X
M;<SOTD4M W0;CK [Z1F<]R2]!:\=45C1[S:X%"W3W:KA;@6VOK ]NXH?\.?+
M+?GV$;I@/@K^!H_?^2V];;TY5???\8"1C&.9>>'VB,*-!MOY'I?NI1DP@YDS
M"+(+ZZ.Q\#UFOLE1\(#O:_K7DI3:43#3J0K]&27'"O$9&]CP<J3ODJKG_P"_
MM AN]-]6:.JIO(;=Z_>CJV@F+<YE4YPV%5DFDFMS]>V4)^V:!C64;2 O/7L^
M*GL29H/GS^[>OQ^(G)H6>D (@XVEA%L;V*-!@SHE83(2&#Z,T0@$2Q$MR+G4
M_3$M'P<9WG9@>WH' 9IE.U.PB]*:O7I' Y:!7P$+R[$BL1HAO>7YBNP>:A42
M;#F%\M6G8,-2HW';K,5M._"R_25,-8(!/>,1YKI@GHU5>D^XC6X)4]O\0)X*
MFJ4AC@3 G]*G%$6NEL:=+OJO@2W+X\GFUD3'$#3/ZAR86.R3G$2+-5XU\2BU
MS301VVM;;LA!9L>B3=!1B%1.;0-Z2_"MP$S'JJ< IW ^X+7IB+[R!3Z:+CXB
M9JJU"@5N,](;)M:VOFP'6)-/ ?FZFX#4CAUN._*+3AH*=SPG/\#8#GKN+'5)
M./8#T_5RL]K68CN8J5S,\8!HB+5^^O+[K3C1.P]: QXEC0G/OEGJ2536#1!H
MA)',>9IX8,H^>!DX8K?*S(7F9,CU$!:OIBT[SIH&U(,J<AD3\E4S!X_#C.OB
M"BYJX"G2'3@/?\>SN'GS7M3+1@&=EH2-)_IV+$L$AR]\.Y9OQ]IPM>2 A7B%
MU+5"2M)DQY9DHC%J_XBR\CJ(JK.JUXS@2'<P*1=N^0@A4;H_0!"G<@S69*X-
MO88U+-HJ/!;U<C8+W:P-7;CGC:CZ^=%XQ&O%7):%"L$0IF*3JM*E2+\HW-)K
ML$OG4P%/Y[\TTKJLWEY.)HP"A<\"[PZ6$[GO@^!28JQB@OODY:#;8L!N")L
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
MI$/Q^*U]D# 6O[45&<OKV$=C 9:5/G_3 YHWC4[M(&F-]B<['.:[V,+S /.
ML]&>#[I[?X0"0@Y ?D"#":U&L(/ .-/%HV9XTNF)5P&/2/ZY#$LT?CSM=ZT#
MN)V3 5,<5X$RQ.:4F@E3RM!/) $I5&E7AD:1>-52!E8C><]-!B3?'O2L?9#>
MB5)+LMLVPDS>*'D+^Y_FQ0Y!E 7F(]S#F:"X%Q5E&Z2)!OX8YZJ;"&3Y;O#[
M5";<?TM@%#<R&_<"Y<\(!*\*/:"750X>SJL'RB$-9'*-^%F*RB*-0O"VT&,=
M<@NDM2?[CLE^P.%9W=O#"!>M":F$K"&:&I(M@BHPBZ?Y1YFI/%(:[<XMBA/Z
MG'.NZ:.N-BX1&\>R#0U]X::'3+A7S;"AS<$JU:AZV6?)^&\E=@6E$S#3T&PS
MP"(:%4_/(LK; ]E<I8:M1=6KN>_3UAOFO *.V_$2XBDDA"$(+R*ZUHQZ]@E7
M_A)LSAQ,=?/!K[:&!/$ +1L[;A2-"#L[(6X<OCO9UNERC$<X0@1%$":-=#$;
M21![-QR0X !Z,Z\JW7_(+@/_PHQ*H'18';<N=&#*G>ZD)8GPS?S,U6N>G=O8
M^2P-2Z(1'PGI>12P=;"YUW"/QA)S1%@G1KCQ,8"N=5N+^8L@]U147[=D>>I$
MFN5D:*I0XK_D;!ZG"RFYK43'H')"<!8T9P^Q5%5.OT*=E<N8)GVA^N(KJZ%_
M6%?)L\;< 0#T/8>^G$%']8N\_?EXW%F/(_K,;><LR@S)W46^3.%)SA@'9NU\
M2((KL.IS$7H+K7NJSYWV1P=?L0D-]G50?W,1H3^V$\L)DWR/V6)+K 0*PRWA
MH$X6%$BR$YZ_XSJ(*[-%+>-J<J/V'637KX::6ZN]'=^YM_(+..XYMOA3"\E.
M]?<6&4N,ND3=RS6HH&T]+HBZ7'_D<6Q>I]IKWZFV"9UJ:R54PGL%]L"*:VHD
MZXN<J4:P.8#F"3ITB>Z-I^5@XSXI8AY"VZ:?-6"+XDI#]AAIT%NB_RT<3!5]
M#Q=.'*O?K[.TG..=JR\PSHEF&;POKPMK]JDM/Y^*S'$'JS?)3)B!REB*()8B
M+ZA>_P\.J.JEWZ1TQ1S>*H-MISFQ^K-,PD'1)HTE_DU=AC&W#< ETF9G9*RW
M"6.NQDNF+8"/RB*'/8_T6=576<'8*+UE,YE=\VP\=*=3 W?0\H+F2%2RK"T,
M9MU=MVMN?>U^]6<Q^AQ#9C"HI O<*)BHA4T6<7#[H7NN/R/"R#0^1$:4:O=\
M4=M%-=-3G'!0"X'VZ.Q5[04S\^X:4V@J8Z):?-8TC2,\6?UH]^;-I34VW7WV
M'"<0TH_N>KXYXF=K2D4KI1X)B%J?KDLH50J$6(A0E8@NC:G?)-"5TU?3K#Z
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
MTP1>Y'I1^5G >:"]0C04!L:("]@-GI*7D,!7\8#TU ZH%/P1?6ZB+'@M)2Q
MN*.E2>J#U!&H^2HD9"XG8 .B8="P\0Y8O^"H@&$:Q_!Z,G?#(L12^0R#);,T
M!M\,%&2=E)'@7;\/UY*482PQ;P(Z-,B-*\ZRY]21/666 ?^#Z-(OW;:%WIM_
M)&\>J(S#*EK9B!C.MSH[TCN7[T^4*U1RZU^@L$?R(8L,/BJDI2LME%'=_+NL
MB!+D:A!EJ!O ^@,Q2HHDM^8>$C,0[ *#OF#O@>HIT4'O.HW?.)^7$?Z_)SR?
MCQ@M!=EP +)AWY<//)OR@750=#*1&>BA,D<:I!@3&)K@Y>'G@ITSS;J@BBIG
M$4R299%_C<X:\'..]B"P)!I9<"'<BP)3>$FDQ'62DF<FYO,8A"59;KO!+Z")
M9FF&T3!2;?SH&P4WND=T3B9/MCUW=1$%M[>WNZ&.2H(9T!?;RRAZV-!;D44[
M%VGZ&0]H! Z]K(-LK1.=4F:#^B30WB<OWX3&,-@QT6\;Z[?-[=N2^:*]*QU\
M)7P/@YAU?&+\;/BHS-CD/PG)W=E_?7A("3A,:D0RXBBL_>G^L.6GPR]@18$)
MY=SCR+W';G">@/4%=F2(<8)!L$A+TI,*D9A@@^]ZE_&"PHU*6X]&C^J8N% S
M&VDW'\$M0P5.EESZ!O$%EC[58>SFQ[C-<H9F1.M7Z (M?U[&4?/#2*+#M?3I
M\J^E'EBX]/F7.>Q^\]/K5,3-S]!53I86 #33_"@=_X$'NOS2\+I+2S4FA%RZ
ML\V:+7T!9HU:7G,NY>>ESZ9MFY:7UV"1+]T +.-KN?0IIL0R$2[=&A.J2Y_A
MT\QGE?^0*^!?@2%#TY>D(WCL2]/;F&!8BI&+",6X32\"^1A_7G]2@(6/]IU.
MW";RF@PVS3RY#:%GQH%!]R!C,[6B=G =."I' 0<=<71X0XL"BGQQP+TN+G#U
M25J GY&'F9K;5X KBS0CCQS5&:P3'K((= 9F%2=F<A(CV9A8/+LQG ::\-LS
MK5:!WBJ4XN:@Q^ IX[(H*LPAF-ICKF$!YBD5-T=.EG8,NGJ"+I,61FT9!B,I
MFG=9G3IO+5:XG2J\#R61YY*PXP94XB R^(=.QX*9D&:\G#L2&_">-J_13%S<
MF\3?#?X%4I/9A7:/@N28E"DQ9!XK<HUY/?F=YSB6%+'F,U<)^>G!YR2]Y;!;
MF?"_,Y5_AO?'!&*&5$:BOF(9))PTJ]B$-L45\F.Y2.'JAK>$&Y"EL4ZRVOPZ
M"CY,,H%3+"83H*$ S2R!I1QY&1=H+;G/>]B/-,EAS'&6H@[$A>>Z0*B^+'.V
MO(5(63$W)$H3IC,@Q2G=X?4;+")!AUZ'OVH7:!Y&"0&/5%DS187)R;S*IZF,
MJCU8))L'5Z2L"PGLBO'AQN1!@R"10-5.04HHYE@8:NN+6"+!7]3R0@[QESF^
M%*[;1$WM.SEAH#(QF8$J0%=%+;A4HHKK&'[#N_KHQ>-$+VJ'W4ZKPHK1I*0R
M18Z!<9B52+?$U T0/IMRE1 5$;Q^3L)+XL5PSHTGV9"ZTD1N;F4NJ!ZD-8VN
MO(JX?LO8H!0:OH?$W "@*P@ET5DM@(Y+85-@Z=:H1V6AB GK;^M^<SM-@ZD
M7C/N6U5?8[18ID4V&+9VO6:)M>VU', E1P+7]%DV=W+U3U(,S,A"WKT[(@1U
M"TN-R58& 9X7P00D3$)ZBZ3R7'NO&&:O@J5\6[R MXI?T!1..&D^EB1LIL!3
M,'49%JL(8N \O$J74G9ARB83"+'=X*022HZ/&PB*E4^^0:"CTS#6*0FDKL;R
M3I($K[Z45-H"3_H%(X#[>SM_@_7&)J[;\%YPU=:#.<6\$#>F;VF3<30\U0;C
M-MU2CK,2([0'QP/*43!;+2^F&D6^O)Z_+ZUG>(K?O\=X(3+QH;EW9355Y1<@
MX&D?]0(O05$;]3AP;=OE-;'JGM/@3 QHTL+REL4XT7,VB5'NJSRD,<.D]\C9
M()3^=!R;E"M0:CF/M-Z[TPH9P(TYEXL6W[]+E7$*/1:W7U..V%%G (9NWF'H
MYKPBZQ\>#/G:\,TY9<>QW ?=AG 98:&CO)/(0-@&[\*_J5FP' COJ-S\\/#E
M=O!R[]7.Z^.]EZO#\U]#D1U%[53V\T\OC]XX<;M>[/%=2WX'#K?H&9E>"+"B
MD^ =FD#](=/C5_O;P8OC@YW]_:/CM2;3&9[Y RFUO3WQ6[_;H%3;P>I4VU>
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
MT_0SFWJ(T9Q%^=>SZ-W*HYU%!XV+M[!EF4$AXT5_ZOX,_R[M4A\8=W/CU+^
MLP%.2D98D*L/28=^T5>AN8$QF#[R"X8>) 4WKL07N+0HLX1_9HIH;M/L\US,
M998[D0IX9%/[-(EZMV4)5 P<I507Q_?_&C8!+V 1C#&9'8'[Q?4]Y@U4@OWX
M0E>^T5-@AYWGW'GG;\40ZF^:Z6"5L!ORAO4AE+VY+/N!VX:G(FEEG8%.UL@O
M\TSF.3 J!1#S GC)J1'1_*0*[!]"4M=I'<V@W*-$22BG DU?BEDF<QT%HO1U
MBWHE'<8?,YP@0_4?-OX9Z 10+56D@Z14(%>["87IJ[NP' (^EH84*0NULI4J
MDS.A>*/R-)8:<A!^FF-3MK[QPED<7/#S3T?';Y86V5/%VB.6]-JT<1A:Y\E!
M,"X+JI)"[HG53+$"8B(2FFT=*B?*Y5AB3>6NBE\=W!6\>G[ZZ7"5?FIIENQ4
M1P7/UB%:G6/]MLJ'RCITSWEKO+U<%.'6(N@::ZO5J A;@'36&$NZX@&X8@H;
M+H/;J4R"J)2DK(S2<5MK'460*5:&93' C^M6ZX"<NZPVQK*I?S"./V\4;;X%
MQ9-@/P5#@"S%[GNJ97K&6#ZK[&#;H&YITRNV%.;[JCV.^Z(65D@B=6=HQN5M
MP]%50GTYC<KF)$F&)=;$$1O!UACEP<1UFZESWKJ,= PD7]QGZT(E^-0^TQ<]
MFS-LS+WU1<_/H.CY&\5*1Q1H^)^J$^=@F=@FR'2RK3UE4NBWV)]I.9L<1[9'
M4N9N^+OA-LXSE6;&&JJ)$K=1%'^[W!M:E0+8O@X[5\;IK=C^IC[+]9+R#Q?S
M*)NW3K8Q)NF&U%=$&NERW/U"?*%B5+#85!H1(>#'2\0PEK"1"5F&*TPXUA,U
M=MTFE;+UUJP*'^IBQ !Q8==?7"<*8PJ_V-T[_BHO;JU<B=5%6ZZECZK5L?:K
M#RFFB[V3N<+]:S@ >$*5^=_4RG?$I PZGPFSM>+P]-)6MT$(;ZSWQ%AG3F\[
M%TW'M3@1$G4B$7L=[,N8DA:5:;^QMGR#<QWO?-DY;Q;:WN^JKU;2*.&+(E-P
M,D++%UP+%^L94(4E/\) <*&"OD/*W/%<]#-TD)N*_!I*KL6?>$H;YK$L%=T%
M^IT5/;TGXX?3<<U*>.Z[XK>E;5MN'DGH,;Q,+0'Q_/V"AV\>N@1H=C^16R 9
MNX-]@I5BG0\$_8 :A3^_%,W1O9VJ'S,5=CJQ=G/3E%>8=;P&/7VMPQ!\(G,\
M$2+\5HZPJ7=*II<S%$'8$_=?!X,7>WL#6')OJD7/]62-_A#;QI2(TAT?/J)R
M'I=YI[R '5^4A9^E95(8@_Z=BF5>I E0CEB0,<M)0VP979 ^8 /<D7@O@BVJ
M7@'.Z$THH'_T__PTW8MNM[5=RUKZW:VW[HM%Y1Z[@IL\0KA\IU"(_96DR4XF
M)T#C2.O\=YC)2+$//+/<,=?<T1?!O\2W?:#YH)RGB49/JM5&< ^?3$)IASV)
M+%9ZSAY]NXQK(&^H?7WKGAO8:5$W!$?<M_/IP[EL*@K"(SK7?=^$U;F%Y4U8
M1YS2K^Z176^W<W4/ YEP-ZF*A!:&45J.M=Q;-N8<.+QQ>H-XFNS9&.,N3>(%
MJL. U2');Y+"*D/1NB1U[1.XWBQ) V02M!!$;'6D>0A:DKHDF82SL3DS.9?4
M-''G_:M".>H>CX69*C%+::0$3IK -^69@[O!)[)3846ARL)RAF7@H<T[L&T
M:]+CJ[@M JT$;2)4-W6,!;WXF@?I(!ZKO&86KR:RC:MS.?1U+IM0Y])?25GS
M!;+T1D4RL+C*( WK_51)6JA*!HEPJD!>S;3$JHFEW> 7:Y^ZB*'&"*WN=-==
MZGAG@<IS\KD1TR'%GUO ,A.B6A+LN\%5V\<#KOO5TGU01;)0%(\7%L899%?2
MV(/*[J[C*SMOZ*X0H\&PNA:OJU4/P;-O:1*0!FBCU-ML!HX6B%500>)&J)@T
M$OIBN>.[(?!ZB'UQI._L8,3ZW522%UFIP4;T>4=.!RK<!"';\>UJ$6O<%II]
MA1M-!ZAUV-H9#/=Z[R]7&4J7$D/\I@.1POW)M0]7=_'F[], NS!U,4Z=/ZOJ
M*W>VYL1 E\<RB406+, MIMH*,NQJM'ZGL>5R\:3,$I5/:_)2V)$'&9%(L(7/
M12.P#\[V29(@0#13;Q\<[HVE8/ W2,JRSU&G8$4P;K5Z"ZUE+$+ !>B6))?5
M%R#+KS.:RH'MC),)2:HBO17<)WV?LJX[@<&G.763U4IFP/[,P7M!U2.B_[^]
M+VUN&\FR_2N([GD=T@M88TE>N]YTA"RKNC7C<CDL5]?,IPD02)(H@P ;BV36
MKW]WRPT+1<DNDZ(P2UFB0""1>?/F7<^YID-&#O$#KF:"LP.<"G9@S'E*3"'=
M77KH[Z0%(F&E3+6@KM%O@ F.&)\.\ZP5\I!D=@CN.=@M[K%?$'[VIB)D+9@@
M4AJ)JN'+K!"\'<'.H=_[K7%8G1;V?S4P;72":I\H6A%M&0<-S+$J;+\(AQYC
M\99K91!.5X[/R8*L0)[WB>X#FA?@/.U[-OCE8,->AM.AE?;NI"L>[V'[R4G]
M\CH$&MVNGXH26V5LYS=ET2HBW(9/=5,K<K3ENE^;:S P:  >O*H.[4:)6!I4
MTF?>&G%Z^N*IUFF7Z,SGM*-!$8'5>EXD=(X?OW[U(@P<6M==25#@ ,>C>)LH
M18M"G-3^DA^0Q%^.KHZ"J4(2#"K-+18*RX",Q*)<5?/B)M=5GI'58I5T70^V
M:K]\$#B#CE[6@]L%J7V\:OF]2J4?P=;2YK9>%SY.2PTFBL@63O$NJU>"'^7*
M-:&-IISDRH'NH?)D^V$,@P+3AW1XK!0WFT9-DL)'T7*I$% 3OH$'P8Q%12Q#
MPCW ?HRJYKBW!">$0HZSH5; A&#.LEN52F"(D$\FF*:HX,&*4^4"?N0'<:B&
M6'!4Q,TX4[O+3H]/';!N.A-TW5Z5PN)$)9MME=@=50T3%8IE5I24[B8E@-/P
M+KK9PZJ%5T,6V7MX=RXI9VC^K:.*W U$81<F_\X)V?=%C1)-$#U4[)^O4+Y-
M<2KNQ#(J5UV:[K#UN],7A3NP3NNF5DC1&!&- JTK?P\C($[4$?=&ZT!$&XXK
MFM9]F9+HP4%Z*&C%RF-V@,W#;A+VY*5P$;XGEB_+:U72.G 3$24%#B3X0 X=
M*)-"XPU%0HZITTM>UP$XF[:?@FXP=/%-T63HUU5-5C-SI>[B<*"6):+;Z:H(
MG2]J7 M11V$0HYF:9?(;U65?.WY-__WH,O>6,7JLYBLKT*S*:.G6V@@9"*Y.
M=Q:10Y0[X_#[$V081-[JGIKD!Z?7[ISF]_,2;6*5-K4)LJKXT1D)KGCD*P6C
M>HA?PA*$AQ<A]O-\\UF#RV,.L\XZA;K?!L,@FF21MZP6(_)>2';-;1A;'/DN
MAUN"-+!)#[R!:=-QO\DTVU9?]#AZO(M;@:.?T3ESA3 TK[;).V$WDDAG*_4#
MI_-B61/@$1'?"(\-.:)::9EL$"><))+4UF%P%5LE]Q\F!X(>>HSFSI4BGPH)
MJY,11R+2=TC 5+7%987Z4%IS]7*)Z/**K:L7>*5CA0[LW"V;DZ <,1* ]!F%
MQ.!*>/!,F! /A'<55QG7FU0 _DQQ5?J-$EV36/8)?'1(E1"2(Q6MJ0UOFA>X
MMEBD,8XSU!?(9"WQ;*@QCB%[TCL00XL*!.8F[NMKS%.80*U[+-/ -YIR,[F1
M(0O02MY5<>VAIC6G,J_EM28J5U.,S>JLKQUZ]PA"5FA1:<[D%9R@Y;4+U\(Q
M31M$-</G9&Z;$R+W<T&*A51G^=E\/@C'92P]T1O]V5AZ\CA+3[8D;\,(2N!5
MWTE9MCCPZE8AAOJRQ-Q8&,R+C.+&=0DO+NU[B:YXEW-'FQ44@M E'-+"QWQU
M'.XS,0^/('Q1Y*FJM+YT"REN 8UJ*]W;%!HS_N9R*-KXB7NF:1"KUNG93NX]
M-#/EUL#%ZR%[Y5>8)I0!G'3J\1SS1]L)U7HN0NO73XX5M8%59UTM+'#E0"-!
M,BA$Q$"J2NMHW=CU;ZL8-EXY-44PK%7!EZLL$2V1PB874DPQ>\H"/&9\ @8!
MHZ:>%XCV9LK%0N>I=!NYO>V2++F:5V<53/: +"LO, &&U#RZ1L$EEYU&HTU.
M#H;X3%&.1Y.HA N\Z#V<.2"4AT64J+U3 <=/A^')EUF1UC:?S$70HR;8#@6N
MQ%@8;9Q.1TL.+T&'EGK07W&O:R.68V2_9:=A#V?K(X+;B@\]MPT!P"D3#4HA
MT35C5$9CL@%]N_. /#Q=<]K79("^+J,OM&%1*G(C9ZA:<DG2:#<)"U%T_3YA
MT] YKW?Y$"R!SL5KT=[XO-]9UFY+0KX?+.3G[WZ^NGS_]_W2NB=KN,?%TAV5
M[%:4[ 9HVQV5%IKT2[-8>/#4%'O2])24 %XLV5>9K#IZ<4=J%79 _AY]58U3
M8P#R$F- ?E%0"\.$B(+FZ+CRB<F<;2RDS#??E(IIX?F 5 BI6(*O'8,$-JC:
M\0"O& F>3KM7E'1\^E1*P(\61\&'JT\A)O>;K(YR533(>V(<9_5%Q8T5<W\K
M$,";2SR"/7\$XD,OPC41SI]AKG(.LW:22%@9NFCP9,>:5<*CITB#[;-@#XAZ
M*TR]A!LM2"O;^9U6@HX/DVDCZ%&U*[W<;H1CJ\I?=M_>G;B#-$QFYL$-!LL2
M8V4/J$3C0360#Q=MG+5H*;Q<5<(KXR<I1T#^8((]T)C7BC+3!,TPO=/O='X-
M8>;.TTE:!^?;W$8(-(H,X";X\RY=8A4VT?))T9YS<.T6D!.<>V!)5GC^8173
MED&==N2(?"/B?A7M1OULD#1$W(CFD)O "&V>7I?*&*;Q=;200MQFRO]AZ6=I
M3ZZX,HIPS[$\UR&<.A5T/&V8LUYR[-8X53NH$]]N=2OO@2K<ZIFR*ZKPS!?^
M,RO\9AUW6T.JZ53%M5:/SEXF3&QO.QM(@2&X\34=5?NN(#?5D#NH""^VNI'W
M0!&.-B%B<D:4D[;Z<!?4WJ,-7&YF$$=BQK=ZY/$^<&5:9P+\A:G%$M$74\['
M=[)XO/B/QAQ>@\X></&MVFW;]\?1]MT3E7_!J7[J:%U5M5IH5 T[EZ(,N:+;
MI7;2F81N#FT#JS:T.?NVYM\96-9/-NT7O-49FO%<VKUSZ7:@TD=7V?[<GXJQ
MLGT_*]L?E.&SSNXQB"AQL5AF"K?WY<>KX$>T>GY]\OHQ\CRV4VEN2Z:329,,
MVYA*@_]N:'QTPUF/P>U8/VT=,^R13M+Z6=K 7EXW;WM-.K;&K^7461_[T+;!
M7DTI@H/ZZC=>&(2 AXH.<&M%S>G0LDDE#6'I2&YSK&?=QIM_T"UZ'$ZCW#*#
M3/;",P_UVZTOQHF+9:I,B[-);W]4LP;\I +$0#O!D6FM\:[L),*#ZS2"_R^I
MJC^)ZB@HBV)AT1:F:::>P&A*JH^L*<3EXEO&L5H:?ED>Y('&7I:R0U7/"\PR
MM2H,I3+7<L&'+4A*;RH0MQ)Q.VU[-:%FMB?(-%7=/C?8?#T\+=QY52)$&KQN
M0@@V?O]FEW@;7-!*3AZJ"94[+*E?W]63#[O983^Z'3Y>?/AX<05>'3FC5^0C
M_GKV$=W RXNKX.<?@ZN+=^\N/CZTHZ1?.UU\P7U*2!(&WD^BUGUP?D8/E0J-
M*5/V?$.=O$X:@*4<;T-09%P@C>7W#-UC8)^L\-"6@/->2;%_66(7@,5^H!)C
M;FS>LV/\=$TKRL_E+,K3WZW6/C-]FR9],Y[KVWAS;<DBSQQ(Z[(0J'9R(0I>
M-H0!N@;92\BKX%8ZG5<+9@6<?@8A37>_$T: $?JK6C# P)R+8),ITU&(D%@$
MC*80FAFAU/0@X& I;J2*WW;Y^H@R[79=,0?X8.Z-G5O<(??%"9B,P !BT  K
MXG$FK!4'[ 3WK$9R2AB;@'X-=4+1M.VH6SIV\*N3E;W-9,7=![8;@L!8M.5K
M/86>!F6ORJ_OC=>_,#<R$]!VSIZ0?=0=)Z#=N-0:]MTFA.TA:KHF010!^%VP
M)[.,<;>JM%:.P,BK%Y;9WFH7G.)>8>D7$P=T*U.S*),-P.\Z2853VID=\R"0
M3YC/6#%$^RQ"]V^]O^@#A%*G6(B].?I$([9 ?5,&T<&&%H1U3Q>I>/B3*/]<
M-LLZ7B$5555D8)OCSW#0.+HW1.(HM!93)$-%0U9@-VFW1J:2BCDEB]( VU-*
MO0IF*D?P77$#X+'R ;JH>9PN,[;><6U@E =(0U4FC"**W?&*Q%3>14.-544#
M]V;</XMHBKT_H"NDS8=ON&]PGZ=K6DG>%P@.-P7+FL'ASADA;<OM))Z:"HV.
MXFTQJ$F^1DVGM:>Q>E7-/10,C+U@"$M"9V!H3H',C QD)DZ\0%$20J^+34NC
M4.#:3=-83C?$J+$G*'YW]2238]!-$V);_ 9/P _>\1;X.S6JDW.7!3^7+3@>
M&Y :H B7Q\:'KEIQ#657(M?A8(<:[]#%"0V%@2*T;K6L)\WY2@.'RFD1BUB3
M_@N[$Q'Z"*F)FD:(Q2G?[H!SHHN>J=(#Z.S@*UJLT^0;S@$^RLP!PR6%/4L5
M8I1!@]D)60<"$X4R QS;PYMYWS4F,@^>1QT:3-(((4O&;+/632_&;/-CR#;O
M#(X:*(@XBQK<A*C.!=:$".U$.QKDXM!5;*3Z0JW50D]]D2J81FF&^L9"UCH
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
MZIC0KB,2"X]]DH+]7!V#93)J'F53+P;:7S6P?YOQU9K">J[#</,>.I?Q*S<
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
MP(ETQ])9;G)8<#E/P8'@>8%%@H6"V  C,5+0I2"1#'* G_0.P&8N*/^B08K
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
M:.^E5[I5PJV96ER,9L8X-8W6E4/0+G7\W.W.1>14."VL@U@X[;9D:T@+;MW
M_C.]@S2XJ#S7.VZD-8@OD,YTI"'+'5QZO#/VF-!>CU8\%*2@).M6)>O)<+Q!
MPCN%WDB=P9CF;QE.2"#IM)E;NJ"K 4*9)G>2J T+H5]ADF6N"6NJ=[+E1#B;
M3M,LC42?$;*WRX;,@T$MEM::.0@;,H,W6B6?%XN)\'G*'?3EE<HR[(.?(((O
MXC9B#RF/L*<!GG&.6QP'KC0==<GD>OH%TKPIS7Q-5*ZF*8/ZYJ1Y^W&N-:=O
M"X!!8!>XPR$R*L:;<E#$UVF1F3/%PXEWJ,*:C/VUZR)-A+>TP DQ_3=TE+/D
M*_<)S)]D<=C[A\$/BF)JOR"GD-?_!@2R*E@X=8M=7N1/^#8"99\_,=L,!^U2
MNS%9;5S M;^KD#:TS'/-+3?2[T%=1>:R-2/=OT/IY2!I'P'45^!'N6@GO YG
M!AQEN[T[[P7,'<3#Q60)J?.-N"<U\HE!Q_9Q,@23VJ4!(%SVH68>DG8"PNO$
M/%IM/H;7G/@4'/3HNN"&\BG89[C995 &IR/-J[2JS197)>$B"%Y?:_A6'_91
M%/#1X%(-L/UKOG\4_&K^Y'<SVAL7YJ^6X;A[;=%/DJ!'@+UQH-IP<O1@? X$
MVQUHG]+J(3SH;R(\-(@]10P&M--M2.J0$:#TGT07N@+1N]+R%OWJ5J\XMA_A
ML6A7/M1-R$(RO&"FN&XSI14.IH/_7246F2'B?D(-]^@CZ^^? GHU"#PZ+U*6
M^G?1S6@8;^/-6S;*@>94L7SL:YC8C2TDX$(68<'IDN]MDK=7ILB;KESE;?0D
MQ5V[D%O;9&5W6JMGU+4I"!6:OJ?%=N;#A?0P)&M"D5;\4MOCS%BO044P/)"E
M,3.X(7%)&\&D16& :$VXC&X4QC4#?\DI4/->3.]S H[5X%)XP24N )O.419<
M11GMU;\71=*#R[1_>NOUD-ZZM+Q0'XD_:-LVT@ /B8].9IE'.@3)S""3UAD?
M:T@!U26_8M%FT*S8,UL.?#(9N9P41%Q07%A3Z+@"<^BSU0P2/6F@H9NBS/:O
M=_[XZ9"4$8$C[LQYNM1;]@/O\"UCLUCQ2=$111VNEHII[K46)I2&[J*3M+K"
MF586AQI!Z[M(2U6!*0(.C^K:0(;X87QLQ.<)!)PJ)W\FFADL,2+Z#5"O@25>
M@IY\[T4_')X%HL!AXXX& B<6]LDS,10:G&S("=1>534+<H-C.'_J-CH?@4Q.
M%-Q\*D>ER' >+51/U$?.0[1&.W^"S\=TJ$F'GHSIT#$=^AT%CL\G;5@Z$+9:
MO]41071P73-<[ 0GR2@KE>#M]RF7FB[F?<ZQP#@%,ULY<=#]._ &^8TN")/5
MGA7;/>5<@]J!'QR !3.\,P:X%/_R%BWP BE @RO\:T.@EW4Q8^?#N $72.B+
M8F1N3%2[YK@C8"J>G<B"TZGZ!A'T/)Q$0WJHTXI"ZMZ#KX@#U)AE#68'%0+I
M$3<HYBIR-2OJ5,<$W=@%!PF=D>*=2%BU"5IA8;^\HR0*T(LJH^Q0?!J=V*[@
M0#P*>GA@GX/];4'7+.FF"MZE2TRCGF$LF<^O#FJDQ9^2<[=G@KW4,K<AN$22
MD:RZ00=^JZY55BSQ1<[!351EG!*<$]ME94$O<)'_OEJH#F&S0\;PGVB09*O@
MYQOT'2^-R^4CT)&KB^(1"NH6_AUY+ /R,QF]B@*4+J)O&Z:ZG6&G7M&__/GT
MU0\?VB,^"GX$(WRNRD'<S9;@)X5B5G(K.SH2N\$J\7SSJ]$BR<N0BU%D2//'
M_G75)\R"[+5_JG$-10^2%D9;9^CI 7)#E"O)-%)*A>G%F332;"<".#?I2\S*
MJ$HP9 FYJM11=4SVP8^?HB_@6H/-GE>]4ORA*6/8HG"',TK+2=D0 V-];N&!
M<H"(M-'0.#@SY^ 3H^=:)J+;+.*HF_V#,3(H7(SH7;+3!P>6HN9#.&2.M!?%
MYTH#G1*L,>VQF HPG!%."/52Q1:ES%*2%T07@]#1/>B5',#'F>60C]!*=_P.
M5DIVNLFPF4I\/0(-5O>\\^8KP@C6UX<P/A9@9N-=<=57!W6Q=VVZ#*;AT!O3
M@"M*/<,D\9)1P0L8^R"8)?E%Y!;"A:B_75IZRT1P)O">[??DMV^SW+???/_4
MTB!6++;U(-0S+,J68Q*?>A$7&>A7X[O:L;H1JZ;2<2L']0[S-Q&&# (*8%DI
ME)CI%=A!,/R+J\N_OT=QP8UT N\8X@7$ GUA;_;)A8P]B\5(<2ZXTD_C/?%1
M5 +=U_#M>EP28:".9D=PCM[<'*%VPO$>Q<7B,#0I);>STN;K(K3$TAE3UF,U
MAQ0\\-7&,FU_C75/D2MCDJ'A9HU K$*3G!>U=G;3;A[@(96NV7=CN'Y,A]DY
M$41"+NSK&8[AQJ2!,,JY-B(J#]/9>>7U8P0I\@'OS92'K;():YJS?4+C=B+K
M^H1D#-7B,\>'WB'7N*0#\2Y]\@:&V$]I3G3(I1C?VH;5Y.+TTD8^,=;AFIO3
MHB#J48)Y55&9(9PDIOF'8-;MW*85V^:\7S0A!.V.'L9I*9N8.]T!5&^C\[IF
MB)3$=\-M9819&&T7>_7#1%1@-D,O>X<S:WQ>TU&"M#;$0J8YWPNGCC(R+KSE
MBW?H+W!=,4LMK/&FE$5NN7_Z?!"4^7V1/T'M YZ1&O.Q.Y"/Q7.,>!LI0\,Y
M1LUSP+8IU<CQRD[(",%2W7 H6:N+=7T5(/O8\?A#BY$?"E:N6Z32OH$[S$E9
M-!@R=]D8*+F4:C()C(=9+'<,B2<Z?F]+:/1!D_.-^TQ.DXMR ^^W.L%VXXMB
MPIF4X 9;OPTIUB0%T[PNL'9H"@]!SQBSV,5*L;XMRF4!!B5> /,"6AA_4(L)
M_BNI"$PB%_'G>9%1#9)3RD@9BA"C1D69JY7#@O71*Q+Q<^(VS2X?FSOV71<:
M4&XZ,]+2+1_T\(\-?5,K'0*W9H!VXQ%X*8[27)!R-4MGI'T9(-?!\ 0712W-
MS5)AD1;F]U?B%>BC[S8 _@>GKOL5P?\-6O][Y]>Z:^_CXTLFG8[)I$>33/I#
M.H&W9,K!:OUZ^>G]Q=55\.L_+CY>_/SC-DT6/V(LFI_.D#@BAK&6_F=?TKCF
MD0GL7YB*V[=XI!EF/ 20%_\[+?7YP(<C'<P5!X3!O2^"I,G<FLNO/ RVM+X>
M,-#Z!O==R)&^6;E8 ]L315[ !*,G9*+\E<P/O J,^A[$@VW,U2WX$;NPG._!
M()<%'=?R?FNY&\IE '&QKOJVZXZ^PT LXPY0]X\VCG&V$V^^NWIN/+;&8VM<
MR]U3^7_,L?6M_+\QJG);5.79<%0%AYLF__&G]-7+T]/CD\GKTU?)R;/IL^/7
MQR?)L^/CE\^G4?S\V<G3_SUY_OI/8RSF@<=BOK](]EM"%__]C\LW,"5G]]1\
M6QW\VXL?+]]?HHQ<T=*=?_SYZNK)QXL?+SY>O#^'E3M[\^[B#B^VK9@&EDJG
M>?!63=.<5-IV*T8><891N>!25%EKBBGL'X2\_!9,_EVV&+!:X>3I#UMUP71^
M;IL+3O-PO-5YV*K 4P'(!T:_XDJC*.>,](KST0><ZLU6W*BE?SO$9C0J'(%-
M(7V^\BOWEJ65)#BE;5C^R!EG2C/+4V^H#43_F<= 92_T)/>I07&#+6S2\7==
M4)UAI>*FY"2KVZ491Q6!="$.1AU,TRF\SU*5,?5Q/W_Z?PYU7!UNHTP5D5NJ
MI%/<_#H.=%KIMAY2S6S59+6YQ[*X88 >_4KX(2?!%P(3Q. [H:#F2*G"=!JE
MI62*905V/4"_LZKES;NMQG<>NU+A37P0'>H]X16&A@A E<)09FE<!>_2F$K3
MSFP+?LA%BF *<;%=M[3T0S.!BX-_J"@#;7*ERFN$RL"2T(-G)\$O1U='YP@X
M=?SBY0_!R8N30]EBMDJT5+-&=C%6.2^:;,;U/Q;Y16I:?WQ[9FI%$"_I.LJ<
M\D?I1XEJ3<M>"7R2^S8'$S,1%[_@V\/N_:P8*T>2<7RC:'@.!L:NDX,_G0DJ
M8VP:QUE946$OMK4SYF*FKK&IQWD16Q+(Y9NCSKFOSC%="U*B/&J@;6L@K-<"
M&U-Y)>WXH5,FFT1U)!=1SQ]"BL3%$NP)T!JFMP6-FY*ANA.5QRH,LK3"CY,R
MNJ'^"!?_0;<!4OL[YN(7H%S*-$+3R.Y]T!=45E;#N/PA\C5H6*BH1&V2)_HS
M'.XA=1P6I38=-"04%AX33H N#C"/)8Q51).C4EZNE<;*\B1M%H?CCK_OCA=#
M;MSH6][H80L0^CPKJ+[W+963XB?2G\H&^$]1WDRC& M90Z]=54YALZ4NOBRS
M(JU-J3SE4!%B"&P# MD("7K(.+*R'_$S,6N^&K%LW%TN1NFXT[:^TSK Y ;1
MUD(%V]VHL(-;<E/H#[1 ( C5<%86#7GT]@_471W3*<G-C+$JZT.-D(K';F]0
M@FJT2V7;;+C>VK3GT_&O8P)HAO_&F#4V%$#G,CGP!QR7D,]*-:52.JS.H_=R
M0@T80:"B[<$(PJ'4ZC>U@:%JP>A2'RRX"<ZHL8VJR-*$'!Z:=3JRRQF%*Z@'
M0)OX7&POV(\2O.&>-80@<B?<N#)W^=+M0['#IBIU01&BQ?>0!"(/^XYL$GS@
MIFLBG[$8T"R6$GTQ:[+R9CE=H(T#P\:Z1\*D-P#2_#[R^O0N%+/"IGT$C];N
M'[<G&$?+O7E[:,[:N<]=(E ]?6'=LUD$$/8^;DO!M5I5+@@OB"'*'LUGEG%P
MJ@>EF6 V&):Y#0P]GDE?>R:]C5;C6;1U]PZ\(1WGJ.=1'EQA:V2"F.U734[_
MBK:CZ[2VB8W%%TRB''SVK&",RR[G$D+*6(A:"WTOZ+5>US&3<!1?W1+Y>'?7
M.7P$\YD%G]!I'??7]O=7K%>DQA7!#3)OX.8:<H:S%=HM&N7^WAT-+1=T%/VM
MBS[BI>0,?8/6ZC5G& VZB8GTH<$E(70740;=@8HA@:E%5I4,/^!^:GY&'XJW
M$'W(V0P7MJ ] O8[LJC)XSGAKIN@8DC9C()_3!#5)9TT\AL"[&3T8[K Z*%<
MGL;T0ZG2Q01;VRW^691<@]O%K=(:C9X1HRG*@64_XJ213_"1\Q)%N0K.! Z4
M1ZPAS3P/4:<;@E_1-:)6*((J@$=.PF#'=N58HK#%]T=AVS%Y ,$=)6+;.II
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
MGI=%,YMKM)Z2?S"[U&S/4%,ZN[S;UVD$0[18J<&!OEV1TY 7!<*LIJJL#H]
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
M .V\5N<-<M/U>&>S"?9RUVLSP3:815N1,;L<7EP.KX9GUX?<\0(#.[\?7F(
MYW3XC7TO-A1S-IK$%+N4ZESRM>!.02X5X/GW+O7>H(/PLCUW> P7PKG#!^U[
MI<@4+8)W83A931?GCD2E5I(-@[H4@PA4J^[TI'OEVBY=G,&_0?6+=Y2[&OAI
M?*SK?.;W4VBO/3Q;]86?C,%?3Z3'>)@:XFP>=EX?>9-G;+BZ"^D[@A3<\G;]
M0$5^./X&(R19/HWFW-Q)? 33\YT9=ZG"S8X4<WKS@I.5;,';YE@PZAR9O_%"
M0H.[A)B@C(EN%"[%(D1R6BOQ88,<G,0F.LARWFV]I9X&^3UX11>MXAA'KC6O
M+=/%/&0">#3DYO"=$C.8=-$;*71L&MR++G5#;(Z*=* 9HM@*<<P+%R_9M^KL
MDFTT2*\;2#IJL?4&Y++36.A0K-8J=21L#YCE>#8P;BD)[K45W5>5BAKLFSVZ
MI3,'_]XI._ES0S"+AY',G4'7#<KF3;VF21$5.5[*L@++&MBEL?5.TR8T4^R;
M]N]1B5K=5MG0!6J2/A([ S6/VGV'X]@3N+?*;DL=_YRU=Z=PKU*0 <<MMNP]
M.!L1#M2C#=TZ)&*/_D4&@T^47QZ:7T9SA^*D,DP=AL=>$GM,1AXO^2+4@98/
MP5VITIL5ON]$]&NOKCS9^7::414<HD5\N,+#&[[/HN2/13+6FPYN');GJ5+3
M=]AH.-"A=N=^H> ,?ALO,VV?$>USN6E';1.6IHLE"T>4.>F93"=7./KOC3!Y
M3K^FZPQ%82>Z'9B "TV/%<8('LQ)" 1$H&&5!:8/HQ@2XA[SUL"OR[/0W1ZP
MEM1?-<L=L49H8HW/R&492*1UQ3T33A,D66RO5<RL \97*9WTT=][/&3_KW;W
M-DK2@H0*F/JZ'92.(3*2R]FJ'4B.@U%=1:0H0XX(-V4_8#NARD>],56&.UU/
MS4&V<;W&8^%&15P5Q1AP.AB.]I$S0G\'G4D'8Q?6B>G.S7,3^^"F&Q&$K3QG
M.D!FG"V*.<WL#*+"*[]"#JP>D_4%.-XH;QM+L?:W6.9/$";^[ZLG"-,3A*G7
M$*:7722L[$0*NR>5X!UD@6QP: K3G_Q"')2<@V&4*O+0"N>&N)S#T !^2G71
MH]!/U!E%6]):3S]2XL+<KV#AS<$K)C^),>@!FR.ZO+7>'G62"57V.%:!*2_5
M27'&!(O16FF'(H1(K79$TQK@'XX579O>X1C;;N 8KFSJWOX2*332$(UF_3L+
M4HN( W\FC!WRQW)MGALQ<[Y/.9ZV9X!]1-/WRP"=5?&%U5&Z,NA 8P[*UF I
M+PC+?Z\7Q,)$>;K:"Q&< B:20.-<@]^:UJ_@#!E<7T-FO:D4VF_([5(D&KP,
MVQ19YS ;HI42HX3'MY8U,&#+;!8Y,&#R@6L6@E-I@N(.MEZ?!_D.2!:"ZO*^
MJ+H.TE3B#M4W4&-LI#PE$OP/5^E( (^&9G/ZA!? O<W@^U0]BD]<)24-2%!-
MA9PF,0E?M5\3AP\SY<392K"1QB1U0Q %'DW:VHRSX:R;V!&^NB\2V$'NMA8
ME5Q1F#>)\G&<YK8:NZ5_M.ZSZ&QDQ%QNNK0JQ=13[B 1L#%:*)[M*(AB):2
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
MA/1=^%Z,_E\6 99[8 X+H:J&Y"&BS/48)2#-K'M,TVQF0^B-=?.V:];-)W;
M+X2[MB.6"Z-'->MJE5C7Z<V7QFA>$)8I(\<5G.:H$+)5K5I0WN!VH,27<7LS
M6[S3ICCX?LMM_5C9I6;N7[;)-0L\=J/#I0'K!\P(A9DH=O>S: QG;H%#D+A'
MKOUDYY8%P8;[- D=5R!$DA%CY&#(A7T#?#32^E4.+64Z[)_@_')ZB7K5J5%_
M<O9[S[MRE/;>\%$Z08:58\8M+K)-I^M30A<BTW,9Q>UKSJREE3&#*&J2IF9,
M*5LR92"F?J%]'$>PFV!<J=M9UJ_28C%K:\NX_::!WV&G] #+/QFR4F<<-RVL
M<(@E\FHB$JN./5]_\-+Q@!U],&\RL*1*2QI8UP;[8='X9Y%0DQ=$H53Y1,D^
MHK8<5"QB!R?OM%GK<:5&PVU. DIJ%N6QXB#K#O$>$M\PV'XW";)?6<P_Z+P_
ME"[;3<@<54@)G%MKW[4,RX8]L2 ':,52M;DQ0;"35;X >YT?F[&E=!NI.X9>
MX)R%W)@2& Q9U6"Z<)%I[TC:BZ:ZT2@N!&,%1]H.:AT_^371!!T;LN.<V3+_
MFOZHP?&QB_]4*M)>*M+-M9F":&ZX.[G?4A=#/0P2J^G(;VJIG *1;&HO&U6X
M!%Q5M Y3L$L*7'+<F1(7$T3WLXK67%,7J^J>0>=<M=I9)5NLE,=Q4?S!@%(W
MDI;"3I&3"&NS\0G,PCAV,T/-(["S<A,!^6+T#-QR-#AW\ U2JLM=D3B/D1NR
M60>HDJ1&H;,*(^X!=L.J-Q%#)QVO#!L\<34ZTWS5EE34H$7^:H6(CI^T<LBC
M+][.JP%VQ"BF%""[I5")ODXD0!(P! B#?175]W5+--CU3KA7$Q:5/$9A]^_9
M6JGP+D5NRGO=LLO4&Z&\H^QT4^D:!A_3>92@4--6$-P0QH<U)82"Y#6AU2<<
MFE".X V(\JY[DE)G$30#X M)A7NP*7)%L< @2<H2Y5@).RZ$G%&,W=3N-9VP
M4?J_@>DRQJU.)8'K^JR4GQ3<J/%=^Y.QV=OKFB=VC,A.4\>Q<0;CS?(Z&YVV
M48=4@W!/T'0W 9 FYEZN/*!NT4&U AF=3.V]1NSP-6))/UM,!G/**HSY&)4O
MNR*:7P^M_2GD<8K>U:" )QPF__?-$P[S"8?9)QQFR93R6U2)-U-!HET/LM)=
MM"#Q7#C!CU(UL;^J0K@_1D%GR#6U4< =M!Y;;TCTQ(FZ>VYAA88C'%U':8<E
M_&@Q4CBF;B<S25-@'L'D^3*A=&?)=1+PY+Z*H\35X1IB:4?$.5 4]7+;O)*W
M6,Z54&N^504?I<I\:=8XEU)\[<WYF@(3T8<TV4Q-%CGG5SD<C"BJS/2R22PO
MIKY^-45,*I%(:<)&A[2]ZQK3#<HL;0,!<C5UH\-R,P'Z&Y7C(R(!>_5)?P&<
M(FZGAL1P^\AGC''!8:RS5&ZO0?11*32L">[$W9!,.L$P#>4 4AWXPGQ08CR
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
M&^[,1O0;;'$B'#;/ VY#A^PR=&Y@"_%K9/LA]I=;HR#4LOHN7[SU=E<.B41
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
MX#N%*@[$+*E%[5M1*_)=JI?+W$?(KVI/BBA$/9. S@A+91Y6AUK&F&A4D8Y
MWVM2F. Y31VO>2QFHZO<WL7+4AF<OG.E"(.N7&Y.TQL#V78HW[2%O/>&+>0C
MI,^-L/_7B]?O#L=P#>=FHUV3LT-6,@I,*Z6OX>HUGQ@303"):3 F,R.O?J7=
MFGY #(O:!S5U[1(;<RPK;08B"\WQM#N%?(@[^S5NS,(EE[A_.(RWQUI/"<ZN
MW5T,C^)XBFWHRHDM3*-&NCMH%0:'1M'^\W>;DVJ$,MTYR[!).:7%@(MV)U03
MPCJA3G:W"#4R9Y%%$D-']*A)EB3@G&(NC #50S\#R91$ VL^TH:45X/CTMC1
MV!/<$.8CGADQLHA"9*Z.)HW/(/3G"?/5.+]'-XE"G3"+FT6 %G9:CX!4ZK8J
MO.'P 3;-B<*$Z0,:@UCWA5>IV=DTR)2E(2G/HC]7R%[7KA#!IWF'N51,;?BR
M&!H+:HEU:=)RT1:JFU26_J.4)K7T,'3">W5=FKL)@C338=QZWK*& *X$.=C4
M4G3]"# C []-Y4UA7R>PTL"N*R2.]\P%2^; ZUWD>3TH:S%WAD)N-?%C@'C=
MWIRP'Q0[6?^$-?0&@.V%_PT0=+W!6-1/_[AVNS,+R!\Q(0Y&Q)4F'C/H\(*:
MRV&:T[L:3U6XB!7B0/:_+^I[LW+4&3I++4<?(K Z"$RHI6?#E'WW"T]LAMP@
M/&E9> [ZHX(Z0_>H1><BS8MG1W&:XZWC&'1/Y6_;4/ZF U&K^Q/F<%J9HQ"_
M4V_=D*]?=D8^!Z=GD;LA\T88H46_5:A4)BD8;XK07B]JC4G_/ [8IS*B4AE1
MBYA0NU$)9(;U>K.\GB>'+S?59[C,3+4"L4$;@=Q#RQEU<Y(*_53O!6K<)8%J
MUCM1GE/_#Z+KTK6C_-N%&X^6O0ZC3!PQ[/I!/]>W7Y<RN5AT!K9\$?75#-,1
M,<FC+R@EK[9%2L(N20FKG=^;=Z*QE*N5.ZV:5#'Z:A5TM$+'1]@ %TND'TEX
MBA5!:E,U[;YA&E ?NH!ZH*R/=[#$70[NH;'ZKHG5+$A<KL))-)%;5;?[QCB!
MK)B;Q>)%RUV>-?-T*B'ZC%,)(Q!I7#8GU^V2[,A3^G)4_B3^T6]1J-_IJ.AT
MHPG\:+C%UYP:8F%JP \:<&$3<R_B^U6X$K-4JC,6U-!W.$J>(7JLC '?2)G*
M::0FLA+X6$Z,5A-1?]J)-*E@V9-O/93Z,;M]J;^?=.=8OMI][A[+FLGYL'-9
M8N(EI&V==78<H]U$Z4^7$M?_3A42+HM><VW7R^\ 1NC+!7'3'4FLV%()?!HE
M\>T]DGB4AF@F@W>_G,0DDK^F,37Q];T/'XY\S32<YY@M=%L1B]:GYA7\1.F!
M\<PIFVFN0=6%_:>-11VHK[3A/K%U*+E;CD/L!O'Z=3E/-',:B_>BMA)/6#R[
MND]8O YC\9HWX_5NFZQO,.:^ M-]-OP%!..W(6S.;\,SV+JK;[L,-W3W54R8
M)"W<:F^,QTC>NC5TE_I(\MJ*3<(T.+--M=!5%=1$7FP5,6 (1M./K-'KW;TV
MP3Z.<GWO;!B;<90FMVH)5H)"-FGRIWRD,TCR"8-8<VJ*%=* R87:@<'%;(+$
M\,4. ,ZN9;@=@)H-"&9[[\'QKNT*,P,R\TPP"W*)_(3KX#1CNL&9--IE ]-.
M#+T%_8Z<^/>)KL?I3W@/:8C?SN\#7XXCM< /P!%_QF0:W/<VUCPLQTKJ<&$)
M0^]]1&F#8*[ 'Q]S7*'\B0_11'E7XXA*B(?)OY<SK$QJY]%IHS.QRU8F5JBW
MKTF$K-Z6/MVEBS@$YWV.1^#AA#.L/5N7;&6;+NN<O;:</O#[NS1+<)'A?"ZR
M>;R0:BVT5+%'\Q!TY]SV8$>BG8@T;"+/HS==F&YR"'6"1]A?H$3DA45AN1\E
MBA1-,10.:, 8\$<_5"0+ASB#%:**S*,@G]*(;K%O=R&MA>SS862PX[<8N,^+
M=,Q4*=,T*QA16?GH/>(IPU(#P2,8(&\U%5$!(AN9*->WVH9[#+YTRK9\;V<R
MT+!XFZ.2 =P,*MX./I00E/+ORN*;ZE\)_90^X>R&]!>8#H39P9YEG%2>JTHN
MKI4J2$]X8(/9$^SKP%U))1 'GZ/#9'JZZXX3N##@I^78_?![=V'?Z,V\WW8S
M'\'T;Z2/F5&%'X,DN!&HWSE2".73:$Y'T4##/^@PZ&:O<]3TP^1&^A2M=14I
M\W'\D%6@5KA<Q0K?X2]0@+G4):R-ND]N-_/D$FA3;@SF2K&Z#S3$7#?SIG.2
M4>,(MXMXZ99LUA@^J42M(935#[>J,?C;JBVPZJ7Q,5XT\6UA#D5K'0WDM]4$
M:/TIL;="MT*R 1D^XJAVW,0X,E2%2,Q$*_I/4+S" B98+33?-%V:6&CN=K'B
MT;)<FJ&T0F_AGXIRI\7+FI0@^+X2^8^INT V -/FCW[ES"3*;;<7NK[R=*:P
M80V1 =\RLH D,L7.-8C-I[QRFI4O_9;D<'T0.Q.7SE-#[LLC<DAX)SKS+36U
MU:F6BT7TZQS:B%KPF//H7 "+^1*4=_MZU/.:#_E2@14.MPW&?\^%VP';\X"*
M#8H*YB)R*W3D8(8*3<Q%IDRJ%&V/0LUQ(L<1R2!LR546>9=+T-QT[Q&RCT)Q
MR.H@"&5+89B;R'3IZ?@+9PUI)^M!;;%6&\@F]%'"MY$E0\;9;93&1- !MTP&
M=L>S,5BB7!IW&\7J1FFB#&-9,4M6,D%V&CQF9:X9>#$GDDS-6\,2HP# 0?T#
MA&Q@2>(H>H4E#ZEF@$MRP:TS!YQT_S(JSGX@M[V(=@[9L"*+:)K&H:J*\12&
MJ 0@4?I4-)N!(0K/)KH>IS20B[A9[-Q1W='(-/C'7O8OWOZGWK';M&"V#2[D
MR-WN+PJ6,9U%8^>OFHTIF$<%;*J8=67+V\FC<4Z+U;TWIP_L:'*^-)/66%B8
MG:N01(\*NT$#SH(_F--'ACE3LY$LU!J:P%THQH;<1&0*:7!_VK!8F=DXNY75
M3Y%SMO-^X)2VH0+F_-T=JS>]W'A!Z_&FVH1PEG*%K=H;H^N@S>CZJ+(;VL_,
M<RH>-VQ*T:"DA 0N=+KZU_3N9XU?Y00X?HLDGC6C[Q2?K?ET\VD)'30:$;5S
M28F@3)4#"J0@W>'L>H=E5,RR<3):[_%7G2^8'K529KS(;OFL5<O7)&PT3DNH
M RS6<TO@J+.4>:0M;_N%R]M*Q\2@%APPM'W8P#0MV$E9;3O'UKS!3<Z36C;C
MA\L%5A+OD$*:S&/#T14-#2/=SQ"_+?J9K5S:\2Q"14'UB+ I^ 7ZZR1+9[TY
M[R_:SOLI#&X$NA7MI V'/ZD6F0JX%ASN7,SX'(X4-;:-E:&!=4==/:KE"D]J
M?>:[+I3KY-NG]&:G7[;M]!#6=3;J0'?TZD9CHL)G[3F9" D150*FB:M[M:9D
M-<TY=%:%MXI;[G&2VJ')@3>D,^76!)(F"6(#0-)XZ37UO4B3$]FM1?3*SW'L
M;+2IV!\4"[9L)+8WN#2],%$K@9VWT_YZ-HHK]G!@BR,U9ZGO]G Q/DV098$F
M&-<OT:P4WP,1,[#WKO9%R/)F6S%>NMAD)KX4_E:Y?<@Q84,QG9@_X[9:BO95
MQ&"HT45RB(T:[.X"''+ZF0JLZ2<3,@R:RZG3C+I"RTKCF5)TL<AK'\*?VQ@J
M-.(54*F'#8K;R"B,HNL<6S^H$KNE%:?$2ABX;@Y+!_)CE?/:@319;RZ^5ZTN
M34"\?[IC0$,MS8:]F]7-@[0$NPC"4EREVZI@PRV"1!4\8=8T9NWE$V;M";/6
MZ]:HKS%SWRS]EV##91%1Y5QP:^L-Z_X+Z18.:XUA\;"<2K:_U4!V1!O$!&(H
M190&S$HO[:1#;(H2C18Z?*J[>)<K32BNBM30V.&EB#(*+,$E,YYBYHJ"]:5@
MLCNP3.D/YNWWDB:ZEN^;1\_C('%XL'%,>E/XD[9EB>_&V3V!+LOW=819Q\,6
M<4$,"!SYGM/DY:-H@D>P?T&F?U..C;G3 1>/H]_(=^U=WZ6F$N8DFH KT% /
ML__2UL-('#ZX@3G<8'BNDK9O+C[#-&(IPTE>;5;R1>57E Z1'2F1"*/;D@_8
M[>.MXD]%>;ZH)*1:MTS7N-@7L0<4<;#2^B)<+T0)>LO"1LF8QFF [\/Y8-SD
M8S4JFD9%(R_+W(/'7G\1H3Q6(DQ*3RG*_5=S\SPY2^0)CD$<HH*HST522]Q=
MU56@@SE&3(Z<Q-P%;DTR3F'@I#DL3*:@(T+!C.Q "2"(9/[''@M=7\SW-^T1
M2@/%V:RN/FX.4QBU:P?:%FXT$^G-KKUMV[5K-S='89_#";93P8J23FZC$S2S
M(3PZ;G";TOY:@*.3G301+3.]:M:U-1SE1"80*U3*9IIB?+P9VC%X#PDV63@I
MZ6F,83'^#+660[W-JG '?RL)^4QQ^ _MAL2"*/*!RQG@$6B%8H2ZW\8J1DXZ
M&XPD&#GI:%%]V<P,&SLC%M.&-8=W)N![R*J')HEGE3!B%N(T;P'*.&T8<?1!
M83!6):@,IZF)*-(FJB.-6NJF[VVLBXUZWA8\(A F 0J;FDB2_,-!"12B-PVQ
M*T[K.L(D),\:_^A3XK^H*9S:X:B#$^"K1P-."% =78ZF!8>)<) V&B^P R/1
M.N ]SZ(9BK,P$A+*)(@(@BV6#%F?WL[QP+S5U\U@.#ZIS6!D]U*) \?BOW#K
M,;L2KAE>+:O.*@\QWQKX)B0O!K U'=GXYZS 5 4QZ;.P9$?SH<+[9I8PGQ$]
MWJ8+<"$1)JTU5.6CM'9CN+O2&>LOZ7<HJ"K6;Q&"N>;!F!>;:F?G8 W!TRD4
M([B,DF8M,:ZB,(T'#18@QNEY,UU@\VA9%Q#^.X)6HG*'AJKR[LW]O?>\[0*O
MK>/FT;0?T=(JY]>T:RNIPMJ@S2W;8NJ7['N_;-W;=BS&>VR J[6X'1:HQI()
MIR.8Z0Y+I)\)2R=17YV7*[5 (M[>VH/YK7QSPB'.&&<Z-5Z"\<8P.#>>;F[*
MUED,0B0R8<R7X7"M>%:3ENG"2UT0"1Q(X\Y)5K$_9[&U1LUVDMUP*V^FRX:;
M1U)I5J'2S0.BK*%#*=-IT^^(^3?#4C5RY=?XNN^<5\>M.I+G'7($:^_MB^?<
MW&%&G29)[.B+S/0.XI(H;7M'V-Z1(D0$Q^9;AB("= OR"2#&8AVG(G1Q1M K
ME",== D0YSO1UNJENEG$+,.?M!2_UW;&+WC1):F%1YZHD"S02X6=B4'>EWFA
M9IRUUPQ>TFK-0&:OL22'@.=L= 2%MC;8!-5@_)E2?++ 3HUFBYDW621RP9.]
M-=.50,/+TZM#0X4<P&!H9=!H%^A4ALEH2JYC",P:5K38SN3E2>@R(;ZJ/)XJ
M6ZF>^PGZ'!\"..A(,)"$L%8Y[VAF0<4&FA<'=QRIU,M,N'""3<![T!"TKS(/
MP-T8DX9T"AQ&BMKZC0O=2HF@7M2NTM(QLJ:2LHF'@$)X[CC9,.,AMT*2S(<(
MCX! [6@<S84UQW)4TQ^8_9KFAU5FY9:'[OC(01QS%VK+K\-KR,#S"J^@+S<1
M65C8QCMG@NPL12L1(U$,:@BI-6#&/<$=XQ+M2$^WEUI[J9,E0;FB."HC!E<Z
MRM96+7]?[H$+'CMH)[9P#2+Q*,WF:69#=\C^LQACN4'*"%>[1'Q2\8B@%"R*
M*6%Q^G.UM!=9V2;E'*4!+^P9J)P,%B 'O1/<;3A<<R;-&8RD)"LH+ GA[M-'
M&.R^#N^E<U!M$(<JZALC1;[W.:'*^G+0R#7C<A=?A06$)4>6;D-0J'D-#H44
ML5C8RO&>\Y/#(^\#_"K_ :O@/WP9,#2E*\#*]6I9I9*M N</P<LT75.(!BR&
MF]4)X9@#;SNRNB3^;M%F)F _J> TUH9)?TWH'H3Y85_M7 I";JDY$X?ZM"OO
M8-::QD1!,QPYZ>B2?=L^6<><U_I6P[VS<O&&^<-(WNOF.8;&SS_/T"PZ2W>]
MO8/]_1=Z0[6Q[@0$,H%MLWZK'VM=/D/U,TZ5(J;2YA'?J^T3(S-$W0:A- ^Z
M3:.0$VT:J.=$1/!SLEGT0=I8_$>!3;>YMDYN?M_EL# (/[3\2[3X*Q>D;<;]
MT>;MU1MU7NG'IKU)K8BKW,"3S08;C"RAY!K_&3U+L=S$)FAJ\&%XV73=F"DE
M=-_T!!02H-"K)Z#0$U#H<9);-4MZJ4F0;5UL;0Q.FY!E4JF];D@?M7/M:RP"
M*3&-L"]5'9?Z4?;G6FHM,NI.L\2SU*FVG: ! 5;7F H>7O[GP ! N.2?C$OJ
M*%1._FC*Q=+EA1%HMRXO]$9!'NE+;<2EIJ&4_('-K&-ARX;V<;O5NG1,F[54
M2<2* "Z^-7MMM2'^&CXM'>BPOZH;2IWX]5='%GXR,^!C16?"@3G54$ZTL"V$
M#?<PQ[L40B6"!43.H"W Y;M+O2GM'<__8P^'Y]/BP#E>H%W@2^U*:;1BS.L'
MMU1AV#R;7^O)<"_3)^6F>98MCV\@^$PU$6<[TV<+,V<NE46:S4+:A;L,!%72
M(XO/WGNQ<S-PW '7I\-7:WG)*@77+BL)6OJEO.YJ+J *&N ;5>"&--Z;1T:6
M./P-[O<K[_S$.QZ>''[Z<-WQ56^YQ5$J$T-L87D.=8^L!$97<(]#2[D12BGP
MCDT^;+(,J%JBW($ZH(%)N;C]%'O$ ?FFG0-2L.!=V WGZL<$!REVS'T;E*')
M>&,%9)1@YB!VHTDZ%6[31IA6P/XO"^ZC:_+1<\&>LR)WLZRFZ0](@;=S4&72
M84@4Z7#W6X@#PY=0OUK!J^]PAJ#Y25AJ.28++$I=LE.TC2FZ;^"R^%@Q'\!1
MYYI,36A5Z/[ Q-XP5K'<6*4(6C=Q6OH.?KN[M]%&9Z9,BM'I?3GO*Y(>TBZQ
M"P>^)_3]76[4MR+FR$H6X87J!BUNT[28>S(L'9>I\V77.1CS/Z@_;XL6V3DQ
M_6S)19'\%R,,X >W(2*X'-U<S5>[/ZC#:-LB7@=?.KT\+S>[/*>)]%+O\!)M
MMN9YYYS==O"*3$/([J[5Z\VNU466%F*'M?)L7U*0!=;P_[+WK<UM(TFV?P6Q
M=^\-,0)66+;[M1.Q$;)$=VM6MK22/-[^"!)%"2T0X "@9,ZOO_FL!P!*LNQ>
MPFQNQ$Y;) $4ZI&5E7GRG,%VXL'+S?8BD?I JXBBT&..(UI+;\,=\#S\W]*V
M?WSO5/]TR)WUOR3@OJZSNG+M',(<;']MV*=8IU%.E>/641841MU%J5MFG^^A
M[FF373W4)7L# WRW66&..&1"#D4>;;2KC1MNPY>9,DU-Y52/\@$^:)A#X*5<
M-KK5Q*TB?411LWXMEXQ,D&DT*223/<'R9>9#*^#Y!&Y_81G W4@0(+@O4\YQ
M90X$^JR>/D1X+QOM?1Y1 VYI>D@^%8OF,<,FR51+KAQ& 27*V&K+?%DW3+^.
M%4!:E-I7!TK(X#(G]>PIUL.5Q8CK2%<2)G5T\'[$TQ4I4*#U6.&?'C-#/X(1
M[V>#FR3.(<%;BIUJ6'<4MRM3UZNPA]AOPC-62BN^9L5(H>R(*A;-%SR+Y@1S
M@6LN[_%I$"LH@M+*6 \H26I"P5M>QG89)G9YMQ13!#2XKBD<W[:*5:C"*6^
M$SEL<B\M!]5(,R<&E9R&1H:Y_Z4/DPET*T-3%R*;+FJ/!&4C#F#M^)V!>LQ=
M62/2TQTV+5&W4)LG+GJKKA;CC$1P@F2S.8<O$R;0J$E0RA@1IX431[;@D0/"
M13@$B>!&<$+]H<&Y8/(\- N'.3DL98Z(-'S7GH0O% VSZ&/Q3SCO9[,,7N]P
MB85@9XNL( -7M,QG;>.:X8"ZM?-J+QFA37C"-BOHV#TQPK1?A&:X+9KA\MTN
M[Z5X,VIXR0V//0R/,[;QLZQM6?45UOH8.NJF)QCC&._N),+2# E_:=.:F.8>
M871</]>JRY95A*["O4&I%UBRS4W-[L%D6156RZES*?\DR>D-$ZZ3:F J6JA7
MV&D*#2:Y ZG##:ML'3>0UMEUCZ+A?#AXC7=Y_8,5'?#(H6P&UPV53=S65+D
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
MDYJWGXX=Y!Q2^]&V?Z0DU_814DD0I[@M!;OF^FU%STOO=W6ZX;W+XGJVS'?
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
MVQ62Y1[Z(PR/P!\=G1Z>O*=P$46A\-,C"EWM??IM3'2_;P\OQ\<1? (/NKJ
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
MSZ0Q*>)4XB@W"5*CPMQ!HY[B!ZKW)]R^%E(7JC^TZA1YHZ0Z1>]W:TI('68
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
MN0^H"9X2B-F>84^'-.R/V9@Q\R6DT2'3-]3"E\##:S^T[(<=S,@-A><6O+_
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
M 3Z)':O!1"9=ZX9IQ(..=C@(C#(KQF82%?1](\Y;0V0X]RI:MUSSGJQ2$-1
MX#X')5S-T]._#"J; $KP/H^V#VIO/M3BE E'628U>;H60)/M+KYQG5*?OK<<
MQ-BXJJ?_N0" (V_IH'XF=&?W7=VPKC;MW6EP=\0\H6IZQ+PTU^S83K" B6'<
MBPM^.=(?K2;N!8L@<B4+D 4N(&25IFX#T=BH!71,C([SW<U_KG:>@P$-N%YK
MO$%PPT2NLIZHP8TUY=]3SW^<C4BU5'%>=UUH"P)-6X"I:"MPS9^!S?(LJ8G3
M,D$LU9Z2(3_*ABUG&N"ZE0,*",]JNS<I(.&:U;P*6>2*)-/[C"<,0^;W:791
M_N[Z[ENB0#S.^*S2;&\@EEXR(#+GZ/SICVEXK64LH7XKJ Y*DEC:B3A3T1GR
ME7TAB"Z3?"9>]T:FT5$T"(!UXZQKLVU^;WWG36T^;6H'[:U_>'.&CE79-3:P
M N+D'MQ$#?[66[M^#FA",!.K5M'20-[M^0*)%AC[?&"LVA8U 0]+)1A$K1VK
M>'.*!!/"5X]S^!'(7D@CO228?H]H>ZE>SK=_+S(UYKY:KU78+IKQA+.QG""$
M&D3Z5U<*N,KR-KSVI7S%ZT6)\A)%^<)!#+%Y;@33WI@6,#.NC[J2F#-SOQA
M(C:.TV*88H_8&O5SC1J@*-[H?(H:HI0[7PL":[]2GHQQPB;[F3*["#>_!*[[
MC%P6+.:(S.=V&-$!2&^&PIDP *@'QG23CM0.#?M/>R, Y_K12%2P2T4+/IV)
M*S>+3Y3Y071;8W J*HNQJ48&=G7D$<BE1;#_=2 7KL1Q[ &R+1X/H %%SE-P
M\*DU\Q?I*BDKU!PDB;HVRV$AM6J[J!D"O&L294BG>6O;ZZJ)'9NP-R?2R,;V
M^]F4B^/X/*M\3&T-7#ASRK%NL[8!^JCC+3V&W]"^&::WD;*:M^V:)*WU;D*S
MSK,CY""?P;[J06FX2H<L#:R\J'=2UCV%<$J,$RH)QC_HA^[Q9//W5+N[E,B;
M'W9NMZEU;5O?W;6MSLZO@1403[>UQ]K%DXRM&,;9HVPM39QE=+.UM64"]3_=
MUAYI%I)661S9_QEECHO:^(YFTVXIG[VEA)K A1J>9FPGN4S5-(J/(O*A34)^
M)AGA"RI;S2.CY'NE/OH=1 ^7A0KQ"^_7=(I2P-8NGFT7#'!H@E6,(Z:*+H,+
M\/NW. FK:'"2<+:G" "O^!;:07#Q.UT"JB\J@N0ZEB)8I'[YM]9XGF\\F*&!
M=SD,LH8X%JK_E;IB6N&(]!@$(G$B1YNUI"9\1N2S> (6+I33K$5W:N')<RU[
MJK:6\1AV1NA?BXI+E#$-]:<>(>DZYJF,D*-381V1N3KBBP!R=NTC?(2NBA0D
MCF#NZJ7)'[SE8HO_N^'&/\SU1(L;M[W;XL:7#C?>@&7A(KJ.<Z8<.W/24LU8
M'VAAD$[*;$/=_)EAN,DY?6Z#4B*:L$+G.NO =9SX"SP^OH<#/2"D>+>EC_8L
MA05NU(8=+[*OK#%&9>/6S&F9"B4X$6J2LJ0,@NA!H+*^D%[X7G\4!5+)V[=\
M/;Z &:/Q1&3O\RE3*J@-4'IKD?>?C@Z83Y5V4BH6&P?]F4-[*@TAU*4EGO--
MB3IEH:65B>J;,)M>Z\I/K8[:4ZO;34RYY@67]&+PIL;]W#"]E3]GN3JI<5.Q
MR8+;S'$RTC7C-$E)% "PMQMPQZC [!U3XYF>K=QI_D+0S@P6MTB^8'H\-RQ^
MI*&0E;YLR?ZHBZ4)5,UJC4"4;UQ#4%<<=KW/JD%T^[C/B#R0SL7CWE0+OCDW
M' 4]$ TX#Q$R#1#@I>IKUXE#4"?EBI"!"S5K23\JMTKOBM)11%0 AC4059%D
MDWFG=4_/=T^@&$(V^Z#?-!^EUBP58(HEW!#YC&XM47O\H5P#(<2C1)F6% 1I
M*D9+.5&9.[R?I@T570B']"E52^'.WK;#]60OP0Z]ATIVO24+,BH<'T5%@5W8
M-*&J[M#\@6LE[*UNE+,1Y2FY0LU0Y1;!"A+_28@9C1K=WGAOOIA5ZN A?5E$
MA/T>3Q.9W'BY/Z:)$5$4%E+!V_K:#Y>=;^ -HI *)XPG!GR^:*?1LZ<1$]T*
MS4QC)E$]$$97\=!9@A'"J53O\'J.*[3^E]$R\XW(F \B#[AQ GI%S \%DK6D
MD"D;*(/)DFCFZVJ&0*C[Z-8.*TB4W,19*K@LU*)?XX>M K'%YT%X$^=IYLH
MJ3XGBBNIJ:!&,6ER9L)=>:TR8:F5 6IM_]FV7^8X;HSQ$X4:$DL.5Q-.X^6
M:8X22B.OZKDKU\A@U:+4@"X_RV)ED6I2<),;T.,=IG4B123BZN787U,/<WVW
M3M'%F3DT-QQ8YKC/-^.@(CZ6,D@B;RA%XC:_Z^;I'CI9[ 4CBBNK1XN^(9AT
MRLJY=(7<"&V(\?=*A[-R[3WOZ>8$X&;N>3OU9)1 %LK5H?:]E,1^O_GR=VS]
MVLO\FB[A.PEN&S#/Z% HKR[D7 AI#X4XL&/F59)QU+RXE37>BL&/@EMO#9'@
M5"-;$66F">C0LR@ *W@VY5Q49EA)B</=35=P+D,YTUZ,F#UE>G".+6T\6P_
M+A/ NUQ.3$_4B]GBIY,TN6=!=[-NFF'I,9?'N48%MQ/FV1,FCX*L/Q09<"M5
M(]2W39D^*@3(=%.)H QUAU2AVQ_!J0]B3J%E[ONXTCN94/G6D0C3;DK[#-B6
M'*T0)D3JEA$)9Z$MWOWEX."\M;KG6]T$M&[P%&>\/VF*H9F QW.R3NU /W.@
M+X5"YER%9S$SMYZFC8$(.<F79F+*]0G3UMO6XK?F_WW-7RVN6$P:,@L"H<!W
MV2IZ,Q>T,G<@5868G+G4@K=E;7I<K]E=U)K,ZL\YYRN%R;*UKY?8%Z?=#OBD
MKBDV97/@\X0L;?J[X58%L%TCC@3C?.%!4@GS3?7#5++LJIA$J%63XY7T5DJB
M#=C-5<.:TX43?%]%Z;VA44);E=?PJCQ[^/-=#56TZS])AM[^W=>^EV>RGDTL
M8#A/N7B-PR*6FLOCNV+V;H #=#/9=M_;B3;_+"V[,0[NXO%T[$&S-N;3>/ W
M\4D]W#636^.L%H_%3]429D@.#5"D'TP94&+HL9$YBD 25@1WG"B%'D*?[M(*
MJ;[4TT/)LRE!PWUY3RJCY]+(("9Y"3IE-#SI=0R&,)9T%(>4Y"4POPM.(CF,
MVUA-B'&<3',@5#2VF(G>.D)YF]O'WOLX1R.$%POW #-FDBS43_%;EO1#\S$F
M9C^8Q#A=M054CDREY%Q<,353X59]DCZ G:A9!X<!!I[2JZO[H@X8?^Z0<QI&
MH$@@(O %%'UK>H86P3>FY\/X<#S'&L=IUA.,F:#*A 76493E:+\%_CQ[NDY[
M/"[HS2,U?,V8N&6J74/V6%FZ%DGPYNY+P:C45"@14+EJ4<JR_N>_=C[\7!>S
M5;@XUB;*<*= +N"FSF,$@ -%7MJ+$DBBBML)C&0A^"V!-!**4T&[02TE!SH/
M>_HZ05)-3ZR;4])([D7%+43HVBH)J9+8:ZLDVBJ)5:J2J/H#W_@PWW5BBV68
M2T*IVE%U6)F:Q*K!5S0I]%K_D/_Q^;3%%(S%6N":*,2@[ZJ69N4QVK7Y^6NS
M[(B:L2C?CR*T_S:BY]Y8[>V8H9Q1+1;1XIRTW*1$\,J$;78#^Y^I2]E-P29=
M3K  ]56-VRJIVQ@R.!6%XJ3G5H Y%E[N"XYQ-&, L/[--]6*%B"@Z2EP8(3B
MW)2"61A\)+-JW?N2C"BBT-1>'CJ'<L<^<Z='Q&?+6N(<-S@[78$XES:_@W83
M^M*98U!/S9@XRY05W%H+.H#"M<G!9;7[@];R7V#YK>$OK>%_; V_=?E_4\L_
MRH);1*YQV@@,",>UQ)U%;2(8<22Z8!S'CW2"Z-<@F2+PW?2]K8VM]V:;R8R%
MS(>2R(;"GMKUAW%T$^46Y/[1^QRK4+Q L,Z*KZ'SM"C(H 6.YZ$<Y->INFI[
M0YZHT?^T.^[36:.DSNI4)]:F'/+39F'N4S7U;X/XA@\K:[?0^OC.*'!.,TC7
MYGH_A+U*K+I$(ZF=-W1&F26+C5*,[TE:TN?T6/V7)%_'XAHT(!&DF&Z'4?+(
MKO5KNP1U$-)Q+. 7Y_HUU!BT<_ME<]MT?A-FMM"@B9'0<7;I5)[GU]759_7@
M B@U*D6_T%#I@8N!Y3,I,_64+=.Y>.!+PNHZOL$4%H%X.8QWEGJUP\8LH8E:
M%9A4?UMXY*_NA..Q F;_F:OL#SE3)H43WEHO ($2RA^5FW@7!C,BP1U''G<2
MS%Q--I(OSV(P)VEV;J^X57TR\\H)[ZWW B[)//B.=D:\=&.O7.MX'!?C!J6:
M!R7=.:G&,2A&D^,5X**RE''P+:H6HDTG5K6R0HB5*P^?P"0;&D_VAU&(VJ#-
M]<TWC22;4)E99Z>-@+_9P*S.8Y*!]FV+R;..=+ECZ[:>;0Y 1X#/I4$V0'6N
MNEV<BN8B*/J=U1E=JDJ'=@H!I%\BKH'3TI<(,8Q+**,QE<&88W.2B5?+?<%[
M4"<Y!7V6++)(&OFFT7*L9.X94EZ' 1"E1P&"\?O-QKU4+?&1928T'=#:]K-M
MNS[4:XZAJS&.B8I(168C%92M;6YUP,U4#'-!6M6U_T%.SM9@GFDPOP<9I'N;
M8R"F0$_MF\&8%<2))XV$7SN?9OTADHZ7E*$,-?"LR@QA*7:,AW*%;-WB%])W
M-K\:O)]E(3'H)G*^M]*8$N"G1LVV$DMBY9;"AAY6>3R,LI)4G!I:B!+E+<=I
MR"6OU#CEVVESIWZ?0]DNMOR_'+9BQY?N^!/MV?J/1;)\M-P(Y]BZ038[X4+Y
M$>+V0>%]5%=\H\WIXU$D?V.0U?Y+0%;H@3C\QP]Q+]C9Z^UN;;S?WAKL;$91
M;VMOT-M\_WZGO[&_/PAW_[VY_<-K(;,^?%C_L-LBLUX)F;5XR?QAV4!;]>.D
M!N3WXZO3[N6E]_L_NQ?=LT]O6S=")PM!1K5SC)UFQAY42="RYL+!/<*5@ENR
M/V7$>[VXQB+$W6MW]L>SBXNSW[L7]0IY]_GO-T+TG1UU_W5\Z:O)>O@$U&(C
MW^7CK*'G4H2+S.G_WF46>Q<SY1<6+6@-Z<Q3%:QQ?8II<4-:=@6*2V[:X3".
M!MXGP\Q78=UHO!W7^Y##LY,3+'I8\WY1RQ:M?"?=TZ/E<2O'IZ=G:OG]<NF=
M''_J>I>'Q]W3P^XEO<7QZ2_>IR]8S'WOY'P)7N;CC*WM.$G2FZ"8YMY)/%![
ML7[,P,I?SN]YD5?O^2+GUOX2)93U/6?AY&?M)4H*69M[;Z83MA2>_2 )9][1
M;/QHQ]ZT7K8N7[]*XYOLK 5"WX:CU4NP(7Z_5>"5=];?>^.ZVVY<VXWK\S:N
M?_4)VOVU)X?_[!Y].>FR]T1*%Z_CO-+K-^J^I4!CJI#FJ<FXOG%,Z=C\JOFW
M_5?S;_L;Z]0YK7][#?_VK.5ZF1R<[M^#9CNVHRCO9_%$(X@LH'0ILX]7Q*-E
M,+&@TXAS"S-QDOLF)R8R BC7HV(^>'A+TQ7TA70>^;(L)J(7@B[X'HEQB+*T
MJ\Q)C "#%&I$Q)RMU3<-!3 N&<1WH*[(Z[?\3^KJDMSS]NZ;1>L'JH,!J\A]
M3>Q6(O 81L&H .DRU3B*' -)",4WJ C..[[759U-U+>^Z2!?;<R!!B8M%JJR
M#* \1.@18HGF?S%UB.;#':>D! &^<]S!2"_I<V> Z?#\85SYJ]Y6'QL=U-([
M()\W&D7] E!,K1+KFR=;]50!G.3IH+A5+]SQ&0Z=T3F6>I<"%,#Q&'I,FC(;
M_ YYD0E_MO-0I&DGEHPQ20OJJ_XP*%1KU,-5*[RU.C77"$W-TB3NX_H@'_JZ
M9\*(UG/-AI([&A<NI%P^Y4RO(\*5,UB![N$.%<O.T*=<_FW;Q: >!N;35<Y%
M<6[HI"B]'9 $C7KW#H-YZ/IWZ>"=7*^Q0RRW0UUO)I?3<4Z#@3W2E'Z@LEKX
MD</\%['<C@S./"5@SH.:AB@CUI8I V\_T!>K$4#2&TQ3*!JPY).^^ .C/T*L
M/Q88E:2WMLQXWC'1A2"*SKQ12N_S5ZC(O[%;F7/:']/TFY#T$/"&$:W0_;I.
M28E)\\W33QBO3#=Q%Z[7SK6@LA9 Z*4WD?DBT:?$Q91Q9@,0KQB*1U*="?I#
M,1&P&V".,AD"_6+4SN(Q"BG8F+BP'1 V$L65;XNH6FX4I70KM:LT?Q;0$$O>
MZ5:;=W\A;*@IPWZ:%H"<&+K6RO@6Y87>EIWP])=3(U0*E&0RT'4,F\7!Z8P%
MC &8CS03)ZI/]"K$"P@*6!A,8[\7$Z/_,.X1)YV(7C''A4:Y\G<)VW(-< U3
MQ(D;*2MW.->K0>5V.(("4#H@#1!>WC+O)(X2[S:=CD).JY((,Q?*0,, =3)R
M%WOG^ZMY2.R@(K! W]5O201$]!?3<.[S>$Q<!6HE @A(^;W2N&@&+IJ*#"2"
M?P>(W78FWD@@[52J8?N?VF85$YC=X)RT^-#OU \+8$KB4.%KY57L;6.>,E!&
M$0I!&E[<#85&SLBJF\M2Q*[!BD4X[2^/,6Y#VCZZ_T3WP4%J%<,X"W66G ?&
MC(R\L].K/#9#1$V1SHH#J@H-Q F;S)PTQLP\_2;.8RW=04RT M"S@U2F6@RF
MRCFH._4)LB2SR<)GZWO L#2&B*0H *:D/W4*8NI:N_>U_P*V5J_I\U%U[H35
MY3Y58Q4/*F^J'@PQSANBV&7SX%XCXQ)_T+VCUPJ="&<MON$BH3E>$%D=_E".
MI_ 0BH)RCA9=!CL0':2QHKFO\SSM116'03/"=J:.'Q!89HX@S(3A@K+(F8$M
M-8;5A6[XU2HQ;Z[U5!GQ9T)=JUEBL83PA3!*%CUT:'Y*&Y[4BBHQ.]Y4JE%X
M#28./9ZY$MF4A+&@)4]6P:YXWBP*(3*A;O,=>F11G:_SLG/BL:5W)4 B54ZB
MV K'1HSH=ETV;2UXG7>]Z52#*?M$-PK:<70%?=N9<N[<IFB=)H50!WIK#H&,
M[NR.)[WVV)<HW66^JZUET!Q?"SKDR6@&2+4H;*37L>:8D<LE'V?<BN?RSTG]
M=N[MO]O9V/7IQP?^L<<_]G4W?CD\M,0ZCE6;69F7KAR(+O HNL&S_E FD(>Q
MD9:TN%3G5A .@A K%RV-> O"D^V!2M6UNTY]N"#.3?66YJ.<-T=QBA3F=9[B
MEOVR4\YX&#)W816'126*LP?:B'_;N% .(HQYBI+8["%STE[F+XH1[T^PM;=>
MB1/YK:W7RSBVQ_&O<AR_C,?J']^9C*$$HC/1 /O/%(X;2LM/3ZJ^/N[]X<3=
M$P9C>?Q-ZSI:U_%VKF.KV3DY4HD'^TF<]\!D3H[MA$[!5\.E-<D3/2'R>=]&
M/BOFOE8-;'!HHZ+#=*PVSY0Y.+39KM9_O*'_V&O]1^L_WA7IY*?M]?U&>(^M
M[2UXCSLZF%;>8^LA_]"\Q@L)3C*(LS$?MK4^[NU\W/;FZ_FX_?76RS76RS4Y
M2CI:CNW? T+4S>SY>QP>0!:<20%(:05]WTX;W[6>KY&>[[)[^.5"]>JYZM7C
MR\NSBZ_HNRY>:@V$/KJ248W8 8T8T]GPX"'"ZKPL0?9&;N>__UWSWZ(*SB,!
M3^[]S!2RYG(BDMW:V-I9#62=FG3>;P<G7S Q#KO'OW6/&!U$*Q!@9DBAEY@C
M -HX4MX74&97 \=;:P#;EX94-(#NJ^.!@>7C5YEF7>6,SKSS@Z]&?CX3O-GC
M"^@;T<6,SFM$!]<2UVK2Y](DA^?Z?'QR@M7E")P+%Y?>6L4A= Q1&F% ,WW#
M(!?XA9 N8^RFA<&BV@;T+.&7YD9[T)6R[KLC!0PXF 9 3D;3W(&K)A4FU6DR
M">*PM@?H-1[5 ,"6Z;X90?D9:T= ]2RDMS$@2H.U(E4VM!T77VJ4C.7Q8<ZZ
M3U$O8Z;];7:8#'0+T4K5;59-3K_MX^<!L27."]25)><,\?V<;',%D078[SQ;
M78F4KIZZ;N[.[#J;,$<Q.F9 FC!7U[WC 4&R\S1-U.C <GV7@W7.BC7F7IEB
M-I52++%X,R4,XM !G4X9,#H)9@05DUGS&>+ ,%,B3\24C@J@$8NA%@PN]]FZ
M=Y#,M*(Q,0T0E@YO8"U!JZX(2I';0%A7$A2/ H)JJEU.%O>FH@YK<7GUSUW*
MT.I<#YYOQT:/GX#WQEQ:A.&IZOH]VEFJ*0Y+D9%5_:>BD,%TQ'5,!E28$*KV
MLM"E20=C]5+] $\20LR'AU]\29POVG=[:_1I ^:Z>PKPMC/\:L%R3#U%G:8]
MM#&2C&:C!7:*4_:-]4@U7<[K9-ER]+5F[F<X00D94JV'.@E10Q.GF89,DR;Y
M(.+R*8!]U85I)OH+:-QUIER,/IK0M'4,CT:EAUH\2B^UG#/V:L[D?5F8-;18
MN2X@X8,.3TL!U%HAF3'KJ%ODMNJLQX4\=G2<N$?4.7KR.(!3@SC)7=0P21[T
M^]$HRDIR-6/MVWE$+1AWJ"PK2J25FFN7%W@/O,O%DO)P7YD)!;9=K$E441#1
MXAC=059WSL<UDU1)8.4\YM &Z[^I+ABW X:X)-T5-J"[W!W!DL<Q5W,K55E2
MQ=7TP72;R5G)PGW8$T*;ZC[O<;YT<90E+M;6S%0B'%32B=M>=,UR#N(Y<SC0
M2V+)D! "=>YC"@>4PXQYFTZB$'.Q*E_'>V&^UI39JB4O7%1DR,2U5%\71B/4
M=\RHW()$IK"39ITX]2N7^59"(Q798OU2BR/7Z"QGYYL9PD$9I@A^9E$ W@N$
M>(-(CAFBNXD4I9DJ?=_4B([BL=IY<6\Z7U9A69JI8-]H*9B[]=.<60!$%\X&
M&1+@EWH^PYVB\83V'_*)+G*;JR]WZO.='2>671E=R'Y W4M-N^4<->OW3"Q]
MG2H#3J@C-8L!,5)HR3UX*Q5R2%ULY;S(MU$^R$[4-LT<'-&^#+^@Z5_3[-NR
M]EA$1 Q9/HPGHMWH5G$7\SWJBMJ@^)!W*_BNO=$XB"GN+1DPBBQ!4W!-YQ+5
M6GAEM12L>]$HC\J/EKTU%WK!&]$Y'Q4MSLE^82=$I6\<'CNKD>_<4=0=]!Z*
MWP6EP5)!J?=6<5YY73KVJ'MCO=#JKT:0MO# _U'P*5O  E+TC=J.=A?I=:_B
M@'J1INZ@TY<"I9O<#;9YMO3;OBA.!<UV\I[V=\KMH^)/O3=5UPV$E\&H;E(7
M&WX"U;H>$KT<3_33ZT29(/DA*F8,A+J%ER5BK:":_FR!J4GDH+>HMG22:8>(
M!0:=,?L^<^[^ I.55N=X16P"6X'Y)K)&P 507>E/^A\_AW$^&06SG^*$WI>^
M]'-Y,-^K-MX _-L/1C(P-$;\L3QY9WM]<V,/#R_4V!:A?K"T:YW:]6,1SG^V
MO[>^O['XXXWU3?/9CW1OOK]Z@WP2)/_X8?L'BY(@QMF?MB9WWF;9 $%"6WT)
M;O\3!4L.LC@8+3"L#P^M #O;ZE6V]G<W-W>WMCYX-YO;3P *F [XD0;INV!-
M/K18DQ9KLB2(@WF-$M\NVN I<,5!=!A#B1WEEXTXB(J.(+TMG!0IBP'DFH-"
M?8,N#RQ1M*R-)*[&BW-=C[^NLU4=LK[!L^BIWG;G_?KFSN.\[5-NN[O^?N_[
MWW5G9WW_D;=]Y-*P@87!N=_WN?21"TZ13MX(N54O.>/T6R4N$53[6_1EZ=)V
M5._SB/7"/$LSJLUN76MS"V0VZ@RM[:S[U3+:/GN&7,=\IY5W/NUVNMU.-VH[
MO;/1;J?_SMOIIM1IZ [K-KO(:Y&RW<7YV05&AC<M0/#";HX_'1^JORYETN?E
M!$U/.4!OJ9Y:A[H:#K7!;NK@]+3[+^^XV37 U5('RB)*<A@PH==7GOJ[,1GL
MO*(D?.O!FN?!FN&N[O,1[,B^/CD=_]UBD-?VW"=G!Z?*SI2%="^O/(HT82;G
M!U\_0TCY[!/LX/3P^/S@Y/4\>[U?=*JJZ\NGF^NNES_B?(*3?T7YU):NIG7S
MSW'S6BG5VUW?7,S/M7+._K1[A3KZHR^'RM5W?^N>?NFJ05<_E4FT#%]OZ#)?
M3Y&UC8M;A_E"ASF?5UA9AWER_']?CH^.K[X^QTTNUXEKDSSGC[TTG*D?PV(\
M^M__!U!+ P04    " "FA%Q8*59"S*L.   U20  '@   &-O9&5X:7,M97@Y
M-S%P;VQI8WEO;G)E8V]U+FAT;>5<47/;-A)^OU^!<^=:>T9R;<=-$]O-3.HX
M,YYI[8SM7N^>;B 2,A%3A * EG6__KY= "1E2XK=N2;TM ^I+)( =K'[[;>[
MH(X*/RG?'!5*YF_^=O3WX5"\,UD]4947F572JUS43E?7XO=<N1LQ',:[CLUT
M;O5UX<7>SMZ^^-W8&WTKPW6O?:G>I'&.O@]_'WW/DQR-3#Y_<Y3K6Z'SGS;T
M^.6K_?'+\<N]5^/Q_H][K^5(R6P_?_UZ;SP:9:_W_[.[@4=Q>WC&^7FI?MJ8
MZ&I8*)K_X,>]J3^<Z=P7![L[.__8X/O>'(U-Y3&9Q</A8QCCP4A>W?FA+/5U
M=9!AM<INA&?3]<R4QAY\L\/_'=*5X5A.=#D_^.Y*3Y039VHF+LQ$5M\-G*S<
MT"FKQ^%&I_^K#G9I??SG+"X8XY2Z4DF L.KC\W<G_SJ]'(C3L^/MQ37W<+4?
MSG\Y/?ZW.#\3%R?'Y[]]^/7D[$J<OZ?%X]/I/T_$\?FO'T[.+M]>G9Z?/5F<
M)1O7;.J7%?60EYBKS%CIM:D.ZBI7EN[:>'-:>6OR.J/O>['8C3?BBZ]C?^DZ
MK@HE?C;2YL*,Q3MM5>:-=6+3X_MOOWFUM[=SF%;Z)RV/1SS0'M:5/4)QO-@_
M>4EK-<9:V3W<(H4=FUS=:0<LJ++M'BOMV$RFLIKW0FV%=$+F9DH1RQ?:B0\&
M0LR%J<0%O+>><DR#<J%3?-*W2M#R5>78KTG+>*B7:@Z2]$'+ S$K=%:(J36W
M&H1 C(T59)YV0<595[&Z$IFR7M+_M04G<%YB"QQ=H$?5;7Q*8A1<\RH-,]85
M[M2RI MUZ9T8S?F1:'?;3U3),?0]LGJ%*EX]2A/B:VZ#N.H8MBMD68J1@AX1
M.*=6L>4;5GXY%S/MB[@UGVH ,"G5D59_V[[<%I<JJZWV&FN352Y.[K)"5M>L
MV8EVCAVBE[YP>7+<!T<0MBZC[LZDR^4G<>E-=B-^E?9&^9[J+JRT%^HKM?.4
M51 6Y(B\0 -8+1LI?0WS9.QX_<,^F2R9\3N3Y\/W5E8WXG<R_$MO%31]H0!!
M$]Z(8U,Y9!Q6?+#&QP'>9HPD>SN[.SV.HQW9L.!>;! 4.B T882^\X3(W:BJ
M&;Z!P0)35M!YKK!Y.;[,L O87'J (<C5B!?L+8.%$1KX\C'-1/P&AEDC,PK.
M0# ):\@#IN$VAC4M'P[[,%EZ3CG$VQRI+/05KO1*E%7,?LD>RBB%LMBO3I!N
M2 #'%>^5ZK$7+E]P+[PQ8B G*=M"O(7?Y8CW%EKGY3JX8:X^H_EFMXA7E0R9
M(UWEA+>XCZ[)\1BXR6X,^])Y+4N'Z:Y6CPE;D+4OC(54[*D-&>'Q"0R\K=6"
MY],%W#F1-XIGO2=)I4 .G;3S@9!3$,VIU< ' :(I\UOMY*A4#>V4"]X3U-1,
M-&"(P@29=-B3^\!T+Z@ >*.H,6^UJV2>R(A-"U*-K9D(C]UGU*3_8W8-RI5K
MET$?&.-I2-64NJ2]UM5P9+PW$[:<KU+S60=BQ^:6/?_D#K22T-OU$*Q@3"7Q
M76P/Q2WP7\MYAB5K(MH004DE(6!.8XW491#=D,TF)BT3)2MVG+&X0! 2NSOO
MAKN"5<+7._RZX=:1B^R^?K$_H&@7X]L@>7?,:MC2$=]&3N<:;G#_\J:268Q_
MK9MBP*J?J-K81!^ E#U\2?Q*.$C0I"K80Z889^0UTE;G&45:XPX(A@DLGJT4
MC 3[I(G@!-LQ%A\[T!3^QC,&#UE1JFM.:8&2#A8H><SGS6(Z%9;?I@#+]TWF
M?M&F]+V2<+F=G"ZZFG8I>^:(A0V;2JO(U60&@4.NTBU:Y+5*I'F"[RQIH#)5
MXJZ9NN_,'(GH0[?6,34VCMQD[AUH<2VTE'+F*,IE91W-=]XN>,42N4)@J2!+
M<BAK 3< -<AVJTWM2I+:U7B^75'S,,"SD)[4TD@7I7W<XP/!<1M#S$Q=YK&L
MPV&Z'9'J#\UJ=5!76.8,028MGDD*7TM /L7CAN-VJ<:DL,_=N2G[B9AKG>?K
M5O\^RRXS63NU8.$PD% <# R)@U<#I1P'P?$F4T\)'[F;=*8"]L[%U#BG <(#
M-FNR@$H%"Y,S$#1L:U/)'?X,AI<OK(Q'SH'-%64DJC0S8'^O$.BI&'MFAN\E
MN0N!+?C6O%?2++><3EQ( +8D^C:091$9;8Z<G@N5LT)QO"1K.FE)F65["*$4
MG@QS$3-B4UZ,63VX ;@R);:?4H4.%#*21!Q#1N"M'M6Q<$KS5(J@*V872QV1
MQE?5M;P.N,(E$#!\4U$C<)F-)9U/94X@/21T.GCQLJ'QS\/Z%KS^LAY]I  "
MI25C_/:;'UX?BI/ G9Y)M%^5'1".=<6]1H+HB:@K:0E.8 %@;&0U(\:=66'*
MDGD[!5)I8>Q$@CA!]=3X2 V-58$>V82K$=M2)DS1&W0Q$L1H:+!AFS.'8-*P
MTLZZQR* H9IWTJJ2>>:#@Q+IJ9A>[K2/R)$S)7SCJ6<KPK^%;>W^6@U' /:;
MH1Q#O@-9SN3<;?R?SW-\'1/B/6[196I!QO246@.U"_L62"-=[$1%BJB[/QZZ
M%2R)-I^!)=I%8EWP1NSA,H/CV,HY87S&#1K\Q&V5\1UKZN2QCUE/F(<X9K1$
MW%620$T9Y?+DN$M#';="H(M,Q6*/IP$+<&<LG,* 5;ZV?6TQ75U>](-MM1I%
MC.(]+#785DQ&E*6Z!0'",,!0)ETQ",H'T9Z&:AKV+H1*BK%^'F]E!@7F)36C
M602X% 3;8-O/#5K'^_JP<V !"^$RN6\31RAZ!+=R*::$?0'B4N>C"1\F"SE+
M2!R120Y;!^6^.=R<O1X$B$803I9<.:6,#_Y'FQJ\D>P@FD1P6P@>C8%6 R,;
MA,+3R%2U:RAV7)#TO)RVE+E0D5Y3*R7W)\,-,STB*$;X&I!JZ$'74HT.=]SN
M%Y5?44QX<+YA*:$,696<4 R)O2X;2!5#=6R2<1LNB\QX4V_Q-^L<@091'"UB
M5Z#UZKQNXE&B;^)#RHGO94U;BUO7I&$BEUZ&&K\LL[J4*; 80%7@\:G2ZN6=
M:K&&[BE4265/3 Q1'B-+IV902$@P4FJ=@(5$H/+AKL[R%B2)-9%NH4)7C*B=
M]+&A8VL[*_#W]Y!L6EN0)^4>M"%Z":+W=KX'N,E%=<=Z]H55L>6KPAXY[*.8
M RSII,!$Y=03HB(!&4&>K#GG1E$5#RD]HI*W,LN[O_]+"#@]6TH';1&K:FI[
MFDS=2F#]M!BD;-4#^0.M3L4GMNATK(G9FQ2Q3["2FC4Z8#=URE.FZJD-T!R8
M^.'ESJO-T18 8O-=TS:,)U1^B6<NJ&'AMF*SZ\DJ6X%B=#L#A$3"2$F["<&+
MX>KM5KL]"U%#QH]9VQZF;]N.8FS!N/MU4SV.3\H@=XP6:<%;E-LS8PTUQTY9
MR14MC*2;Z*A#$6/<'Q0?DVS^W!$3NVEJZRD27Q/\&#MHN1AW "BLMH+2J7C$
M5RI8NOOUL\_,W:_6P7(7)WQ<B_ --G>3!SP$,LZ93'36&"9A#<L*@HOG#A\0
M"$![H0C?,\Z^4V2@FX/FR]3&+50W&"2/7!V^JS71(=:Y&C!9%^X;+<C69.%3
M\-L)^VFLAG.;/OVUPA[#DAYJ,Y#+UMW7[LJ,2[(QS,:N5V.94:[TN@B;?K>5
M'Q8(MVK6'XH:?'24XC.D#]#T'"QXK9YT/%Z0JP@7RUF*K#HD)1I5%]8C,6LW
MAZM263CRL*9N%.J?1*I#=8J9B$7@9.H>OA\P$4T-E:F<)]CBK(3VBA.)M6(R
MHF,J*N,$2ZSR9I=#8%NUE5^>4^R^W#E\OO_V1(U7'7^G<R_4W:'/H8=M8EF!
M#90:E3F74,D:.%[=2EWRM5A8:&-:3\2+G:D_UF!:6YZ!MT.(DF@9;FBB2NO^
M5*U);LBU *Z/N?#Z1U 3L:(F(O(0N T#(S"-E?:IXQMBB7M(8<PL%+07)@;O
M>_:-,&Q,KB:5!C=\/L<F[P=.,A@=Y9CS1BXTN6 :@;GJR0B@JU*;?:+K26AJ
M$4FM@/^<DDQ#&X.[^Y17LY,:Y_@]"RXB<01BC&_G>="4ZU<D?JIEG-QE*A2Y
M>B7&:HO([A5L $;TPNV*5FFP&,Y8'E_Z6> <5#@"&30V,,]K7?$I-DAPR\5Z
MMWB[B?49D(9"!8RB(F HZ=%##Q\AZ">$IP.0G3I3IUJ=,N .MXD8U<KT]9I;
M7^Y%VYU'6<G>XRWY+]A^6T;%*_&IIHS#5-OK3BYSH0&<YB,2<,^'+ F,IW0D
MDPYR-:^LLF^$(])-Z6*+N5";T9$[P(:=4C<IF8N9Y'W&3YV["._6WWN_ AE1
M,Z1+IX>I -^MNW.0#R\_I(E"791>!)M,+=5#@E.-5#B,TU1?6"1,1MI0H1Y+
M%5H"&IOS@CA^2$?'I&G^<!(R'"!;F(LJT2IO7OS#E7!:,B2UFR$_0 K$.0H=
M3%](9Y&1J,G4IY-!MRF7>"(!ZV23- ^?]J)C'_Q7RDJ;1#1T2=J90^*Y->"J
MS3WQ;K4I4ZFJ,!.":<B%RZ6<Q5)TYV73!D_/,,9D!&GV7@WH5Q'VEA2180]F
MJJNX*!K7J1*\,:,]:0ZJ=:#Q(S#4Y3I;:"3)C.)<@LY.5IVWHG&Y:?/X@7"E
MOJ'"Z8.#6DV=<7]G=_,&8:*DM78/VWAY-_Q4 Q/'FL_J^'0VD6_%Q&/0?:ZS
MT(M9RUX]3%5*FD)N;>Z^V*(9FF]WZ=M4UC@ET*VXJH&\M5;\4G0X/_WJY>+Y
MZ528B*4V;G+1BA4'TN=-:<Y9]1<IMSH#TGS CG+5LE>"K28YZDX!1=SG7D^)
MK4#^41%')0Q7R^I^XZ\]-)9Z3:#$'Y&%92JUFX*QQF&807?STH[%#Q9KT6N6
M1FC/%1TN_!/,Q(KB(FM?U:M\WNG6"5<;2;YWJ8;W-N*3+A$Z>R7<YP]ZT>\$
M<&$NX7>TRF@'E7A;7]>(?WO[#.(O KP$LR-<GJ=]_WS#4KO53-P$<.5(>0ZF
MP7$CS/BH7W_YB#4B;WS$&<+U;Q?]Y0CUBS]&J+\//UOT/?]<TO\ 4$L#!!0
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
M;$5%O-;WF]QW>W3O'6OS7=_X[MF;YK\ 4$L#!!0    ( *:$7%B_#JJV_A4
M +IY   :    97AH:6)I=#0T8V1X<RTR,#(S,3(S,2YH=&WM76MWVS::_KZ_
M IML.YUSY-1VG-1U,CW'=9S6NVF2M=W)?-L#D:"$FB18@)2B_?7[7@ 2I"C;
M:=HXT7K.Z<2B0%S?R_/>H.?SNLA_>#Y7,OWAWY[_^\Z.>&&2IE!E+1*K9*U2
MT3A=SL2[5+DKL;/C6YV8:F7U;%Z+_=W] _'.V"N]D/Q]K>M<_1#Z>?XM?W[^
M+0WR?&K2U0_/4[T0.OW' SU]DJ;9_M[A[C1-#^3T<'HH4Y4D!]_+P]W=0_GX
M?_8>P*O0G-]Q]2I7_WA0Z')GKG#\H^_VJ_K94J?U_&AO=_>K!]3NA^>9*6L8
MS,++_"?WL=Z3M#/H;&KJVA1'>]A9)=,4EKQCN?]'3Y[ PUJ]KW=DKF?E$3U_
MP$.$;A*3&WOT<)?^]PR_V<EDH?/5T=\N=:&<>*V6XMP4LOS;Q,G2[3AE=<8-
MG?Y?!7.'0>CCTJ\+^LEUJ<(Z>7&G[^=ZJNNO'^X]W7UV\.B@O[K-Z\+>_:/:
M5/PY6E("!Z7L':WIQ>G%R?G9V\NS-Z_%FY?B\N=3<7[ZT]G%Y?GQZ\NO'Q[N
M[WWW[$)<G)[\>GYV>79Z(?!8N<7I^>D+\?;7\XM?H:FX?(.MJ)^]_= 5-H[>
M/?W7R<_'KW\Z%<<GE]AD[_O''[^)NDQA X\>/ZW^>KHX&-W#8R=,)EZJJ6VD
M78G]PPDQY@08-57OM9N(LS)Y)+[![=S??;94$_IK[YGP3QH7'A@;GIG&^H=_
M%W.9"E,JD>32T5A.)8W5M88U6#73#N@'A07LA!47*JFU*9E*X2B@>3U7^#B\
M<OH^F<MRIL1Q4N/7> P3(9V0(#-2E7[]\,DA3*6Q(C%%84K83Y-<3<1_[#Z"
MC=P3E;1B(?-&B0K&<W-I5;NX^(TP_T<?<L:?#6,HEUA=X5;B'IWPNBYP75M
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
M?1$^(J*)U-R??;+>@AZ7%6:)2 ;&R %"U.+PR3"PSS;V"+W&$1>/2KS0ZJ\
M'0CH44DG@-("U@V.0QH=+(: GI9S0SJ@XQ2$:02[@C7 #GYX1P%Z-ROEMT-4
M.1H=L$/L0FF_K4)Z#_H;XJR,UJ%"H!&1/^PCH;4,71:(FD 5+.>*V#$D%2E0
M%$,-!2.WD3<VD?BL.H/)XMK9U1 93\;>,]PG9#A)=A@&CP#S(TC$L"9ZKB)1
M/29PM>N$LX_&C(AT(M0N+Q0&DX@4*$4:AP4#!7%XH13Q%;H!>TYV?!]I$T98
M6LQ,8N$ \YR$4<>R<UK6'<G-V9A[0U)%<RY\RX.;I<0V6)*;T)\,E2MC1Q_J
M6WSXX!Y3?7J>+=&=9&<L1)$AP!+UWGI=+DR^"(AYZ#W;3,[W4.<N3A&L=A2R
MB PR!"55KM*9ZOSKJ78A)$;57;M?M=%#+\Y\OLH(%NE3POVI?SZGO@'+MJFO
M76#'MK01E%$/;?KTADUHU$.Q30@X0FPY9@6@F?4^410"=/>4<=>4L5F2$\V$
M](4NM.=]GN$-<@M:JIP"5.3SO:-D[D ^OA+51FDRPP'9LYHP^+\%-KI'\G=
M/V2Z882YJJ\_G7#"WE_>YAD:B;$$\DI3K'_62,HQI 044DRNTTP9H,&2P'OK
M=B>G9,JT0?X8:QKO[8Z(:3-NOKO<D3NH5!XGK?U;<LPVY+M\+D;061F<W)-U
M3WH*I%U28&P3,_DJ8,PM)K)GK\V:R$2IO/=D#;YMM$;'G*%H3 .CKHV%)G"N
M*0K.43,;PFNY3^\('YDYR;X?]K(5X2 T:-NRMD$*Y!;8ZYC1%,4L6\\*71?1
MKGN8"X3A?H?Q_C8Y(,3$1SPV;5KCL!>B+$^B@_1BGT#4KQ;Q.89%I5)V*P+5
M)<JU2;E8<E94A#Z]$[ 7$FZCS5W"?!3TPG2#T>2FVJ<TS8VK==Y%L&F.(??)
M#^AZ&4[ E[($&1DBI5&^TU:PQH7WM5U$LNL7]KMM0^K\FS^44>0ABR=9>9-#
M,N0@)I)$J2GS54@.!I)"-V0;KUAGK8DXF6N5B=/W*FG(7?F&O?=(>R"K'#G8
M)_@)^I2X@E#L(E-3^;3W?IGCAOR(;:#7<RZ!Y)1(%%C'#$S%:^//TYO ,4&_
MQK"/SV[G\A"?&K'-%.XSW_#CE%*W/(1'3S9F0 &1)RIM,%)#0AS^J+S='P.9
M+HVDS>AM=Y.27A&FI# B'T=;GPL **)QX^.TP EE=!B%3)6W"WQ<C-^)(GQC
M$6',#,!8&;K^U>:&6T'PI^B$*4?)^KBM0WCGHR G' 799K*^5G KOUG*12'+
MH;2F;*RQX%%;Z"&#I-\*"CKI2JQ_1!YA-\QIRZB4?]SFE;X(W,/-7FJV%OXI
M$S3LMZ*>;D/ECW8^!1\#TN0DQ8PC\H,I#SSCUB7?F,!^,@IIPW06RB<NT<L[
MF*Y$:763Z':WJ<(-)4&)OE7LA-J-UA.1: ;2G\TH4C[HEJY30+C1NSNNFV1;
MX^H' R%+X_E8:X1G-HQ,QBCG]/,^$#+694/5'CZ]!M2QU&7G0M(V*!/*)UV?
M\H\^;W$XZ*UN@IBLOX;_<HW"\+*'\;MM>O9UV*/16R"H0K=+,/U(.!EM6& W
MJIL8C".^T7_G[>=MNB:D/:SQW73;1>_.B7#AQ,YX)7#/X1!71].@'*P?O8:#
M0.HWVD\>!>D'SS]$Z.5M[\_XJ]8"5/J2R_W0+\.E1PN2@<AL&Q V%IPO%6::
MFB1IR.3L7<G1]L"1'>(A3)@D-Q)G)K=Y2VB_7V,T4&9]R?F7F0XNG)YYL!E
M<=;CIF_;_)Z0T8]^H460_[BYS##=L(-$*Q:6F(JY<F#-8^^\QY1ZE3+YTZV$
MO8R0S*N:;BA<)*8%#5+54;IJFU*ZTHIWL)!7O,-QV46OAB)X%GS"N9E2/4C/
MN3!I$ZIU'66XMHZ206$$<O,06%A5Y1(O 5QCQ.U"I52\%'PB)\!N6 S2E49M
M 4@@IUJ\2B^I29)-S:)?:L$1TE; MU\%POQ(-]O$IUW["X!\CA5&65:CXO/I
MTYV;A"?.8.TZB%A<;D,FT^5:4OQM$N"ON<;R3RA$VU2!&1=ZD-1R7CET<FO=
M?0E#\+V^;,-@KE["^7DKDIZ4#JI+?Q<I] -SM2 S<ZP_\4:XUSB]\JBQJQA(
M&9@,#29?2\+SPY[(4VH;E)#IVC3#$D9KA=I9CNQ)5'X:^69Q8IU3]B^H<?N@
MHK94@8:[KJ!M.P1^[X*(3+P*%W,1D9\!N1=EYW[[A2^.VP(!\L< OZ\V=6OE
MII10X\O"PP:NH?^,@H&EJI%34UE0*9A/VLD:P%Q 7+ [J)8J!&JU]P''Y;3
M%2=!(-1X)5Y_"+)Y[B/NF\_]\?^CB/L=;3$E<(=B4 +:R!-L@S><4C*T\T<Y
M@_PM6&5FPRW=F4Z;1%.;AN_1ZOFB/5;K.!!ZN,]6OHN\MN[(8@O)_R:%P],C
M\9B;E<PYMCU.&/=9B7=Q>NA$Q\,HP&1!K8<,#1!HAE>=9-)GG'#Y!.4L$GJC
M&FNZM;U P%L"I]8<T+DJN:1SH4W>ACM E=T?[B>OMBMAVP%I='?/D'WB[]WD
M*G??@BT#JZK& D)WG K871E$HK=-  3BZ/]TR7<'MS7)[E-'/X/48S+WPF]5
M=/(:3""K%P20^5X!O' \J/60![H-WH0_(YF$;Q2<W,I7X-]L7Z2[2;LKH-&U
MS';7:@#OJ?.V!K2-5*%[^</MB)L2#,AX'TZ5G<0AXP"O'"D=R7]TBP=?=4M
MQH;I4BFH?\N+!DPISH<E+U[_^!IO2F50*;G;Z<XL6HZ_081^20F-<]=8[A?3
M,&%^6>?5H[$G[80F74ELF],&6+.L6[#9@4=IM>/;KLEE@6YO:--=$^C]*YCZ
M)BN9X"M6S:1-<Y_U%JIFV[L5.M\"P^/N[O7NO.>Z",/P;T(-#NV=8G\*V5#^
MX/CB%\JLXQ@>A[NP!0<\Y0PO$26!WQNL1UR(GT.F4N_6(=ZFL'$,ND,D(=U\
M_3).EF*<F&-%0>JNVF3BW3C1Q *A971-4-_MD)'NR267K'0DQ^$7( VP'69M
M*@IFN$W0-65LJ5;.HTZ146+[;TTZHP$G(F3ZID!)=9US)B!TU93U@*!;!S&%
M<4AA-I@XXZ_!&*/7\3MK*&:&EV+%=^K0'3S]!4?[0O>W*LRD1+L'#[.N\?X>
MS[(4[.A^G"G4D,>&44]J\+R(M3&V2Z^G768 ;U7\0GC6,4;+<-L@^B_)91-<
M8(1,>QZPX<E$!^<]EG_,G7R=X*6;:;NH6-]21E4]Q0 DA\7PA09$HIRA7ZJ^
M1E\0%_4,,VW[%O6*W;B1@QD8H$F4]VNUUQU2YBT@ X[XXI76LT"V-TUB0M=]
M"PPBS^94')[PQ7DZ"PG#H,$F_M:O4+'2N%:M#J*1/I2+)<R]>B1O:()] GM+
MC+WY<F&O.;W&#(JNDJ$ CW_*J"<D\"XV\E)\GB[@:QV^2/&OI4OE[^*GW$PQ
M19@S(W[A.,$K[= QOP6\_6;D5U)R314=\.BF?6#U2Q'P53$U>:B1/WGQKXM'
MOBC^"SS]4%]Z/ N4?$X_0VGE1]E@G\F17X:+5[(6V;&$]4ML8[1#NCC];W&!
MR258[8A7)-@%7I#W5VBX$=_NO8L^/L/;_J[LK5WTW_)O)W]+O]G\?U!+ 0(4
M Q0    ( *:$7%@RQ=L^*R$# +8E(@ 1              "  0    !C9'AS
M+3(P,C,Q,C,Q+FAT;5!+ 0(4 Q0    ( *:$7%AD8&E"1!L  *!0 0 1
M          "  5HA P!C9'AS+3(P,C,Q,C,Q+GAS9%!+ 0(4 Q0    ( *:$
M7%B<)YK\U2(  "!= 0 5              "  <T\ P!C9'AS+3(P,C,Q,C,Q
M7V-A;"YX;6Q02P$"% ,4    " "FA%Q8W'2[_[>G  "C[ < %0
M    @ '57P, 8V1X<RTR,#(S,3(S,5]D968N>&UL4$L! A0#%     @ IH1<
M6*^>#Q[%\@$ ^FL" !0              ( !OP<$ &-D>',M,C R,S$R,S%?
M9S$N:G!G4$L! A0#%     @ IH1<6*)&4W<@AP$ +G\0 !4
M ( !MOH% &-D>',M,C R,S$R,S%?;&%B+GAM;%!+ 0(4 Q0    ( *:$7%@7
MBXJ-FP<! /*0#  5              "  0F"!P!C9'AS+3(P,C,Q,C,Q7W!R
M92YX;6Q02P$"% ,4    " "FA%Q8 6HSX(M; 0#W$@T '@
M@ '7B0@ 8V]D97AI<RUE>#$P,3%C;V1E>&ES7VYE<W0N:'1M4$L! A0#%
M  @ IH1<6(GUXC>4#@$ "5L( !X              ( !GN4) &-O9&5X:7,M
M97@Q,#$W8V]D97AI<U]I;FYO+FAT;5!+ 0(4 Q0    ( *:$7%@I5D+,JPX
M #5)   >              "  6[T"@!C;V1E>&ES+65X.3<Q<&]L:6-Y;VYR
M96-O=2YH=&U02P$"% ,4    " "FA%Q8@(0]#7 #  !!#0  '@
M    @ %5 PL 97AH:6)I=#(S,6%U9&ET8V]N<V5N=#(P,C,N:'1M4$L! A0#
M%     @ IH1<6$'7W;. !P  6R4  !L              ( ! 0<+ &5X:&EB
M:70S,3%C9'AS+3(P,C,Q,C,Q+FAT;5!+ 0(4 Q0    ( *:$7%CR8ZY'?0<
M -8E   ;              "  ;H."P!E>&AI8FET,S$R8V1X<RTR,#(S,3(S
M,2YH=&U02P$"% ,4    " "FA%Q8TRY._;($  !P%@  &P
M@ %P%@L 97AH:6)I=#,R,6-D>',M,C R,S$R,S$N:'1M4$L! A0#%     @
MIH1<6+\.JK;^%0  NGD  !H              ( !6QL+ &5X:&EB:70T-&-D
E>',M,C R,S$R,S$N:'1M4$L%!@     /  \ 'P0  )$Q"P    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>128
<FILENAME>cdxs-20231231_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cdxs="http://www.codexis.com/20231231"
  xmlns:country="http://xbrl.sec.gov/country/2023"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2023"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2023"
  xmlns:us-gaap="http://fasb.org/us-gaap/2023"
  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="cdxs-20231231.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2024-02-23</instant>
        </period>
    </context>
    <context id="c-4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-10">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-15">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-16">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-18">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-23">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-34">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-36">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-37">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-40">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-41">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-42">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-43">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-45">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-46">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-47">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-48">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-53">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-54">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-55">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-56">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-57">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-59">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-60">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-61">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-62">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:FourCustomersMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-63">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:TwoCustomersMember</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-12-31</endDate>
        </period>
    </context>
    <context id="c-64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-65">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-68">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-69">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-70">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-71">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-72">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-73">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-74">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-76">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-78">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-80">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-82">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:LongTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-83">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-84">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2022-10-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-86">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-87">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-88">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-90">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-91">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-92">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-93">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-95">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2014-07-01</startDate>
            <endDate>2014-07-31</endDate>
        </period>
    </context>
    <context id="c-96">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2014-07-01</startDate>
            <endDate>2014-07-31</endDate>
        </period>
    </context>
    <context id="c-97">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c-98">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-99">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:GSKMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-102">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-104">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-105">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2015-08-31</instant>
        </period>
    </context>
    <context id="c-106">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-107">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-108">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:TechnologyTransferCollaborationandLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-109">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2012-02-01</startDate>
            <endDate>2012-02-29</endDate>
        </period>
    </context>
    <context id="c-110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2015-12-01</startDate>
            <endDate>2015-12-31</endDate>
        </period>
    </context>
    <context id="c-111">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-113">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-114">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-116">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-117">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-118">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:EnzymeSupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-120">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-121">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TateLyleMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:CommercialAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-11-30</instant>
        </period>
    </context>
    <context id="c-122">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TateLyleMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:CommercialAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="c-123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-124">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-125">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-126">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-12-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-127">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="c-128">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-04-30</instant>
        </period>
    </context>
    <context id="c-129">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-04-30</instant>
        </period>
    </context>
    <context id="c-130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-04-01</startDate>
            <endDate>2018-04-30</endDate>
        </period>
    </context>
    <context id="c-131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-04-01</startDate>
            <endDate>2018-04-30</endDate>
        </period>
    </context>
    <context id="c-132">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-133">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PortonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-135">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-05-31</instant>
        </period>
    </context>
    <context id="c-136">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-137">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-138">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-05-01</startDate>
            <endDate>2019-05-31</endDate>
        </period>
    </context>
    <context id="c-139">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-05-31</instant>
        </period>
    </context>
    <context id="c-140">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-141">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-142">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-143">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-144">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-145">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c-146">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c-147">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-10-31</instant>
        </period>
    </context>
    <context id="c-148">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-149">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-150">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-151">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:UpFrontPaymentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="c-152">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestonePaymentPerTargetGeneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="c-153">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-154">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-155">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-156">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-157">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-158">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="c-159">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="c-160">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:RoyaltyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="c-161">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="c-162">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-163">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-164">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="c-165">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="c-166">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-167">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-168">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-169">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-170">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-171">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-172">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-08-31</instant>
        </period>
    </context>
    <context id="c-173">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-08-01</startDate>
            <endDate>2022-08-31</endDate>
        </period>
    </context>
    <context id="c-174">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-175">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-176">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-177">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-03-31</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c-178">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-179">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-180">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-181">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-182">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-183">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</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="c-184">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-185">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-186">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2020-11-30</instant>
        </period>
    </context>
    <context id="c-187">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2021-07-31</instant>
        </period>
    </context>
    <context id="c-188">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesB2PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="c-189">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-11-30</instant>
        </period>
    </context>
    <context id="c-190">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-11-30</instant>
        </period>
    </context>
    <context id="c-191">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-192">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-03-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c-193">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-194">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="c-195">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesC1PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="c-196">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="c-197">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-198">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-199">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesCAndC1PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-200">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="c-203">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-204">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-205">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-206">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-208">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-209">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-210">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-212">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-213">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-215">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-216">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-217">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-218">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-219">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-221">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-222">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-223">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-225">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-226">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-229">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-230">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-232">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-233">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-234">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-235">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-236">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-237">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022InducementPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="c-238">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-30</instant>
        </period>
    </context>
    <context id="c-239">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-06-30</instant>
        </period>
    </context>
    <context id="c-240">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-04-30</endDate>
        </period>
    </context>
    <context id="c-241">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="c-242">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-243">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-244">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-245">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-246">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:IncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-247">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:NonStatutoryStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-248">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-249">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-250">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-251">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-252">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-253">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-254">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-255">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-256">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceShareUnitsPSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-257">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-258">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-259">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-260">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PBOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-261">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c-262">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c-263">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="c-264">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PBOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="c-265">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PSUAnd2021PBOMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="c-266">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2021PSUAnd2021PBOMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="c-267">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-268">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-269">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-270">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-271">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-272">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-273">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-274">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-275">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-276">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-277">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-278">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-279">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-280">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-281">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-282">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-283">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-284">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-285">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-286">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-287">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-288">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-289">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-290">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-291">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-292">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-293">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-294">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-295">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-296">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-297">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-298">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-299">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-300">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</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="c-301">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-302">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-303">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-305">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-306">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-307">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-308">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-309">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-310">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-311">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-312">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-313">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-314">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2023-02-27</instant>
        </period>
    </context>
    <context id="c-315">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-05-31</endDate>
        </period>
    </context>
    <context id="c-316">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-05-31</instant>
        </period>
    </context>
    <context id="c-317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-05-31</endDate>
        </period>
    </context>
    <context id="c-318">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-319">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-320">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-321">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-322">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-323">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-324">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-325">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A400PenoscotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-326">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-327">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-328">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-329">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="c-330">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-01</instant>
        </period>
    </context>
    <context id="c-331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-10-01</endDate>
        </period>
    </context>
    <context id="c-332">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OtherCommitmentsAxis">cdxs:FacilityMaintenanceAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-333">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-06-30</instant>
        </period>
    </context>
    <context id="c-334">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-06-30</instant>
        </period>
    </context>
    <context id="c-335">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-06-30</startDate>
            <endDate>2017-06-30</endDate>
        </period>
    </context>
    <context id="c-336">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-337">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-338">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-339">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-30</instant>
        </period>
    </context>
    <context id="c-340">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-04-30</endDate>
        </period>
    </context>
    <context id="c-341">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-09-30</instant>
        </period>
    </context>
    <context id="c-342">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-09-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="c-343">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2023-09-30</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="c-344">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-345">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-346">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</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="c-347">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-348">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</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="c-349">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</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-12-31</endDate>
        </period>
    </context>
    <context id="c-350">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</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-12-31</endDate>
        </period>
    </context>
    <context id="c-351">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerCMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-352">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-353">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerEMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-354">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerFMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-355">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-356">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-357">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-358">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-359">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-360">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-361">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-362">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-363">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-364">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-365">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-366">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-367">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-368">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-369">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancialAssetNotPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-370">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables30To59DaysPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-371">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables60To89DaysPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-372">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-373">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">cdxs:FinancialReceivablesPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-374">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancialAssetNotPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-375">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables30To59DaysPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-376">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivables60To89DaysPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-377">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-378">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancingReceivablesPeriodPastDueAxis">cdxs:FinancialReceivablesPastDueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-379">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="c-380">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-381">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-11-01</startDate>
            <endDate>2022-11-30</endDate>
        </period>
    </context>
    <context id="c-382">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-383">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-384">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-13</startDate>
            <endDate>2024-02-13</endDate>
        </period>
    </context>
    <context id="c-385">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-386">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-387">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansFirstTrancheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-388">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoansSecondTrancheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-389">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-390">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-391">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-13</startDate>
            <endDate>2024-02-13</endDate>
        </period>
    </context>
    <context id="c-392">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="segment">
        <measure>cdxs:segment</measure>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="payment">
        <measure>cdxs:payment</measure>
    </unit>
    <unit id="installment">
        <measure>cdxs:installment</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="renewal_option">
        <measure>cdxs:renewal_option</measure>
    </unit>
    <unit id="option">
        <measure>cdxs:option</measure>
    </unit>
    <unit id="tranche">
        <measure>cdxs:tranche</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-32">0001200375</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="c-1" id="f-33">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus contextRef="c-1" id="f-34">2023</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus contextRef="c-1" id="f-35">FY</dei:DocumentFiscalPeriodFocus>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-86" id="f-480">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-87" id="f-481">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-88" id="f-482">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-89" id="f-483">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <dei:DocumentType contextRef="c-1" id="f-1">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="c-1" id="f-2">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-4">2023-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate contextRef="c-1" id="f-3">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport contextRef="c-1" id="f-5">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="c-1" id="f-6">001-34705</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="c-1" id="f-7">Codexis,&#160;Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-8">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-9">71-0872999</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-10">200 Penobscot Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-11">Redwood City</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-12">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-13">94063</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-14">650</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-15">421-8100</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="c-1" id="f-16">Common Stock, par value $0.0001 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="c-1" id="f-17">CDXS</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="c-1" id="f-18">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="c-1" id="f-19">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="c-1" id="f-20">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="c-1" id="f-21">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="c-1" id="f-22">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="c-1" id="f-23">Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="c-1" id="f-24">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-25">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="c-1" id="f-26">true</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag contextRef="c-1" id="f-27">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany contextRef="c-1" id="f-28">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="c-2" decimals="-5" id="f-29" unitRef="usd">122400000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="INF" id="f-30" unitRef="shares">70303639</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock contextRef="c-1" id="f-31">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;Portions of the registrant&#x2019;s Definitive Proxy Statement to be filed with the Commission pursuant to Regulation 14A in connection with the registrant&#x2019;s 2024 Annual Meeting of Stockholders (the "2024 Proxy Statement"), to be filed subsequent to the date hereof, are incorporated by reference into Part III of this Report. Such Definitive Proxy Statement will be filed with the Securities and Exchange Commission not later than 120 days after the conclusion of the registrant&#x2019;s fiscal year ended December&#160;31, 2023. Except with respect to information specifically incorporated by reference in this Form 10-K, the 2024 Proxy Statement is not deemed to be filed as part of this Form 10-K.&lt;br/&gt;&lt;/span&gt;</dei:DocumentsIncorporatedByReferenceTextBlock>
    <dei:AuditorName contextRef="c-1" id="f-36">BDO USA, P.C.</dei:AuditorName>
    <dei:AuditorLocation contextRef="c-1" id="f-37">San Francisco, CA</dei:AuditorLocation>
    <dei:AuditorFirmId contextRef="c-1" id="f-38">243</dei:AuditorFirmId>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-4" decimals="-3" id="f-39" unitRef="usd">65116000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="-3" id="f-40" unitRef="usd">113984000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCash contextRef="c-4" decimals="-3" id="f-41" unitRef="usd">519000</us-gaap:RestrictedCash>
    <us-gaap:RestrictedCash contextRef="c-5" decimals="-3" id="f-42" unitRef="usd">521000</us-gaap:RestrictedCash>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-4" decimals="-3" id="f-43" unitRef="usd">10036000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-5" decimals="-3" id="f-44" unitRef="usd">31904000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-4" decimals="-3" id="f-45" unitRef="usd">815000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-5" decimals="-3" id="f-46" unitRef="usd">2116000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-4" decimals="-3" id="f-47" unitRef="usd">9142000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledContractsReceivable contextRef="c-5" decimals="-3" id="f-48" unitRef="usd">7016000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:NotesReceivableGross contextRef="c-4" decimals="-3" id="f-49" unitRef="usd">19993000</us-gaap:NotesReceivableGross>
    <us-gaap:NotesReceivableGross contextRef="c-5" decimals="-3" id="f-50" unitRef="usd">41036000</us-gaap:NotesReceivableGross>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-4" decimals="-3" id="f-51" unitRef="usd">65000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-5" decimals="-3" id="f-52" unitRef="usd">163000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AccountsNotesAndLoansReceivableNetCurrent contextRef="c-4" decimals="-3" id="f-53" unitRef="usd">19928000</us-gaap:AccountsNotesAndLoansReceivableNetCurrent>
    <us-gaap:AccountsNotesAndLoansReceivableNetCurrent contextRef="c-5" decimals="-3" id="f-54" unitRef="usd">40873000</us-gaap:AccountsNotesAndLoansReceivableNetCurrent>
    <us-gaap:InventoryNet contextRef="c-4" decimals="-3" id="f-55" unitRef="usd">2685000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-5" decimals="-3" id="f-56" unitRef="usd">2029000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-4" decimals="-3" id="f-57" unitRef="usd">5218000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-5" decimals="-3" id="f-58" unitRef="usd">5487000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-4" decimals="-3" id="f-59" unitRef="usd">93466000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-5" decimals="-3" id="f-60" unitRef="usd">162894000</us-gaap:AssetsCurrent>
    <us-gaap:RestrictedCashNoncurrent contextRef="c-4" decimals="-3" id="f-61" unitRef="usd">1062000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:RestrictedCashNoncurrent contextRef="c-5" decimals="-3" id="f-62" unitRef="usd">1521000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-6" decimals="-3" id="f-63" unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-7" decimals="-3" id="f-64" unitRef="usd">13921000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-4" decimals="-3" id="f-65" unitRef="usd">9700000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-5" decimals="-3" id="f-66" unitRef="usd">20510000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-4" decimals="-3" id="f-67" unitRef="usd">13137000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-5" decimals="-3" id="f-68" unitRef="usd">39263000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-4" decimals="-3" id="f-69" unitRef="usd">15487000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-5" decimals="-3" id="f-70" unitRef="usd">22614000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Goodwill contextRef="c-4" decimals="-3" id="f-71" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-72" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-4" decimals="-3" id="f-73" unitRef="usd">1246000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-5" decimals="-3" id="f-74" unitRef="usd">350000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets contextRef="c-4" decimals="-3" id="f-75" unitRef="usd">136561000</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-5" decimals="-3" id="f-76" unitRef="usd">250393000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent contextRef="c-4" decimals="-3" id="f-77" unitRef="usd">5947000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent contextRef="c-5" decimals="-3" id="f-78" unitRef="usd">3246000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-79" unitRef="usd">11246000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-80" unitRef="usd">11453000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-81" unitRef="usd">4735000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-82" unitRef="usd">15279000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-4" decimals="-3" id="f-83" unitRef="usd">3781000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-5" decimals="-3" id="f-84" unitRef="usd">5360000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-4" decimals="-3" id="f-85" unitRef="usd">10121000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-5" decimals="-3" id="f-86" unitRef="usd">13728000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-87" unitRef="usd">35830000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-88" unitRef="usd">49066000</us-gaap:LiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent contextRef="c-4" decimals="-3" id="f-89" unitRef="usd">640000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent contextRef="c-5" decimals="-3" id="f-90" unitRef="usd">16881000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-4" decimals="-3" id="f-91" unitRef="usd">12243000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-5" decimals="-3" id="f-92" unitRef="usd">38278000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-4" decimals="-3" id="f-93" unitRef="usd">1233000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-5" decimals="-3" id="f-94" unitRef="usd">1371000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities contextRef="c-4" decimals="-3" id="f-95" unitRef="usd">49946000</us-gaap:Liabilities>
    <us-gaap:Liabilities contextRef="c-5" decimals="-3" id="f-96" unitRef="usd">105596000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies contextRef="c-4" id="f-97" unitRef="usd" xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies contextRef="c-5" id="f-98" unitRef="usd" xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-4"
      decimals="INF"
      id="f-99"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-5"
      decimals="INF"
      id="f-100"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-4" decimals="INF" id="f-101" unitRef="shares">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-5" decimals="INF" id="f-102" unitRef="shares">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-4" decimals="INF" id="f-103" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued contextRef="c-4" decimals="INF" id="f-104" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-5" decimals="INF" id="f-105" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued contextRef="c-5" decimals="INF" id="f-106" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue contextRef="c-4" decimals="-3" id="f-107" unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue contextRef="c-5" decimals="-3" id="f-108" unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-5"
      decimals="INF"
      id="f-109"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-4"
      decimals="INF"
      id="f-110"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-5" decimals="INF" id="f-111" unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-4" decimals="INF" id="f-112" unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-4" decimals="INF" id="f-113" unitRef="shares">69905000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued contextRef="c-4" decimals="INF" id="f-114" unitRef="shares">69905000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued contextRef="c-5" decimals="-3" id="f-115" unitRef="shares">65811000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-5" decimals="-3" id="f-116" unitRef="shares">65811000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue contextRef="c-4" decimals="-3" id="f-117" unitRef="usd">7000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue contextRef="c-5" decimals="-3" id="f-118" unitRef="usd">6000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital contextRef="c-4" decimals="-3" id="f-119" unitRef="usd">584138000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital contextRef="c-5" decimals="-3" id="f-120" unitRef="usd">566081000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-4" decimals="-3" id="f-121" unitRef="usd">-497530000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-5" decimals="-3" id="f-122" unitRef="usd">-421290000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity contextRef="c-4" decimals="-3" id="f-123" unitRef="usd">86615000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-5" decimals="-3" id="f-124" unitRef="usd">144797000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-4" decimals="-3" id="f-125" unitRef="usd">136561000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-5" decimals="-3" id="f-126" unitRef="usd">250393000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-8" decimals="-3" id="f-127" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-9" decimals="-3" id="f-128" unitRef="usd">514000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-10" decimals="-3" id="f-129" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-11" decimals="-3" id="f-130" unitRef="usd">42906000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-12" decimals="-3" id="f-131" unitRef="usd">116676000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-13" decimals="-3" id="f-132" unitRef="usd">70657000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-14" decimals="-3" id="f-133" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-15" decimals="-3" id="f-134" unitRef="usd">1245000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-16" decimals="-3" id="f-135" unitRef="usd">1955000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-17" decimals="-3" id="f-136" unitRef="usd">27237000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-18" decimals="-3" id="f-137" unitRef="usd">21914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-19" decimals="-3" id="f-138" unitRef="usd">34097000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-139" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-20" decimals="-3" id="f-140" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-21" decimals="-3" id="f-141" unitRef="usd">104754000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-1" decimals="-3" id="f-142" unitRef="usd">12809000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-20" decimals="-3" id="f-143" unitRef="usd">38033000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-21" decimals="-3" id="f-144" unitRef="usd">22209000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-1" decimals="-3" id="f-145" unitRef="usd">58885000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-20" decimals="-3" id="f-146" unitRef="usd">80099000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-21" decimals="-3" id="f-147" unitRef="usd">55919000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-1" decimals="-3" id="f-148" unitRef="usd">53250000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-20" decimals="-3" id="f-149" unitRef="usd">52172000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-21" decimals="-3" id="f-150" unitRef="usd">49323000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:RestructuringCharges contextRef="c-1" decimals="-3" id="f-151" unitRef="usd">3284000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-20" decimals="-3" id="f-152" unitRef="usd">3167000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-21" decimals="-3" id="f-153" unitRef="usd">0</us-gaap:RestructuringCharges>
    <cdxs:AssetImpairmentAndOtherCharges contextRef="c-1" decimals="-3" id="f-154" unitRef="usd">9984000</cdxs:AssetImpairmentAndOtherCharges>
    <cdxs:AssetImpairmentAndOtherCharges contextRef="c-20" decimals="-3" id="f-155" unitRef="usd">0</cdxs:AssetImpairmentAndOtherCharges>
    <cdxs:AssetImpairmentAndOtherCharges contextRef="c-21" decimals="-3" id="f-156" unitRef="usd">0</cdxs:AssetImpairmentAndOtherCharges>
    <us-gaap:CostsAndExpenses contextRef="c-1" decimals="-3" id="f-157" unitRef="usd">138212000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses contextRef="c-20" decimals="-3" id="f-158" unitRef="usd">173471000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses contextRef="c-21" decimals="-3" id="f-159" unitRef="usd">127451000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="-3" id="f-160" unitRef="usd">-68069000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-20" decimals="-3" id="f-161" unitRef="usd">-34881000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-21" decimals="-3" id="f-162" unitRef="usd">-22697000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest contextRef="c-1" decimals="-3" id="f-163" unitRef="usd">4172000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest contextRef="c-20" decimals="-3" id="f-164" unitRef="usd">1441000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest contextRef="c-21" decimals="-3" id="f-165" unitRef="usd">459000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-22" decimals="-3" id="f-166" unitRef="usd">0</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-23" decimals="-3" id="f-167" unitRef="usd">208000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-24" decimals="-3" id="f-168" unitRef="usd">983000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-1" decimals="-3" id="f-169" unitRef="usd">-12274000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-20" decimals="-3" id="f-170" unitRef="usd">124000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-21" decimals="-3" id="f-171" unitRef="usd">1148000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-172" unitRef="usd">-76171000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-20" decimals="-3" id="f-173" unitRef="usd">-33316000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-21" decimals="-3" id="f-174" unitRef="usd">-21090000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-175" unitRef="usd">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-176" unitRef="usd">276000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-177" unitRef="usd">189000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-178" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-20" decimals="-3" id="f-179" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-21" decimals="-3" id="f-180" unitRef="usd">-21279000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-1"
      decimals="2"
      id="f-181"
      unitRef="usdPerShare">-1.12</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-1"
      decimals="2"
      id="f-182"
      unitRef="usdPerShare">-1.12</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-20"
      decimals="2"
      id="f-183"
      unitRef="usdPerShare">-0.51</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-20"
      decimals="2"
      id="f-184"
      unitRef="usdPerShare">-0.51</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-21"
      decimals="2"
      id="f-185"
      unitRef="usdPerShare">-0.33</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-21"
      decimals="2"
      id="f-186"
      unitRef="usdPerShare">-0.33</us-gaap:EarningsPerShareBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="-3" id="f-187" unitRef="shares">68131000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="-3" id="f-188" unitRef="shares">68131000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-20" decimals="-3" id="f-189" unitRef="shares">65344000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-20" decimals="-3" id="f-190" unitRef="shares">65344000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-21" decimals="-3" id="f-191" unitRef="shares">64568000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-21" decimals="-3" id="f-192" unitRef="shares">64568000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:SharesOutstanding contextRef="c-25" decimals="-3" id="f-193" unitRef="shares">64283000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-25" decimals="-3" id="f-194" unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-26" decimals="-3" id="f-195" unitRef="usd">536516000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-27" decimals="-3" id="f-196" unitRef="usd">-366419000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-28" decimals="-3" id="f-197" unitRef="usd">170103000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-29" decimals="-3" id="f-198" unitRef="shares">699000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-30" decimals="-3" id="f-199" unitRef="usd">5180000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-21" decimals="-3" id="f-200" unitRef="usd">5180000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther contextRef="c-29" decimals="-3" id="f-201" unitRef="shares">181000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-31" decimals="-3" id="f-202" unitRef="usd">11346000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-32" decimals="-3" id="f-203" unitRef="usd">11346000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-33" decimals="-3" id="f-204" unitRef="usd">247000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-34" decimals="-3" id="f-205" unitRef="usd">247000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="c-29" decimals="-3" id="f-206" unitRef="shares">54000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-30" decimals="-3" id="f-207" unitRef="usd">1206000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-21" decimals="-3" id="f-208" unitRef="usd">1206000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetIncomeLoss contextRef="c-35" decimals="-3" id="f-209" unitRef="usd">-21279000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-21" decimals="-3" id="f-210" unitRef="usd">-21279000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding contextRef="c-36" decimals="-3" id="f-211" unitRef="shares">65109000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-36" decimals="-3" id="f-212" unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-37" decimals="-3" id="f-213" unitRef="usd">552083000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-38" decimals="-3" id="f-214" unitRef="usd">-387698000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-39" decimals="-3" id="f-215" unitRef="usd">164391000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-40" decimals="-3" id="f-216" unitRef="shares">410000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-41" decimals="-3" id="f-217" unitRef="usd">955000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-20" decimals="-3" id="f-218" unitRef="usd">955000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther contextRef="c-40" decimals="-3" id="f-219" unitRef="shares">373000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-42" decimals="-3" id="f-220" unitRef="usd">14398000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-43" decimals="-3" id="f-221" unitRef="usd">14398000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-44" decimals="-3" id="f-222" unitRef="usd">133000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-45" decimals="-3" id="f-223" unitRef="usd">133000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="c-40" decimals="-3" id="f-224" unitRef="shares">81000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-41" decimals="-3" id="f-225" unitRef="usd">1488000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-20" decimals="-3" id="f-226" unitRef="usd">1488000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetIncomeLoss contextRef="c-46" decimals="-3" id="f-227" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-20" decimals="-3" id="f-228" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding contextRef="c-47" decimals="-3" id="f-229" unitRef="shares">65811000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-47" decimals="-3" id="f-230" unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-48" decimals="-3" id="f-231" unitRef="usd">566081000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-49" decimals="-3" id="f-232" unitRef="usd">-421290000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-5" decimals="-3" id="f-233" unitRef="usd">144797000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-50" decimals="-3" id="f-234" unitRef="shares">283000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-51" decimals="-3" id="f-235" unitRef="usd">559000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-1" decimals="-3" id="f-236" unitRef="usd">559000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther contextRef="c-50" decimals="-3" id="f-237" unitRef="shares">796000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-52" decimals="-3" id="f-238" unitRef="usd">9969000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-53" decimals="-3" id="f-239" unitRef="usd">9969000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-54" decimals="-3" id="f-240" unitRef="usd">2000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-55" decimals="-3" id="f-241" unitRef="usd">2000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:PaymentsOfStockIssuanceCosts contextRef="c-1" decimals="-3" id="f-242" unitRef="usd">721000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="c-50" decimals="-3" id="f-243" unitRef="shares">3080000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-50" decimals="-3" id="f-244" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-51" decimals="-3" id="f-245" unitRef="usd">7931000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-1" decimals="-3" id="f-246" unitRef="usd">7932000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="c-50" decimals="-3" id="f-247" unitRef="shares">65000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-51" decimals="-3" id="f-248" unitRef="usd">404000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-1" decimals="-3" id="f-249" unitRef="usd">404000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetIncomeLoss contextRef="c-56" decimals="-3" id="f-250" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-251" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding contextRef="c-57" decimals="-3" id="f-252" unitRef="shares">69905000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-57" decimals="-3" id="f-253" unitRef="usd">7000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-58" decimals="-3" id="f-254" unitRef="usd">584138000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-59" decimals="-3" id="f-255" unitRef="usd">-497530000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-4" decimals="-3" id="f-256" unitRef="usd">86615000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-257" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-20" decimals="-3" id="f-258" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-21" decimals="-3" id="f-259" unitRef="usd">-21279000</us-gaap:NetIncomeLoss>
    <us-gaap:Depreciation contextRef="c-1" decimals="-3" id="f-260" unitRef="usd">5518000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-20" decimals="-3" id="f-261" unitRef="usd">5402000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-21" decimals="-3" id="f-262" unitRef="usd">3113000</us-gaap:Depreciation>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-1" decimals="-3" id="f-263" unitRef="usd">4405000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-20" decimals="-3" id="f-264" unitRef="usd">4849000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-21" decimals="-3" id="f-265" unitRef="usd">2834000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="-3" id="f-266" unitRef="usd">9971000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-20" decimals="-3" id="f-267" unitRef="usd">14531000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-21" decimals="-3" id="f-268" unitRef="usd">11593000</us-gaap:ShareBasedCompensation>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-1" decimals="-3" id="f-269" unitRef="usd">-65000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-20" decimals="-3" id="f-270" unitRef="usd">4000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-21" decimals="-3" id="f-271" unitRef="usd">342000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:OtherNoncashIncome contextRef="c-22" decimals="-3" id="f-272" unitRef="usd">0</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-23" decimals="-3" id="f-273" unitRef="usd">1245000</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-24" decimals="-3" id="f-274" unitRef="usd">1955000</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-1" decimals="-3" id="f-275" unitRef="usd">213000</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-20" decimals="-3" id="f-276" unitRef="usd">1245000</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-21" decimals="-3" id="f-277" unitRef="usd">1955000</us-gaap:OtherNoncashIncome>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-22" decimals="-3" id="f-278" unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-23" decimals="-3" id="f-279" unitRef="usd">-208000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-24" decimals="-3" id="f-280" unitRef="usd">-983000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-1" decimals="-3" id="f-281" unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-20" decimals="-3" id="f-282" unitRef="usd">208000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-21" decimals="-3" id="f-283" unitRef="usd">1272000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <cdxs:AssetImpairmentAndOtherCharges contextRef="c-1" decimals="-3" id="f-284" unitRef="usd">9984000</cdxs:AssetImpairmentAndOtherCharges>
    <cdxs:AssetImpairmentAndOtherCharges contextRef="c-20" decimals="-3" id="f-285" unitRef="usd">0</cdxs:AssetImpairmentAndOtherCharges>
    <cdxs:AssetImpairmentAndOtherCharges contextRef="c-21" decimals="-3" id="f-286" unitRef="usd">0</cdxs:AssetImpairmentAndOtherCharges>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-1" decimals="-3" id="f-287" unitRef="usd">12215000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-20" decimals="-3" id="f-288" unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-21" decimals="-3" id="f-289" unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement contextRef="c-1" decimals="-3" id="f-290" unitRef="usd">4000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement contextRef="c-20" decimals="-3" id="f-291" unitRef="usd">-29000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement contextRef="c-21" decimals="-3" id="f-292" unitRef="usd">-19000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:IncreaseDecreaseInFinanceReceivables contextRef="c-1" decimals="-3" id="f-293" unitRef="usd">-20247000</us-gaap:IncreaseDecreaseInFinanceReceivables>
    <us-gaap:IncreaseDecreaseInFinanceReceivables contextRef="c-20" decimals="-3" id="f-294" unitRef="usd">3225000</us-gaap:IncreaseDecreaseInFinanceReceivables>
    <us-gaap:IncreaseDecreaseInFinanceReceivables contextRef="c-21" decimals="-3" id="f-295" unitRef="usd">9156000</us-gaap:IncreaseDecreaseInFinanceReceivables>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-1" decimals="-3" id="f-296" unitRef="usd">656000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-20" decimals="-3" id="f-297" unitRef="usd">869000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-21" decimals="-3" id="f-298" unitRef="usd">196000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-1" decimals="-3" id="f-299" unitRef="usd">865000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-20" decimals="-3" id="f-300" unitRef="usd">-181000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-21" decimals="-3" id="f-301" unitRef="usd">2268000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-1" decimals="-3" id="f-302" unitRef="usd">2287000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-20" decimals="-3" id="f-303" unitRef="usd">207000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-21" decimals="-3" id="f-304" unitRef="usd">268000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities contextRef="c-1" decimals="-3" id="f-305" unitRef="usd">14041000</cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities>
    <cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities contextRef="c-20" decimals="-3" id="f-306" unitRef="usd">-5983000</cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities>
    <cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities contextRef="c-21" decimals="-3" id="f-307" unitRef="usd">-6575000</cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities contextRef="c-1" decimals="-3" id="f-308" unitRef="usd">-5341000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities contextRef="c-20" decimals="-3" id="f-309" unitRef="usd">-5223000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities contextRef="c-21" decimals="-3" id="f-310" unitRef="usd">-4147000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-22" decimals="-3" id="f-311" unitRef="usd">0</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-23" decimals="-3" id="f-312" unitRef="usd">0</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-24" decimals="-3" id="f-313" unitRef="usd">245000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-1" decimals="-3" id="f-314" unitRef="usd">-19848000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-20" decimals="-3" id="f-315" unitRef="usd">24518000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-21" decimals="-3" id="f-316" unitRef="usd">1300000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-1" decimals="-3" id="f-317" unitRef="usd">-52638000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-20" decimals="-3" id="f-318" unitRef="usd">11284000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-21" decimals="-3" id="f-319" unitRef="usd">-14267000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-320" unitRef="usd">4418000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-20" decimals="-3" id="f-321" unitRef="usd">8307000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-21" decimals="-3" id="f-322" unitRef="usd">13828000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-323" unitRef="usd">751000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-20" decimals="-3" id="f-324" unitRef="usd">29000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-21" decimals="-3" id="f-325" unitRef="usd">36000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-22" decimals="-3" id="f-326" unitRef="usd">0</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-23" decimals="-3" id="f-327" unitRef="usd">0</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-24" decimals="-3" id="f-328" unitRef="usd">7630000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-1" decimals="-3" id="f-329" unitRef="usd">1191000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-20" decimals="-3" id="f-330" unitRef="usd">5300000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-21" decimals="-3" id="f-331" unitRef="usd">7630000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-1" decimals="-3" id="f-332" unitRef="usd">-4858000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-20" decimals="-3" id="f-333" unitRef="usd">-13578000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-21" decimals="-3" id="f-334" unitRef="usd">-21422000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-1" decimals="-3" id="f-335" unitRef="usd">422000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-20" decimals="-3" id="f-336" unitRef="usd">955000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-21" decimals="-3" id="f-337" unitRef="usd">5180000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="c-1" decimals="-3" id="f-338" unitRef="usd">8652000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="c-20" decimals="-3" id="f-339" unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="c-21" decimals="-3" id="f-340" unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsOfFinancingCosts contextRef="c-1" decimals="-3" id="f-341" unitRef="usd">503000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsOfFinancingCosts contextRef="c-20" decimals="-3" id="f-342" unitRef="usd">42000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsOfFinancingCosts contextRef="c-21" decimals="-3" id="f-343" unitRef="usd">207000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-1" decimals="-3" id="f-344" unitRef="usd">404000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-20" decimals="-3" id="f-345" unitRef="usd">1488000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-21" decimals="-3" id="f-346" unitRef="usd">1206000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-1" decimals="-3" id="f-347" unitRef="usd">8167000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-20" decimals="-3" id="f-348" unitRef="usd">-575000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-21" decimals="-3" id="f-349" unitRef="usd">3767000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-1" decimals="-3" id="f-350" unitRef="usd">-49329000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-20" decimals="-3" id="f-351" unitRef="usd">-2869000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-21" decimals="-3" id="f-352" unitRef="usd">-31922000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-353" unitRef="usd">116026000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-39" decimals="-3" id="f-354" unitRef="usd">118895000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-28" decimals="-3" id="f-355" unitRef="usd">150817000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-4" decimals="-3" id="f-356" unitRef="usd">66697000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-357" unitRef="usd">116026000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-39" decimals="-3" id="f-358" unitRef="usd">118895000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet contextRef="c-1" decimals="-3" id="f-359" unitRef="usd">44000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet contextRef="c-20" decimals="-3" id="f-360" unitRef="usd">34000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet contextRef="c-21" decimals="-3" id="f-361" unitRef="usd">14000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-1" decimals="-3" id="f-362" unitRef="usd">194000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-20" decimals="-3" id="f-363" unitRef="usd">100000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-21" decimals="-3" id="f-364" unitRef="usd">102000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c-1" decimals="-3" id="f-365" unitRef="usd">1068000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c-20" decimals="-3" id="f-366" unitRef="usd">897000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c-21" decimals="-3" id="f-367" unitRef="usd">2533000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-4" decimals="-3" id="f-368" unitRef="usd">65116000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="-3" id="f-369" unitRef="usd">113984000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-39" decimals="-3" id="f-370" unitRef="usd">116797000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashAndCashEquivalents contextRef="c-4" decimals="-3" id="f-371" unitRef="usd">1581000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:RestrictedCashAndCashEquivalents contextRef="c-5" decimals="-3" id="f-372" unitRef="usd">2042000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:RestrictedCashAndCashEquivalents contextRef="c-39" decimals="-3" id="f-373" unitRef="usd">2098000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-4" decimals="-3" id="f-374" unitRef="usd">66697000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-375" unitRef="usd">116026000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-39" decimals="-3" id="f-376" unitRef="usd">118895000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations contextRef="c-1" id="f-377">Description of Business &lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In these notes to the consolidated financial statements, the &#x201c;Company,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &#x201c;we,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &#x201c;us,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and &#x201c;our&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; refers to Codexis, Inc. and its subsidiaries on a consolidated basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins leveraging our proprietary CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;directed evolution technology platform. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our Chief Executive Officer (&#x201c;CEO&#x201d;), our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocates resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.&lt;/span&gt;&lt;/div&gt;</us-gaap:NatureOfOperations>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-20"
      decimals="INF"
      id="f-378"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-1"
      decimals="INF"
      id="f-379"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-20"
      decimals="INF"
      id="f-380"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock contextRef="c-1" id="f-381">Basis of Presentation and Summary of Significant Accounting Policies&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation and Principles of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;GAAP&#x201d;) and the applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our revenues are derived primarily from product revenue and collaborative research and development agreements. The majority of our contracts with customers typically contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#x201c;SSP&#x201d;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following is a description of principal activities from which we generate revenue:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer typically upon shipment or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#x2019;s use. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Research and Development Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success. For licenses that have been previously sold to other customers, we use historical information to determine SSP.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Practical Expedients, Elections, and Exemptions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to treat shipping and handling activities as fulfillment costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to record revenue net of sales and other similar taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Assets &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $3.0&#160;million, and $1.8&#160;million for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Research and Development Services&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations. Advertising costs were $0.3 million for each of the years ended December 31, 2023, 2022 and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ESPP&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted Stock Units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSUs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;), Restricted Stock Awards (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSAs&#x201d;) and performance-contingent restricted stock units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PSUs&#x201d;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PBOs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Cash&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2016, we began the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations. This balance is recorded as current restricted cash on the consolidated balance sheets of &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.5 million &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;as of December&#160;31, 2023 and 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million and $1.5&#160;million as of&#160;December&#160;31, 2023 and 2022, respectively. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets. For additional information, see Note 13, &#x201c;Commitments and Contingencies.&#x201d; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#x2019;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2023, we h&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ad four customers that accounted for 58% of our ac&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;counts receivable balance. As of December&#160;31, 2022, two customers accounted for 63% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Financial Assets and Allowances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;W&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#x201c;current expected credit loss model&#x201d; or &#x201c;CECL&#x201d;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#x201c;ACL&#x201d;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Unbilled Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Supply Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;-&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.979%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.981%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Asset classification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Estimated useful life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Office equipment and furniture&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Lesser of useful life or lease term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the year ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ee Note 8, &#x201c;Balance Sheets Details&#x201d; and Note 13, &#x201c;Commitments and Contingencies.&#x201d; No impairment charges for long-lived assets were recorded during the year ended December 31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Investment in Non-Marketable Equity Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in other income (expense), net.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an "other-than-temporary&#x201d; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Audited and unaudited financial statements;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected technological developments of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected ability of the company to service its debt obligations;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;If a deemed liquidation event were to occur;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current fundraising transactions;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current ability of the company to raise additional financing if needed;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Changes in the economic environment which may have a material impact on the operating results of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Contractual rights, obligations or restrictions associated with the investment; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Other factors deemed relevant by our management to assess valuation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted. For additional information on the impairment charge recorded for the year ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ee Note 6, &#x201c;Investments in Non-Marketable Securities.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment considering amongst other things, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$2.5&#160;million and $3.2&#160;million as of December&#160;31, 2023 and 2022, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative "Step 0" assessment based on reviewing relevant events and circumstances; or a quantitative "Step 1" assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. We recorded impairment charges related to goodwill of $0.8&#160;million, nil, and nil for the years ended December&#160;31, 2023, 2022, and 2021, respectively. For additional information on the impairment charge recorded for the year ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ee Note 8, &#x201c;Balance Sheets Details.&#x201d; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Lease Accounting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. We have recorded a valuation allowance against these deferred tax assets in jurisdictions where ultimate realization of deferred tax assets is more likely than not to occur. As of December&#160;31, 2023 and 2022, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) 2009-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#x2019;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#x201c;NOL&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently adopted accounting pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Aside from those recently issued accounting pronouncements not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2023 that are of significance or potential significance to us.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently issued accounting pronouncements not yet adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2023, the Financial Accounting Standards Board (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;FASB&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) issued ASU No. 2023-09,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to benefit investors by providing more detailed income tax disclosures that would be useful in making capital allocation decisions. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2023, FASB issued ASU No. 2023-07,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2023, FASB issued ASU No. 2023-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Disclosure Improvements: Codification Amendments in Response to the SEC&#x2019;s Disclosure Update and Simplification Initiative&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the Accounting Standards Codification (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASC&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#x2019;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock contextRef="c-1" id="f-382">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation and Principles of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;GAAP&#x201d;) and the applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates contextRef="c-1" id="f-383">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="c-1" id="f-384">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="c-1" id="f-385">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our revenues are derived primarily from product revenue and collaborative research and development agreements. The majority of our contracts with customers typically contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#x201c;SSP&#x201d;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following is a description of principal activities from which we generate revenue:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer typically upon shipment or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#x2019;s use. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Research and Development Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers and for new licenses, we consider multiple methods, including a discounted cash flow method which includes the following key assumptions: the development timelines, revenue forecasts, commercialization expenses, discount rate, and the probability of technical and regulatory success. For licenses that have been previously sold to other customers, we use historical information to determine SSP.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Practical Expedients, Elections, and Exemptions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to treat shipping and handling activities as fulfillment costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to record revenue net of sales and other similar taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Assets &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $3.0&#160;million, and $1.8&#160;million for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Research and Development Services&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <cdxs:ShippingAndDistributionCost contextRef="c-1" decimals="-5" id="f-386" unitRef="usd">1000000</cdxs:ShippingAndDistributionCost>
    <cdxs:ShippingAndDistributionCost contextRef="c-20" decimals="-5" id="f-387" unitRef="usd">3000000</cdxs:ShippingAndDistributionCost>
    <cdxs:ShippingAndDistributionCost contextRef="c-21" decimals="-5" id="f-388" unitRef="usd">1800000</cdxs:ShippingAndDistributionCost>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="c-1" id="f-389">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="c-1" id="f-390">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising&lt;/span&gt;&lt;/div&gt;Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations.</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense contextRef="c-1" decimals="-5" id="f-391" unitRef="usd">300000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-21" decimals="-5" id="f-392" unitRef="usd">300000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-20" decimals="-5" id="f-393" unitRef="usd">300000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="c-1" id="f-394">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ESPP&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted Stock Units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSUs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;), Restricted Stock Awards (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSAs&#x201d;) and performance-contingent restricted stock units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PSUs&#x201d;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PBOs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy contextRef="c-1" id="f-395">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits.</us-gaap:CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy>
    <us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy contextRef="c-1" id="f-396">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Cash&lt;/span&gt;&lt;/div&gt;In 2016, we began the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations.Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million and $1.5&#160;million as of&#160;December&#160;31, 2023 and 2022, respectively. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets.</us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy>
    <us-gaap:RestrictedCashCurrent contextRef="c-5" decimals="-5" id="f-397" unitRef="usd">500000</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashCurrent contextRef="c-4" decimals="-5" id="f-398" unitRef="usd">500000</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashNoncurrent contextRef="c-60" decimals="-5" id="f-399" unitRef="usd">1100000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:RestrictedCashNoncurrent contextRef="c-61" decimals="-5" id="f-400" unitRef="usd">1500000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="c-1" id="f-401">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#x2019;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="c-1" id="f-402">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2023, we h&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ad four customers that accounted for 58% of our ac&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;counts receivable balance. As of December&#160;31, 2022, two customers accounted for 63% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-62" decimals="2" id="f-403" unitRef="number">0.58</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-63" decimals="2" id="f-404" unitRef="number">0.63</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy contextRef="c-1" id="f-405">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Financial Assets and Allowances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;W&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#x201c;current expected credit loss model&#x201d; or &#x201c;CECL&#x201d;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#x201c;ACL&#x201d;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.&lt;/span&gt;&lt;/div&gt;</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy contextRef="c-1" id="f-406">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Unbilled Receivable&lt;/span&gt;&lt;/div&gt;The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional.</us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy>
    <us-gaap:InventoryPolicyTextBlock contextRef="c-1" id="f-407">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
    <cdxs:ConcentrationRiskSupplyRiskPolicyTextBlock contextRef="c-1" id="f-408">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Supply Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;-&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.&lt;/span&gt;&lt;/div&gt;</cdxs:ConcentrationRiskSupplyRiskPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="c-1" id="f-409">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="c-1" id="f-410">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.979%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.981%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Asset classification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Estimated useful life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Office equipment and furniture&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Lesser of useful life or lease term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, net consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;37,216&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,633&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Office equipment and furniture&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,469&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Construction in progress&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,636&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;62,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(39,311)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(39,821)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Fully depreciated property and equipment with a cost of $3.0 million and $1.5 million were retired during the years ended December&#160;31, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Construction in progress includes equipment received but not yet placed into service pending installation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Depreciation expense&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,113&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-64" id="f-411">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-65" id="f-412">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-66" id="f-413">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock contextRef="c-1" id="f-414">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the year ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;ee Note 8, &#x201c;Balance Sheets Details&#x201d; and Note 13, &#x201c;Commitments and Contingencies.&#x201d;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse contextRef="c-20" decimals="-5" id="f-415" unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:InvestmentPolicyTextBlock contextRef="c-1" id="f-416">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Investment in Non-Marketable Equity Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in other income (expense), net.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an "other-than-temporary&#x201d; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Audited and unaudited financial statements;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected technological developments of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected ability of the company to service its debt obligations;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;If a deemed liquidation event were to occur;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current fundraising transactions;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current ability of the company to raise additional financing if needed;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Changes in the economic environment which may have a material impact on the operating results of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Contractual rights, obligations or restrictions associated with the investment; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Other factors deemed relevant by our management to assess valuation.&lt;/span&gt;&lt;/div&gt;The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="c-1" id="f-417">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment considering amongst other things, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$2.5&#160;million and $3.2&#160;million as of December&#160;31, 2023 and 2022, respectively. &lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative "Step 0" assessment based on reviewing relevant events and circumstances; or a quantitative "Step 1" assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. We recorded impairment charges related to goodwill of $0.8&#160;million, nil, and nil for the years ended December&#160;31, 2023, 2022, and 2021, respectively. For additional information on the impairment charge recorded for the year ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;ee Note 8, &#x201c;Balance Sheets Details.&#x201d;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:Goodwill contextRef="c-4" decimals="-5" id="f-418" unitRef="usd">2500000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-5" id="f-419" unitRef="usd">3200000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-67" decimals="-5" id="f-420" unitRef="usd">800000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-68" decimals="-5" id="f-421" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-69" decimals="-5" id="f-422" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="c-1" id="f-423">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Lease Accounting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="c-1" id="f-424">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. We have recorded a valuation allowance against these deferred tax assets in jurisdictions where ultimate realization of deferred tax assets is more likely than not to occur. As of December&#160;31, 2023 and 2022, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) 2009-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#x2019;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#x201c;NOL&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="c-1" id="f-425">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently adopted accounting pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Aside from those recently issued accounting pronouncements not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2023 that are of significance or potential significance to us.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently issued accounting pronouncements not yet adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2023, the Financial Accounting Standards Board (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;FASB&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) issued ASU No. 2023-09,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to benefit investors by providing more detailed income tax disclosures that would be useful in making capital allocation decisions. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2023, FASB issued ASU No. 2023-07,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2023, FASB issued ASU No. 2023-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Disclosure Improvements: Codification Amendments in Response to the SEC&#x2019;s Disclosure Update and Simplification Initiative&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the Accounting Standards Codification (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASC&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#x2019;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="c-1" id="f-426">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Disaggregation of Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China). &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Disaggregated information is as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Major products and service:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;116,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,097&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Primary geographical markets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;23,481&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,086&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For additional information regarding revenue disaggregated by geography, see Note 15, &#x201c;Segment, Geographical and Other Revenue Information.&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unbilled receivables&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract costs&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract liabilities: deferred revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,609&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize accounts receivable when we have an unconditional right to recognize revenue and have issued an invoice to the customer. Our payment terms are generally between 30 and 90 days. We recognize unbilled receivables when we have an unconditional right to recognize revenue and have not issued an invoice to our customer. Unbilled receivables are transferred to accounts receivable on issuance of an invoice. Unbilled receivables are classified separately on the consolidated balance sheets as an asset. We maintain a valuation allowance on accounts receivables and unbilled receivables. As of December 31, 2023, we have $9.1 million of short-term unbilled receivables presented as unbilled receivables within current assets and $0.8 million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. As of December 31, 2022, we had $7.0 million of short-term unbilled receivables presented as unbilled receivables within current asset. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract assets represent our right to recognize revenue for custom products with no alternate use and under binding non-cancellable contracts and are largely related to our procurement of product. We recognize contract assets when we have a conditional right to recognize revenue. The transfer of control of certain products occurs in advance of the invoicing process, which generates contract assets. In addition, we recognize a contract asset related to milestones not eligible for royalty accounting when we assess it is probable of being achieved and there will be no significant reversal of cumulative revenues. Contract assets are classified separately on the consolidated balance sheets as an asset and transferred to accounts receivables when our rights to payment become unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities, or deferred revenue, represent our obligation to transfer a product or service to the customer, and for which we have received consideration from the customer. We recognize a contract liability when we receive advance customer payments under development agreements for research and development services, upfront license payments, and from upfront customer payments received under product supply agreements. Contract liabilities are classified as a liability on the consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract costs relate to incremental costs of obtaining a contract with a customer. Contract costs are amortized along with the associated revenue over the term of the contract. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the years ended December&#160;31, 2023, 2022 and 2021, we had no asset impairment charges related to contract assets. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized the following revenues (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Revenue recognized in the period for:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amounts included in contract liabilities at the beginning of the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,038&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied from new activities in the period - contract revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;136,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:32.964%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.624%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2027 and Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="c-1" id="f-427">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Disaggregated information is as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Major products and service:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;116,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,097&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Primary geographical markets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;23,481&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,086&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-11" decimals="-3" id="f-428" unitRef="usd">42906000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-12" decimals="-3" id="f-429" unitRef="usd">116676000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-13" decimals="-3" id="f-430" unitRef="usd">70657000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-17" decimals="-3" id="f-431" unitRef="usd">27237000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-18" decimals="-3" id="f-432" unitRef="usd">21914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-19" decimals="-3" id="f-433" unitRef="usd">34097000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-434" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-20" decimals="-3" id="f-435" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-21" decimals="-3" id="f-436" unitRef="usd">104754000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-70" decimals="-3" id="f-437" unitRef="usd">13733000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-71" decimals="-3" id="f-438" unitRef="usd">17000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-72" decimals="-3" id="f-439" unitRef="usd">23481000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-73" decimals="-3" id="f-440" unitRef="usd">22907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-74" decimals="-3" id="f-441" unitRef="usd">56540000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-75" decimals="-3" id="f-442" unitRef="usd">20187000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-76" decimals="-3" id="f-443" unitRef="usd">33503000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-77" decimals="-3" id="f-444" unitRef="usd">65050000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-78" decimals="-3" id="f-445" unitRef="usd">61086000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-446" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-20" decimals="-3" id="f-447" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-21" decimals="-3" id="f-448" unitRef="usd">104754000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="c-1" id="f-449">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unbilled receivables&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract costs&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract liabilities: deferred revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,609&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized the following revenues (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Revenue recognized in the period for:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amounts included in contract liabilities at the beginning of the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,038&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied from new activities in the period - contract revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;136,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-4" decimals="-3" id="f-450" unitRef="usd">815000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-5" decimals="-3" id="f-451" unitRef="usd">2116000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:UnbilledContractsReceivable contextRef="c-4" decimals="-3" id="f-452" unitRef="usd">9904000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable contextRef="c-5" decimals="-3" id="f-453" unitRef="usd">7016000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:CapitalizedContractCostNetCurrent contextRef="c-4" decimals="-3" id="f-454" unitRef="usd">0</us-gaap:CapitalizedContractCostNetCurrent>
    <us-gaap:CapitalizedContractCostNetCurrent contextRef="c-5" decimals="-3" id="f-455" unitRef="usd">19000</us-gaap:CapitalizedContractCostNetCurrent>
    <us-gaap:ContractWithCustomerLiability contextRef="c-4" decimals="-3" id="f-456" unitRef="usd">10761000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-5" decimals="-3" id="f-457" unitRef="usd">30609000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueFromContractWithCustomerPaymentTerms contextRef="c-79" id="f-458">P30D</cdxs:RevenueFromContractWithCustomerPaymentTerms>
    <cdxs:RevenueFromContractWithCustomerPaymentTerms contextRef="c-80" id="f-459">P90D</cdxs:RevenueFromContractWithCustomerPaymentTerms>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-81" decimals="-5" id="f-460" unitRef="usd">9100000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-82" decimals="-5" id="f-461" unitRef="usd">800000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-83" decimals="-5" id="f-462" unitRef="usd">7000000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense contextRef="c-1" decimals="INF" id="f-463" unitRef="usd">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense contextRef="c-20" decimals="INF" id="f-464" unitRef="usd">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense contextRef="c-21" decimals="INF" id="f-465" unitRef="usd">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-84" decimals="-3" id="f-466" unitRef="usd">17937000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-85" decimals="-3" id="f-467" unitRef="usd">2038000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice contextRef="c-84" decimals="-3" id="f-468" unitRef="usd">4165000</us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice>
    <us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice contextRef="c-85" decimals="-3" id="f-469" unitRef="usd">279000</us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice>
    <cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition contextRef="c-84" decimals="-3" id="f-470" unitRef="usd">48041000</cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition>
    <cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition contextRef="c-85" decimals="-3" id="f-471" unitRef="usd">136273000</cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition>
    <us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized contextRef="c-84" decimals="-3" id="f-472" unitRef="usd">70143000</us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized contextRef="c-85" decimals="-3" id="f-473" unitRef="usd">138590000</us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock contextRef="c-1" id="f-474">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:32.964%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.624%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2027 and Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-86" decimals="-3" id="f-475" unitRef="usd">10121000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-87" decimals="-3" id="f-476" unitRef="usd">140000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-88" decimals="-3" id="f-477" unitRef="usd">140000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-89" decimals="-3" id="f-478" unitRef="usd">360000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-90" decimals="-3" id="f-479" unitRef="usd">10761000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:EarningsPerShareTextBlock contextRef="c-1" id="f-484">Net Loss per Share&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSAs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, diluted and basic net loss per share are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Anti-Dilutive Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Shares issuable under the Equity Incentive Plans and ESPP&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,215&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Included 568,224 of anti-dilutive potential common shares from ESPP for the year ended December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock contextRef="c-1" id="f-485">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Shares issuable under the Equity Incentive Plans and ESPP&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,215&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Included 568,224 of anti-dilutive potential common shares from ESPP for the year ended December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-91" decimals="-3" id="f-486" unitRef="shares">9028000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-92" decimals="-3" id="f-487" unitRef="shares">7442000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-93" decimals="-3" id="f-488" unitRef="shares">5215000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-94" decimals="0" id="f-489" unitRef="shares">568224</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:CollaborativeArrangementDisclosureTextBlock contextRef="c-1" id="f-490">Collaborative Arrangements&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;GSK Platform Technology Transfer, Collaboration and License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2014, we entered into a CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Platform Technology Transfer, Collaboration and License agreement (the &#x201c;GSK CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agreement&#x201d;) with GSK. Pursuant to the terms of the agreement, we granted GSK a non-exclusive license to use the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform to develop novel enzymes for use in the manufacture of GSK's pharmaceutical and health care products. We completed the transfer of the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;technology platform to GSK in April 2016 and all revenues relating to the technology transfer have been recognized as of April 2016. Depending upon GSK's successful application of the licensed technology, we have the potential to receive additional contingent payments that range from $5.8 million to $38.5 million per project. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2019, we received a $2.0&#160;million milestone payment relating to the advancement of an enzyme developed by GSK using our CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform. In 2021, we received two additional milestone payments from GSK under the agreement. In 2023, we received an additional milestone payment from GSK under the agreement. We recognized research and development revenue of $1.3&#160;million, nil, and $4.3 million in the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Merck Platform Technology Transfer and License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In August 2015, we entered into a CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform transfer collaboration and license agreement (the &#x201c;Merck CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agreement&#x201d;) with Merck, Sharp &amp;amp; Dohme (&#x201c;Merck&#x201d;) which allows Merck to use the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;technology platform in the field of human and animal healthcare. In 2016, we completed the final phase in the transfer of the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;technology platform to Merck under the Merck CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agreement. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized research and development revenues of nil, $40 thousand, and $0.6 million in the years ended December 31, 2023, 2022 and 2021, respectively, for various research projects under our collaborative arrangement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have the potential to receive payments of up to a maximum of $15.0&#160;million for each commercial active pharmaceutical ingredient ("API") that is manufactured by Merck using one or more novel enzymes developed by Merck using the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform. The API payments, which are currently not recognized in revenue, are based on the quantity of API developed and manufactured by Merck and will be recognized as usage-based royalties.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2018, we entered into an amendment to the Merck CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Agreement which amended certain licensing provisions and one exhibit. In January 2019, we amended the Merck CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Agreement to install certain CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;technology platform upgrades into Merck&#x2019;s platform license installation and maintain those upgrades for a multi-year term that expired in January 2022. The license installation was completed in 2019. No research and development revenues were recognized in the years ended December 31, 2023 and 2022. We recognized $0.1 million in research and development revenues under the terms of the amendment in the year ended December 31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Merck Sitagliptin Catalyst Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In February 2012, we entered into a five-year Sitagliptin Catalyst Supply Agreement (&#x201c;Sitagliptin Supply Agreement&#x201d;) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its options under the terms of the Sitagliptin Supply Agreement to extend the agreement for an additional five years through February 2022. In September 2021, the Sitagliptin Supply Agreement was amended to extend the agreement through December 2026. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized $4.4 million, $5.9 million and $9.8 million in product revenue under this agreement in the years ended December 31, 2023, 2022 and 2021, respectively. This represented 6%, 4%, and 9% of our total revenues in the years ended December 31, 2023, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2023, we recorded revenue of $0.7 million from sitagliptin enzyme sales that were recognized over time based on the progress of the manufacturing process. These products will be &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;shipped within the three-month period following the end of 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Enzyme Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2016, we entered into a supply agreement whereby our customer may purchase quantities of one of our proprietary enzymes for use in its commercial manufacture of a product. Pursuant to the supply agreement, we received an upfront payment in December 2016 which was recorded as deferred revenue.&#160;Such upfront payment will be recognized over the period of the supply agreement as the customer purchases our proprietary enzyme. We additionally have determined that the volume discounts under the supply agreement provide the customer material rights and we are recognizing revenues using the &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;alternative method. In 2023, due to the early termination of the enzyme supply agreement with the customer, we recognized $3.2&#160;million of product revenue from the release of prior periods' product revenue deferrals and also recognized $1.3&#160;million of product revenue as settlement fee pursuant to the enzyme supply agreement with the same customer. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023 and 2022, we had deferred revenue balances from the supply agreement of nil and $3.3 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Commercial Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2019, we entered into &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;a multi-year commercial agreement with Tate &amp;amp; Lyle under which Tate &amp;amp; Lyle has received an exclusive license to use a suite of Codexis novel performance enzymes in the manufacture of Tate &amp;amp; Lyle&#x2019;s zero-calorie stevia sweetener, TASTEVA&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; M, and other stevia products. Under the agreement, we will supply Tate &amp;amp; Lyle with its requirements for these enzymes over a multiple year period and receive royalties on stevia products. In November 2020, we amended the commercial agreement based on Tate &amp;amp; Lyle's intent to use a specific Codexis novel performance enzyme in its production of TASTEVA&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; M Stevia Sweetener and became eligible to receive milestone payments of up to $1.1 million. In the fourth quarter of 2020, we became eligible to receive a milestone payment of $0.4 million which we subsequently received in February 2021.&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; The commercial agreement with Tate &amp;amp; Lyle was terminated in 2023.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Global Development, Option and License Agreement and Strategic Collaboration Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2017, we entered into the Nestl&#xe9; License Agreement with Nestl&#xe9; Health Science and, solely for the purpose of the integration and the dispute resolution clauses of the Nestl&#xe9; License Agreement, Nestl&#xe9; Health Science S.A., to advance CDX-6114, our enzyme biotherapeutic product candidate for the potential treatment of PKU.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2019, we received notice from the U.S. Food and Drug Administration (&#x201c;FDA&#x201d;) that it had completed its review of our IND for CDX-6114 and concluded that we may proceed with the proposed Phase 1b multiple ascending dose study in healthy volunteers in the United States. In February 2019, Nestl&#xe9; Health Science exercised its option to obtain an exclusive, worldwide, royalty-bearing, sub-licensable license for the global development and commercialization of CDX-6114 for the management of PKU. Upon exercising its option, Nestl&#xe9; Health Science made an option payment and assumed all responsibilities for future clinical development and commercialization of CDX-61&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14. In October 2023, we provided notice pursuant to Nestl&#xe9; License Agreement of our intent to abandon or transfer to Nestl&#xe9; Health Science (at their option) the patents and patent applications related to CDX-6114 as of December 5, 2023, and Nestl&#xe9; Health Science notified us that they did not exercise their right to assume responsibility of such patents and patent applications.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2017, we entered into the Nestl&#xe9; SCA pursuant to which we and Nestl&#xe9; Health Science are collaborating to leverage the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform to develop novel enzymes for Nestl&#xe9; Health Science&#x2019;s established Consumer Care and Medical Nutrition business areas. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The term of the Nestl&#xe9; SCA has expired in December 2023, as we opted out of a renewal period through December 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2020, we entered into a development agreement with Nestl&#xe9; Health Science pursuant to which we and Nestl&#xe9; Health Science are collaborating to advance a lead candidate discovered through our Nestl&#xe9; SCA, CDX-7108, targeting exocrine pancreatic insufficiency, into preclinical and early clinical studies. We, together with Nestl&#xe9; Health Science, initiated a Phase 1 clinical trial of CDX-7108 in the fourth quarter of 2021, and &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;on February 23, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;we and Nestl&#xe9; Health Science announced interim results. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, we announced plans to discontinue our development support of CDX-7108.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the Nestl&#xe9; SCA and the development agreement, we recognized &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$4.1&#160;million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $7.1&#160;million and $6.9&#160;million in research and development revenue in the years ended December&#160;31, 2023, 2022 and 2021, respectively. Both the Nestl&#xe9; SCA and the development agreement were terminated in January 2024&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Acquisition Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, we entered into an acquisition agreement (the &#x201c;Acquisition Agreement&#x201d;) with Nestl&#xe9; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Health Science&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#xe9; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Health Science&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Under the terms of the Acquisition Agreement, Nestl&#xe9; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Health Science &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, and Codexis will receive upfront payment, future potential milestone payments and net-sales based royalties. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized research and development revenue of &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$5.0&#160;million f&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;or the year ended &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2023 related to the Acquisition Agreement. We received the &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$5.0&#160;million upfront fee in January 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Strategic Collaboration Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2018, we entered into the Porton Agreement with Porton to license key elements of our biocatalyst technology for use in Porton&#x2019;s global custom intermediate and API development and manufacturing business. Under the Porton Agreement, we are eligible to receive annual collaboration fees and research and development revenues. We received the initial collaboration payments of $0.5&#160;million and $0.5 million within 30 days of the effective date and on the first anniversary of the effective date of the Porton Agreement, respectively. We also received annual collaboration payments of $1.0&#160;million each during the first through fourth anniversaries of the effective date of the Porton Agreement. We completed the technical transfer in the fourth quarter of 2018 and recognized the related revenue in 2018. We recognized revenue related to the functional license provided to Porton at a point in time when control of the license was transferred to the customer. The initial term of the Porton Agreement expired in April 2023 and was not renewed for an extended term. We recognized research and development revenue related to the Porton Agreement of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nil&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $0.1 million and $1.1 million in the years ended December 31, 2023, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Platform Technology Transfer and License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In May 2019, we entered into the Novartis CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Agreement with Novartis. The Novartis CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agreement allows Novartis to use our proprietary CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform to Novartis (the &#x201c;Technology Transfer Period&#x201d;). As a part of this technology transfer, we provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform at its designated laboratory.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the agreement, we received an upfront payment of $5.0&#160;million shortly after the effective date of the Novartis CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $4.0&#160;million. We have also received an aggregate of $5.0 million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#x201c;Improvements Term&#x201d;), Novartis will pay Codexis annual payments over four years which amount to an additional $8.0&#160;million in aggregate. We received an aggregate of $4.0&#160;million for the first two annual payments in 2022 and 2023. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized overtime based on hours incurred. Revenue allocated to improvements made during the Improvements Term is being recognized during the Improvements Term. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rec&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ognized &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.1 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $1.0 million and $1.6 million in research and development revenue in the years ended December&#160;31, 2023, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;In December 2019, we entered a license agreement with Roche Sequencing Solutions, Inc. (&#x201c;Roche&#x201d;) to provide Roche with our evolved T4 DNA ligase high-performance molecular diagnostic enzyme. The royalty bearing license grants Roche worldwide rights to include the evolved T4 DNA ligase in its nucleic acid sequencing products and workflows. Under the license agreement, we received an initial collaboration fee payment of $0.8 million within 45 days of the effective date of the agreement, and we received an additional $0.9 million milestone payment after the completion of technology transfer in October 202&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;0. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior agreement in December 2019 for our evolved T4 DNA ligase. We are eligible to receive an aggregate of mid-single digit millions in upfront and technical milestones payments. No&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt; research and development revenues were recognized in the years ended December 31, 2023 and 2022. We recognized research and development fees &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;of $0.9 million in the year ended December 31,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt; 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Strategic Collaboration and License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2020, we entered into a Strategic Collaboration and License Agreement (the &#x201c;Takeda Agreement&#x201d;) with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (&#x201c;Takeda&#x201d;), pursuant to which we have collaborated with Takeda to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $8.5&#160;million and we initiated activities under three program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the &#x201c;Initial Programs&#x201d;). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. We completed the research and development services relating to the fourth program with Takeda during the second quarter of 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the Takeda Agreement, we are eligible to receive other payments that include (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;i) clinical development and commercialization-based milestones, per target gene, of up to $104.0 million and (ii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits. Takeda announced in April 2023 the discontinuation of these development programs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $2.0 million, $4.9 million and $7.4 million in the years ended December 31, 2023, 2022, and 2021, respectively. As of December&#160;31, 2023 and 2022, we had deferred revenue balances of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nil&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and $0.9 million, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2020, we entered into a Stock Purchase Agreement with Molecular Assemblies, Inc. (&#x201c;MAI&#x201d;) in which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. In connection with the June 2020, transaction, John Nicols, our former President and Chief Executive Officer, joined MAI&#x2019;s board of directors. See Note 14, &#x201c;Related Party Transactions&#x201d; for additional information on our investment in MAI.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Concurrently with our initial equity investment, we entered into the MAI Agreement, pursuant to which we performed services utilizing our CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; which are valued based on the observed transaction price of similar securities of MAI issued to third parties. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the MAI Agreement, we will have the right to use and sell the engineered enzymes to third parties for any purpose other than for the synthesis of native DNA. Under the MAI Agreement, we would make a $0.5&#160;million payment to MAI upon our achievement of a milestone of $5.0&#160;million in aggregate commercial sales to third parties of the engineered enzymes or any product incorporating or derived from the engineered enzymes for any purpose other than the synthesis of native DNA. As contemplated in the MAI Agreement, we executed the Commercial License and Enzyme Supply Agreement with MAI (&#x201c;MAI Supply Agreement&#x201d;) in July 2022 following the completion of certain timelines specified in the SOW.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;W&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e completed the R&amp;amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of MAI Series B preferred stock. Upon execution of the MAI Supply Agreement in July 2022, we received the commercialization and enzyme supply agreement milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;shares of MAI Series B preferred stock. Pursuant to the MAI Agreement, we recognized $1.2 million and $2.0 million in research and development revenue from transactions with MAI in the years ended December 31, 2022 and 2021, respectively. Payment for the services rendered was received in the form of additional MAI Series A and Series B preferred stock. We received an aggregate of 1,587,049 and 3,491,505 shares of MAI's Series A and B preferred stock in the years ended December 31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase (&#x201c;TdT&#x201d;) enzyme in MAI&#x2019;s Fully Enzymatic Synthesis&#x2122; (&#x201c;FES&#x2122;&#x201d;) technology. We recognized &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.2&#160;million and $0.5&#160;million in product revenue in the years ended December&#160;31, 2023 and &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2022, respectively&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Pfizer Enzyme Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During 2021 and 2022, we received purchase orders from Pfizer, Inc. (&#x201c;Pfizer&#x201d;) for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID&#x2122; (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are a party to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#x201c;Pfizer Supply Agreement&#x201d;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $25.9&#160;million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, 90% of the fee ($23.3&#160;million) is creditable against (i) future orders of CDX-616 used to manufacture its PAXLOVID&#x2122; with shipment dates prior to December 31, 2023, and (ii) fees associated with &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $23.3&#160;million credit towards a license to develop future product candidates, for which we recognized $5.0&#160;million as non-cash research and development revenue in the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April 4, 2023. We also recognized $2.0&#160;million of non-cash research and development revenue, and credited against the $25.9&#160;million fee, for other services provided to Pfizer during the year ended December 31, 2023. Up to 50% of any portion of the $25.9&#160;million which has not been credited under items (i) and (ii) is creditable against future orders of CDX-616 used to manufacture PAXLOVID&#x2122; with shipment dates in 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the fourth quarter of 2023, and pursuant to the Pfizer Supply Agreement, we released the prior year deferrals for the unused portion of the retainer fee that is not creditable beyond 2023 and we recognized product revenue of $8.2 million in the year ended December&#160;31, 2023. We recognized product revenue of $75.4 million and $34.5&#160;million in the years ended December 31, 2022 and 2021, respectively, from the sale of quantities of CDX-616 to Pfizer. Product revenues recognized by us from the Pfizer Supply Agreement represented 12%, 54%, and 33% of our total revenues for the years ended December&#160;31, 2023, 2022, and 2021 respectively.&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;As of December&#160;31, 2023 and 2022, we had $9.5&#160;million and $24.4&#160;million, respectively, in deferred revenue related to the $25.9&#160;million fee received from Pfizer.</us-gaap:CollaborativeArrangementDisclosureTextBlock>
    <cdxs:RevenueFromCollaborativeArrangementContingentAmounts contextRef="c-95" decimals="-5" id="f-491" unitRef="usd">5800000</cdxs:RevenueFromCollaborativeArrangementContingentAmounts>
    <cdxs:RevenueFromCollaborativeArrangementContingentAmounts contextRef="c-96" decimals="-5" id="f-492" unitRef="usd">38500000</cdxs:RevenueFromCollaborativeArrangementContingentAmounts>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-97" decimals="-5" id="f-493" unitRef="usd">2000000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <cdxs:CollaborativeArrangementNumberOfMilestonePayments contextRef="c-98" decimals="0" id="f-494" unitRef="payment">2</cdxs:CollaborativeArrangementNumberOfMilestonePayments>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-99" decimals="-5" id="f-495" unitRef="usd">1300000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-100" decimals="-5" id="f-496" unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-101" decimals="-5" id="f-497" unitRef="usd">4300000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-102" decimals="-5" id="f-498" unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-103" decimals="-3" id="f-499" unitRef="usd">40000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-104" decimals="-5" id="f-500" unitRef="usd">600000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-105" decimals="-5" id="f-501" unitRef="usd">15000000</cdxs:RevenueRecognitionContingentReceivable>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-106" decimals="-5" id="f-502" unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-107" decimals="-5" id="f-503" unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-108" decimals="-5" id="f-504" unitRef="usd">100000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement contextRef="c-109" id="f-505">P5Y</cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement>
    <cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement contextRef="c-110" id="f-506">P5Y</cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-111" decimals="-5" id="f-507" unitRef="usd">4400000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-112" decimals="-5" id="f-508" unitRef="usd">5900000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-113" decimals="-5" id="f-509" unitRef="usd">9800000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-114" decimals="2" id="f-510" unitRef="number">0.06</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-115" decimals="2" id="f-511" unitRef="number">0.04</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-116" decimals="2" id="f-512" unitRef="number">0.09</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-117" decimals="-5" id="f-513" unitRef="usd">700000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-118" decimals="-5" id="f-514" unitRef="usd">3200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:RevenueFromContractWithCustomerSettlementFee contextRef="c-118" decimals="-5" id="f-515" unitRef="usd">1300000</cdxs:RevenueFromContractWithCustomerSettlementFee>
    <us-gaap:ContractWithCustomerLiability contextRef="c-119" decimals="-5" id="f-516" unitRef="usd">0</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-120" decimals="-5" id="f-517" unitRef="usd">3300000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-121" decimals="-5" id="f-518" unitRef="usd">1100000</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:ReceivableFromCollaborativeArrangement contextRef="c-122" decimals="-5" id="f-519" unitRef="usd">400000</cdxs:ReceivableFromCollaborativeArrangement>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-123" decimals="-5" id="f-520" unitRef="usd">4100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-124" decimals="-5" id="f-521" unitRef="usd">7100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-125" decimals="-5" id="f-522" unitRef="usd">6900000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-126" decimals="-5" id="f-523" unitRef="usd">5000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:CollaborativeArrangementUpfrontFeeAmount contextRef="c-127" decimals="-5" id="f-524" unitRef="usd">5000000</cdxs:CollaborativeArrangementUpfrontFeeAmount>
    <us-gaap:ContractWithCustomerLiability contextRef="c-128" decimals="-5" id="f-525" unitRef="usd">500000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-129" decimals="-5" id="f-526" unitRef="usd">500000</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment contextRef="c-130" id="f-527">P30D</cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment>
    <us-gaap:ProceedsFromCollaborators contextRef="c-131" decimals="-5" id="f-528" unitRef="usd">1000000</us-gaap:ProceedsFromCollaborators>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-132" decimals="-5" id="f-529" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-133" decimals="-5" id="f-530" unitRef="usd">100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-134" decimals="-5" id="f-531" unitRef="usd">1100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiability contextRef="c-135" decimals="-5" id="f-532" unitRef="usd">5000000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-136" decimals="-5" id="f-533" unitRef="usd">4000000</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-137" decimals="-5" id="f-534" unitRef="usd">5000000</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:RevenueRecognitionContingentAnnualPaymentsTerm contextRef="c-138" id="f-535">P4Y</cdxs:RevenueRecognitionContingentAnnualPaymentsTerm>
    <cdxs:RevenueRecognitionContingentAnnualReceivableIncrease contextRef="c-139" decimals="-5" id="f-536" unitRef="usd">8000000</cdxs:RevenueRecognitionContingentAnnualReceivableIncrease>
    <cdxs:RevenueRecognitionAnnualPayment contextRef="c-140" decimals="-5" id="f-537" unitRef="usd">4000000</cdxs:RevenueRecognitionAnnualPayment>
    <cdxs:RevenueRecognitionAnnualPayment contextRef="c-141" decimals="-5" id="f-538" unitRef="usd">4000000</cdxs:RevenueRecognitionAnnualPayment>
    <cdxs:RevenueRecognitionNumberOfAnnualPayment
      contextRef="c-141"
      decimals="INF"
      id="f-539"
      unitRef="payment">2</cdxs:RevenueRecognitionNumberOfAnnualPayment>
    <cdxs:RevenueRecognitionNumberOfAnnualPayment
      contextRef="c-140"
      decimals="INF"
      id="f-540"
      unitRef="payment">2</cdxs:RevenueRecognitionNumberOfAnnualPayment>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-142" decimals="-5" id="f-541" unitRef="usd">1100000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-143" decimals="-5" id="f-542" unitRef="usd">1000000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-144" decimals="-5" id="f-543" unitRef="usd">1600000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiability contextRef="c-145" decimals="-5" id="f-544" unitRef="usd">800000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment contextRef="c-146" id="f-545">P45D</cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-147" decimals="-5" id="f-546" unitRef="usd">900000</cdxs:RevenueRecognitionContingentReceivable>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-148" decimals="-5" id="f-547" unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-149" decimals="-5" id="f-548" unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-150" decimals="-5" id="f-549" unitRef="usd">900000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiability contextRef="c-151" decimals="-5" id="f-550" unitRef="usd">8500000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-152" decimals="-5" id="f-551" unitRef="usd">104000000</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance contextRef="c-153" decimals="-5" id="f-552" unitRef="usd">2000000</cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance>
    <cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance contextRef="c-154" decimals="-5" id="f-553" unitRef="usd">4900000</cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance>
    <cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance contextRef="c-155" decimals="-5" id="f-554" unitRef="usd">7400000</cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance>
    <us-gaap:ContractWithCustomerLiability contextRef="c-156" decimals="-5" id="f-555" unitRef="usd">0</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-157" decimals="-5" id="f-556" unitRef="usd">900000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-158" decimals="0" id="f-557" unitRef="shares">1587050</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-159" decimals="-5" id="f-558" unitRef="usd">1000000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:ContractWithCustomerLiability contextRef="c-160" decimals="-5" id="f-559" unitRef="usd">500000</us-gaap:ContractWithCustomerLiability>
    <cdxs:ContractWithCustomerSalesMilestone contextRef="c-161" decimals="-5" id="f-560" unitRef="usd">5000000</cdxs:ContractWithCustomerSalesMilestone>
    <cdxs:ContractWithCustomerSalesMilestone contextRef="c-161" decimals="-5" id="f-561" unitRef="usd">5000000</cdxs:ContractWithCustomerSalesMilestone>
    <cdxs:RelatedPartyTransactionMilestonePaymentReceived contextRef="c-162" decimals="-5" id="f-562" unitRef="usd">1000000</cdxs:RelatedPartyTransactionMilestonePaymentReceived>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived contextRef="c-163" decimals="0" id="f-563" unitRef="shares">1587049</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived>
    <cdxs:RelatedPartyTransactionMilestonePaymentReceived contextRef="c-164" decimals="-5" id="f-564" unitRef="usd">1000000</cdxs:RelatedPartyTransactionMilestonePaymentReceived>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived contextRef="c-165" decimals="0" id="f-565" unitRef="shares">1587049</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-166" decimals="-5" id="f-566" unitRef="usd">1200000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-167" decimals="-5" id="f-567" unitRef="usd">2000000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-168" decimals="0" id="f-568" unitRef="shares">1587049</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-169" decimals="0" id="f-569" unitRef="shares">3491505</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-170" decimals="-5" id="f-570" unitRef="usd">200000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-171" decimals="-5" id="f-571" unitRef="usd">500000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-172" decimals="-5" id="f-572" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <cdxs:ContractWithCustomerLiabilityRetainerFeeCreditablePercentage contextRef="c-173" decimals="2" id="f-573" unitRef="number">0.90</cdxs:ContractWithCustomerLiabilityRetainerFeeCreditablePercentage>
    <cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee contextRef="c-172" decimals="-5" id="f-574" unitRef="usd">23300000</cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee>
    <cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee contextRef="c-174" decimals="-5" id="f-575" unitRef="usd">23300000</cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-175" decimals="-5" id="f-576" unitRef="usd">5000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-176" decimals="-5" id="f-577" unitRef="usd">2000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-172" decimals="-5" id="f-578" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <cdxs:ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage contextRef="c-177" decimals="2" id="f-579" unitRef="number">0.50</cdxs:ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-172" decimals="-5" id="f-580" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-178" decimals="-5" id="f-581" unitRef="usd">8200000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-179" decimals="-5" id="f-582" unitRef="usd">75400000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-180" decimals="-5" id="f-583" unitRef="usd">34500000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-181" decimals="2" id="f-584" unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-182" decimals="2" id="f-585" unitRef="number">0.54</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-183" decimals="2" id="f-586" unitRef="number">0.33</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ContractWithCustomerLiability contextRef="c-184" decimals="-5" id="f-587" unitRef="usd">9500000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-185" decimals="-5" id="f-588" unitRef="usd">24400000</us-gaap:ContractWithCustomerLiability>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-172" decimals="-5" id="f-589" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock contextRef="c-1" id="f-590">Investments in Non-Marketable Securities&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Non-Marketable Debt Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We classify non-marketable debt securities, which are accounted for as available-for-sale, within Level 3 in the fair value hierarchy because we estimate the fair value based on a qualitative analysis using the most recent observable transaction price and other significant unobservable inputs including volatility, rights, and obligations of the securities we hold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine gains or losses on the sale or extinguishment of non-marketable debt securities using a specific identification method. Unrealized gains and losses from bifurcated embedded derivatives, which represent share-settled redemption features, are recorded as other expense, net, in the consolidated statements of operations. Unrealized gains and losses on non-marketable debt securities are recorded as a component of other comprehensive loss until realized. Realized gains or losses are recorded as a component of other income (expense), net. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2020, we purchased convertible subordinated notes issued by Arzeda Corp. (&#x201c;Arzeda&#x201d;), an early-stage computational protein design company, for $1.0&#160;million and the investment was classified as available-for-sale non-marketable interest-bearing debt securities. In July 2021, we converted the non-marketable debt security with a carrying value of $1.3 million into 207,070 shares of Series B-2 preferred stock of Arzeda. During the year ended December 31, 2021, we recognized $0.3 million in interest income from interest earned on our investment in this debt security.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There were no investments in non-marketable debt securities as of December&#160;31, 2023 and 2022.&lt;/span&gt;&lt;span style="color:#008080;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Non-Marketable Equity Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in MAI, seqWell and Arzeda. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy when we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. The fair value of non-marketable equity securities are classified within Level 3 when we estimate fair value using unobservable inputs such as when we remeasure due to impairment and we use discount rates, market data of comparable companies, and rights and obligations of the securities the Company holds, among others. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component of other income (expense), net in the consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2023, the 207,070 shares of Arzeda&#x2019;s Series B preferred stock were converted into 41,414 common stock pursuant to the Stock Purchase Agreement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2023, we purchased an additional&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 985,545 shares of Series B preferred stock for $0.8 million in &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;MAI, a privately held life sciences company&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. As of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, we held an aggregate of 19,277,914 shares of MAI's Series A and B preferred stock that we have earned or purchased from MAI. See Note 14, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;Related Party Transactions&#x201d; for additional information on our investment in MAI.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2022, we entered into a Stock Purchase Agreement with seqWell Inc. (&#x201c;seqWell&#x201d;), a privately held life sciences company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#x201c;seqWell Agreement&#x201d;), pursuant to which we are providing research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional 88,256 shares of seqWell's Series C-1 preferred stock and 44,128 common stock warrants for $0.4 million. We received 205,279 shares of seqWell's common stock from research and development services with seqWell and we recognized $0.2&#160;million in research and development revenue from these services in the year ended December&#160;31, 2023. As of December&#160;31, 2023, we held an aggregate of 1,088,256 shares of Series C and C-1 preferred stock, 205,279 shares of common stock and 44,128 of common stock warrants that we have earned or purchased from seqWell.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the year ended December&#160;31, 2023, we recognized an impairment charge of $12.2 million and included this as adjustment to the carrying value of our investments in seqWell, Arzeda and MAI. This adjustment, which is presented within other income (expense), net in the consolidated statements of operations, included the write-down of the carrying value of our investment in seqWell by $3.0 million during the third quarter of 2023 to its estimated fair value as determined based on valuation methods using the recent transaction price of similar preferred stock securities issued by seqWell and adjusted for the rights and obligations of the preferred stock securities the Company holds. The $1.2 million of impairment charge on our investment in Arzeda is related to the write-down to its estimated fair value based on the latest observed transaction price of Arzeda's preferred stock securities issued during the fourth quarter of 2023 and the subsequent conversion of our existing Series B preferred stock into Arzeda's common stock during the fourth quarter of 2023. The other $8.0&#160;million of impairment charge represents the difference between the estimated fair value and carrying value of our investment in MAI as of December 31, 2023 based on quantitative and qualitative analysis. This analysis involved use of judgment, estimates and assumptions, such as the near-term prospects of the investee in the market in which it operates, evaluation of the investee&#x2019;s financial condition in relation to its outstanding obligations, and probabilities of securing additional capital through various alternative scenarios.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the year ended December 31, 2022, we recogniz&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ed a $0.2 million u&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nrealized gain in other income, net, and included as adjustment to the carrying value of our investment in MAI, for the remeasurement of the additional 1,587,049 shares of Series B preferred stock received as a milestone payment during the third quarter of 2022 based on the latest observed transaction price of MAI's preferred stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other than as disclosed above, there were no remeasurement events for our investments in non-marketable equity securities in 2023 and 2022&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. We recognized no realized gains or losses during the years ended December&#160;31, 2023 and 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the carrying value of our non-marketable equity securities (in thousands): &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;MAI&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;seqWell&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Arzeda&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,289&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other investments in non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,510&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-186" decimals="-5" id="f-591" unitRef="usd">1000000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ConvertibleDebt contextRef="c-187" decimals="-5" id="f-592" unitRef="usd">1300000</us-gaap:ConvertibleDebt>
    <us-gaap:DebtConversionConvertedInstrumentSharesIssued1 contextRef="c-188" decimals="0" id="f-593" unitRef="shares">207070</us-gaap:DebtConversionConvertedInstrumentSharesIssued1>
    <us-gaap:InvestmentIncomeAmortizationOfDiscount contextRef="c-21" decimals="-5" id="f-594" unitRef="usd">300000</us-gaap:InvestmentIncomeAmortizationOfDiscount>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-5" decimals="-5" id="f-595" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-4" decimals="-5" id="f-596" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-189" decimals="0" id="f-597" unitRef="shares">207070</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion contextRef="c-190" decimals="0" id="f-598" unitRef="shares">41414</us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-191" decimals="0" id="f-599" unitRef="shares">985545</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-192" decimals="-5" id="f-600" unitRef="usd">800000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1 contextRef="c-193" decimals="0" id="f-601" unitRef="shares">19277914</us-gaap:NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares
      contextRef="c-194"
      decimals="-6"
      id="f-602"
      unitRef="shares">1000000</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-194" decimals="-5" id="f-603" unitRef="usd">5000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-195" decimals="0" id="f-604" unitRef="shares">88256</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-196" decimals="0" id="f-605" unitRef="shares">44128</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-196" decimals="-5" id="f-606" unitRef="usd">400000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices contextRef="c-197" decimals="0" id="f-607" unitRef="shares">205279</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-198" decimals="-3" id="f-608" unitRef="usd">200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-199" decimals="0" id="f-609" unitRef="shares">1088256</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-200" decimals="0" id="f-610" unitRef="shares">205279</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-201" decimals="0" id="f-611" unitRef="shares">44128</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-1" decimals="-5" id="f-612" unitRef="usd">12200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-202" decimals="-5" id="f-613" unitRef="usd">3000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-203" decimals="-5" id="f-614" unitRef="usd">1200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-204" decimals="-5" id="f-615" unitRef="usd">8000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount contextRef="c-1" decimals="-5" id="f-616" unitRef="usd">200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived contextRef="c-165" decimals="0" id="f-617" unitRef="shares">1587049</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount contextRef="c-20" decimals="-5" id="f-618" unitRef="usd">0</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount contextRef="c-1" decimals="-5" id="f-619" unitRef="usd">0</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock contextRef="c-1" id="f-620">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the carrying value of our non-marketable equity securities (in thousands): &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;MAI&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;seqWell&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Arzeda&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,289&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other investments in non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,510&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-205" decimals="-3" id="f-621" unitRef="usd">6693000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-206" decimals="-3" id="f-622" unitRef="usd">13921000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-207" decimals="-3" id="f-623" unitRef="usd">2625000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-208" decimals="-3" id="f-624" unitRef="usd">5000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-209" decimals="-3" id="f-625" unitRef="usd">82000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-210" decimals="-3" id="f-626" unitRef="usd">1289000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-211" decimals="-3" id="f-627" unitRef="usd">300000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-212" decimals="-3" id="f-628" unitRef="usd">300000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-4" decimals="-3" id="f-629" unitRef="usd">9700000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-5" decimals="-3" id="f-630" unitRef="usd">20510000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:FairValueMeasurementInputsDisclosureTextBlock contextRef="c-1" id="f-631">Fair Value Measurements&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables present the financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:46.268%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level&#160;3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:46.268%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level&#160;2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level&#160;3&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;During the years ended December&#160;31, 2023 and 2022, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities.</us-gaap:FairValueMeasurementInputsDisclosureTextBlock>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="c-1" id="f-632">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables present the financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:46.268%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level&#160;3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:46.268%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level 1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level&#160;2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Level&#160;3&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-213" decimals="-3" id="f-633" unitRef="usd">56374000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-214" decimals="-3" id="f-634" unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-215" decimals="-3" id="f-635" unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-216" decimals="-3" id="f-636" unitRef="usd">56374000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-217" decimals="-3" id="f-637" unitRef="usd">77309000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-218" decimals="-3" id="f-638" unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-219" decimals="-3" id="f-639" unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-220" decimals="-3" id="f-640" unitRef="usd">77309000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff contextRef="c-221" decimals="INF" id="f-641" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff contextRef="c-222" decimals="INF" id="f-642" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff>
    <us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss contextRef="c-222" decimals="INF" id="f-643" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss contextRef="c-221" decimals="INF" id="f-644" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock contextRef="c-1" id="f-645">Balance Sheet Details &lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents consisted of the following (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:46.268%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Adjusted Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Adjusted Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Money market funds are classified in cash and cash equivalents on our consolidated balance sheets. Average contractual maturities (in days) is not applicable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, the total cash and cash equivalents balance of $65.1 million consisted of money market funds of $56.4 million and cash of $8.7 million held w&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ith major financial institutions. As of December&#160;31, 2022, the total cash and cash equivalents balance of $114.0 million consisted of money market funds of $77.3 million and cash of $36.7 million held with major financial institutions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Raw materials &lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Work in process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;91&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finished goods &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,685&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,029&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, prepaid expenses and other current assets consists of prepaid expenses of $4.6 million and other current assets of $0.6 million.  As of December&#160;31, 2022, prepaid expenses and other current assets consists of prepaid expenses of $4.8 million and other current assets of $0.7 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment, net&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, net consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;37,216&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,633&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Office equipment and furniture&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,469&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Construction in progress&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,636&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;62,435&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(39,311)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(39,821)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Fully depreciated property and equipment with a cost of $3.0 million and $1.5 million were retired during the years ended December&#160;31, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Construction in progress includes equipment received but not yet placed into service pending installation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. As part of this plan, we entered into agreements to sell certain laboratory equipment located in our San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos Space to Vaxcyte (see further discussion at Note 13, &#x201c;Commitments and Contingencies&#x201d;). These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based of Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeds fair value less costs to sell, which resulted in a write-down o&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;f $1.5&#160;million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2023, the Company recorded a n&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;on-cash impairment charge of $4.7 million associated with the San Carlos facility leasehold improvements. For additional information, see Note 13, &#x201c;Commitments and Contingencies.&#x201d; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Depreciation expense&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,113&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at beginning of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(778)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at end of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill was previously allocated to each of the Company's reporting units. In July 2023, we announced a restructuring of our business and that we are discontinuing investment in certain development programs, primarily in Novel Biotherapeutics. As a result of this plan, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of $0.8 million to write off all of the associated goodwill. The impairment charge is recorded within the asset impairment and other charges in the condensed consolidated statements of operation in the year ended &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Goodwill had a carrying &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;value &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;of $2.5 million and $3.2&#160;million &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;as of December&#160;31, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Other Accrued Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other accrued liabilities consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued professional and outside service fees&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued purchases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,852&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total other accrued liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,735&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock contextRef="c-1" id="f-646">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents consisted of the following (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:46.268%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Adjusted Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Adjusted Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Estimated Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Money market funds are classified in cash and cash equivalents on our consolidated balance sheets. Average contractual maturities (in days) is not applicable.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-216" decimals="-3" id="f-647" unitRef="usd">56374000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-216" decimals="-3" id="f-648" unitRef="usd">56374000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-220" decimals="-3" id="f-649" unitRef="usd">77309000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-220" decimals="-3" id="f-650" unitRef="usd">77309000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-4" decimals="-5" id="f-651" unitRef="usd">65100000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-216" decimals="-5" id="f-652" unitRef="usd">56400000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-223" decimals="-5" id="f-653" unitRef="usd">8700000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="-5" id="f-654" unitRef="usd">114000000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure contextRef="c-220" decimals="-5" id="f-655" unitRef="usd">77300000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-224" decimals="-5" id="f-656" unitRef="usd">36700000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c-1" id="f-657">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Raw materials &lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Work in process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;91&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finished goods &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,685&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,029&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials contextRef="c-4" decimals="-3" id="f-658" unitRef="usd">108000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials contextRef="c-5" decimals="-3" id="f-659" unitRef="usd">108000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess contextRef="c-4" decimals="-3" id="f-660" unitRef="usd">7000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess contextRef="c-5" decimals="-3" id="f-661" unitRef="usd">91000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods contextRef="c-4" decimals="-3" id="f-662" unitRef="usd">2570000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods contextRef="c-5" decimals="-3" id="f-663" unitRef="usd">1830000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryNet contextRef="c-4" decimals="-3" id="f-664" unitRef="usd">2685000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-5" decimals="-3" id="f-665" unitRef="usd">2029000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseCurrent contextRef="c-4" decimals="-5" id="f-666" unitRef="usd">4600000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent contextRef="c-4" decimals="-5" id="f-667" unitRef="usd">600000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PrepaidExpenseCurrent contextRef="c-5" decimals="-5" id="f-668" unitRef="usd">4800000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent contextRef="c-5" decimals="-5" id="f-669" unitRef="usd">700000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-225" decimals="-3" id="f-670" unitRef="usd">37216000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-226" decimals="-3" id="f-671" unitRef="usd">39679000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-227" decimals="-3" id="f-672" unitRef="usd">11912000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-228" decimals="-3" id="f-673" unitRef="usd">16633000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-229" decimals="-3" id="f-674" unitRef="usd">2565000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-230" decimals="-3" id="f-675" unitRef="usd">3039000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-66" decimals="-3" id="f-676" unitRef="usd">1469000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-231" decimals="-3" id="f-677" unitRef="usd">1345000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-232" decimals="-3" id="f-678" unitRef="usd">1636000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-233" decimals="-3" id="f-679" unitRef="usd">1739000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-4" decimals="-3" id="f-680" unitRef="usd">54798000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-5" decimals="-3" id="f-681" unitRef="usd">62435000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-682" unitRef="usd">39311000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-683" unitRef="usd">39821000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-4" decimals="-3" id="f-684" unitRef="usd">15487000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-5" decimals="-3" id="f-685" unitRef="usd">22614000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-234" decimals="-5" id="f-686" unitRef="usd">3000000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-235" decimals="-5" id="f-687" unitRef="usd">1500000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AssetImpairmentCharges contextRef="c-1" decimals="-5" id="f-688" unitRef="usd">1500000</us-gaap:AssetImpairmentCharges>
    <us-gaap:ImpairmentOfLeasehold contextRef="c-236" decimals="-5" id="f-689" unitRef="usd">4700000</us-gaap:ImpairmentOfLeasehold>
    <us-gaap:Depreciation contextRef="c-1" decimals="-3" id="f-690" unitRef="usd">5518000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-20" decimals="-3" id="f-691" unitRef="usd">5402000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-21" decimals="-3" id="f-692" unitRef="usd">3113000</us-gaap:Depreciation>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="c-1" id="f-693">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at beginning of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(778)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at end of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-694" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-39" decimals="-3" id="f-695" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="-3" id="f-696" unitRef="usd">778000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-20" decimals="-3" id="f-697" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:Goodwill contextRef="c-4" decimals="-3" id="f-698" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-699" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-67" decimals="-5" id="f-700" unitRef="usd">800000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:Goodwill contextRef="c-4" decimals="-5" id="f-701" unitRef="usd">2500000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-5" id="f-702" unitRef="usd">3200000</us-gaap:Goodwill>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="c-1" id="f-703">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other accrued liabilities consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued professional and outside service fees&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued purchases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,852&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;932&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total other accrued liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,735&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent contextRef="c-4" decimals="-3" id="f-704" unitRef="usd">2330000</us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent>
    <us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent contextRef="c-5" decimals="-3" id="f-705" unitRef="usd">3495000</us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent>
    <us-gaap:PurchaseObligation contextRef="c-4" decimals="-3" id="f-706" unitRef="usd">1402000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligation contextRef="c-5" decimals="-3" id="f-707" unitRef="usd">10852000</us-gaap:PurchaseObligation>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent contextRef="c-4" decimals="-3" id="f-708" unitRef="usd">1003000</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent contextRef="c-5" decimals="-3" id="f-709" unitRef="usd">932000</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-710" unitRef="usd">4735000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-711" unitRef="usd">15279000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="c-1" id="f-712">Stock-based Compensation&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Equity Incentive Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2023, our board of directors (the &#x201c;Board&#x201d;) approved the 2022 Employment Inducement Award Plan (the &#x201c;2022 Inducement Plan&#x201d;) which provides for the grant of non-qualified stock options, restricted stock awards (&#x201c;RSAs&#x201d;), restricted stock units (&#x201c;RSUs&#x201d;), performance awards, other stock awards and dividend equivalents to eligible employees with respect to an aggregate of up to 2,000,000 shares of our common stock. In June 2023, the 2022 Inducement Plan was terminated upon the approval of an amendment to the Company's 2019 Incentive Award Plan (the &#x201c;2019 Plan&#x201d;) at the annual meeting of the Company's stockholders (the &#x201c;Annual Meeting&#x201d;) in June 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2019, the Board and stockholders approved the 2019 Plan. The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the &#x201c;2010 Plan&#x201d;) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder. The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants. The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, RSA, RSUs, performance-contingent restricted stock units (&#x201c;PSUs&#x201d;), performance based options (&#x201c;PBOs&#x201d;), other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The number of shares of our common stock that were initially available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii)&#160;any shares subject to awards granted under the 2010 Plan that were outstanding as of April&#160;22, 2019 and thereafter terminate, expire, lapse or are forfeited. In June 2019, 8.1&#160;million shares authorized for issuance under the 2019 Plan were registered under the Securities Act of 1933, as amended (the &#x201c;Securities Act&#x201d;). In April 2023, the Board approved an amendment to the 2019 Plan (the &#x201c;2019 Amended Plan&#x201d;) which became effective upon stockholders' approval at the Annual Meeting in June 2023. The 2019 Amended Plan included the (i) increase in the number of shares available by 8,000,000 shares, such that an aggregate of 15,897,144 shares are reserved for issuance under the 2019 Amended Plan and any shares subject to awards granted under the 2010 Plan, and (ii) increase in the number of shares that may be granted as incentive stock options under the 2019 Amended Plan such that an aggregate of 22,000,000 shares of common stock may be granted as incentive stock options under the 2019 Amended Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, total shares remaining available for issuance under the 2019 Plan were&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 9.1 million s&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;hares.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Employee Stock Purchase Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2023, the Board approved an employee stock purchase plan (the &#x201c;ESPP&#x201d;) which became effective upon approval at the Annual Meeting in June 2023. The ESPP allows eligible employees of the Company to purchase shares of our common stock through payroll deductions over 24-month offering periods. The per share purchase price will be the lower of 85% of the closing trading price per share of our common stock on the first trading date of an offering period in which a participant is enrolled or 85% of the closing trading price per share on the purchase date. Participant purchases are limited to a maximum of $25,000 of fair value of our stock per calendar year. The Company is authorized to grant up to 2,000,000 shares of common stock under the ESPP. The first offering period of the ESPP commenced in December 2023 and as of December&#160;31, 2023, the Company had not issued any shares of common stock under the ESPP. We recognized $25&#160;thousand of stock-based compensation expenses related to the ESPP in the year ended December&#160;31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The option exercise price for incentive stock options must be at least 100% of the fair value of our common stock on the date of grant and the option exercise price for non-statutory stock options is at least 85% of the fair value of our common stock on the date of grant, as determined by the Board. If, at the time of a grant, the optionee directly or by attribution owns stock possessing more than 10% of the total combined voting power of all of our outstanding capital stock, the exercise price for these options must be at least 110% of the fair value of the underlying common stock. Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Units (&#x201c;RSUs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We also grant employees RSUs, which generally vest over either a three year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four-year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee&#x2019;s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Performance-contingent Restricted Stock Units (&#x201c;PSUs&#x201d;) and Performance Based Options (&#x201c;PBOs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In prior years, the compensation committee of the Board approved grants of PBOs and PSUs to our executives, and solely in respect of non-executive employees, delegated to our CEO the authority to approve grants of PSUs. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement, as determined by the compensation committee of the Board, and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient&#x2019;s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;No PSUs and PBOs were granted in 2023. In 2022, we awarded PSUs (&#x201c;2022 PSUs&#x201d;) and PBOs (&#x201c;2022 PBOs&#x201d;), each of which commence vesting based upon the achievement of various weighted performance go&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;als, including finance and corporate strategy, performance enzymes and biotherapeutics deliverables, research plans, and organizational development. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the first quarter of 2023, the compensation committee of the Board determined that the 2022 PSUs and 2022 PBOs performance goals had been achieved at&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 85.0% and 42.5% of the target level, respectively, and recognized stock-based compensation expenses accordingly. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accordingly, 50% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2023 and 50% of the shares underlying the 2022 PSUs and PBOs will vest in the first quarter of 2024, in each case, subject to the recipient&#x2019;s continued service on each vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2021, we awarded PSUs (&#x201c;2021 PBOs&#x201d;) and PBOs (&#x201c;2021 PBOs&#x201d;), each of which commence vesting based upon the determination of the compensation committee of the Board of the achievement of various weighted performance goals, including total revenues, product revenue, performance enzymes pipeline advancements, biotherapeutics pipeline advancements, organization and infrastructure upgrades, and significant events that can be publicly announced. In the first quarter of 2022, we determined that the 2021 PSUs and 2021 PBOs performance goals had been achieved at 146% and 73% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2022 and 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2023, in each case, subject to the recipient&#x2019;s continued service on each vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;354&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;224&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,663&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,986&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,706&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;RSUs and RSAs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,807&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,768&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PSUs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,333&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PBOs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,289&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,728&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;ESPP&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the retirement of John Nicols, our former President and Chief Executive Officer, in August 2022, and the Transition and Separation Agreement between Mr. Nicols and the Company, certain supplementary modifications were made to Mr. Nicols' vested and unvested stock option and PBOs awards including voluntary forfeiture of certain unvested stock option and PBOs awards and the extension of the post-termination exercise period of certain vested stock option and PBOs awards. During the year ended December 31, 2022, we recorded a one-time, non-cash incremental compensation expense of $1.0 million, net of the required reversal of previously recognized stock-based compensation expenses attributed to unvested shares, in selling, general and administrative expenses related to these stock option award modifications.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Grant Award Activities:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock Option Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We estimated the fair value of stock options using the Black-Scholes-Merton option-pricing model based on the date of grant. The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.7&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;66.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;62.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;52.5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following summarizes the weighted-average assumptions used to estimate the fair value of 50,000, nil, and 9,000 shares of stock options granted to non-employees for services valued at $0.1&#160;million, nil, and $0.1 million during the years ended December&#160;31, 2023, 2022, and 2021 respectively:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted average grant date fair value per share of non-employee stock options granted respectively in 2023, 2022, and 2021 was $1.05, nil and $11.29, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s stock option activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,385&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26.85&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(664)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(72)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.99&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(410)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(275)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,046&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(283)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average Remaining Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.7&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,231&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.61&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.6&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted average grant date fair value per share of employee stock options granted in 2023, 2022, and 2021 were $3.31, $4.99 and $12.80, respectively. The total intrinsic value of options exercised in 2023, 2022, and 2021 were $0.7&#160;million, $3.1&#160;million and $14.9&#160;million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, the&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;re was $8.2 million of unrecognized stock-based compensation, net of expected forfeitures, related to unvested stock options, which we expect to recognize over a weighted average period of 2.9 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Restricted Stock Awards (&#x201c;RSAs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSA activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.91&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(62)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(133)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.04&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value, as of the vesting date, of RSAs vested in fiscal years 2023, 2022 and 2021&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; were $0.4 million, $0.5 million and $1.3 million respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, there was $0.6 million of unrecognized stock-based compensation cost related to non-vested RSAs, which we expect to recognize over a weighted average period of 0.7 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Restricted Stock Units ("RSUs")&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(70)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13.57&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(106)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(204)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(343)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value, as of the vesting date, of RSUs vested in fiscal years 2023, 2022 and 2021 were &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.1 million&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $1.8 million and $1.8 million respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, there was &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$4.1 million of unrecognized stock-based compensation cost related to non-vested RSUs, which we expect to recognize over a weighted average period of 2.0 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Performance-Contingent Restricted Stock Units (&#x201c;PSUs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes PSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;131&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15.34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26.16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(66)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16.14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(107)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(40)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;667&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.02&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;292&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value, as of the vesting date, of PSUs vested in the years ended December 31, 2023, 2022, and 2021 were $1.6 million, $2.1 million, and $1.3 million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, there was $0.2 million of unrecognized stock-based compensation cost related to non-vested PSUs, which we expect to recognize over a weighted average period of 0.2 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Performance Based Options (&#x201c;PBOs&#x201d;) &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We estimated the fair value of PBOs using the Black-Scholes-Merton option-pricing model based on the date of grant. No PBOs were granted to employees for their services during the year ended December&#160;31, 2023. The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;51.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarizes PBOs activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;br/&gt;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(35)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.02&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(118)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(747)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.70&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(178)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,627&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,646&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value of e&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;xercised PBOs for 2023, 2022 and 2021, was nil, nil, and $0.3&#160;million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, there was &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$15.9&#160;thousand&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of unrecognized stock-based compensation cost related to non-vested PBOs, which we expect to recognize over a weighted average period of 0.2 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Employee Stock Purchase Plan (&#x201c;ESPP&#x201d;) &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.584%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.216%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;89.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-237"
      decimals="-6"
      id="f-713"
      unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="c-238" decimals="0" id="f-714" unitRef="shares">7897144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-239"
      decimals="-5"
      id="f-715"
      unitRef="shares">8100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
      contextRef="c-240"
      decimals="-6"
      id="f-716"
      unitRef="shares">8000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized contextRef="c-241" decimals="0" id="f-717" unitRef="shares">15897144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c-241"
      decimals="-6"
      id="f-718"
      unitRef="shares">22000000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-242"
      decimals="-5"
      id="f-719"
      unitRef="shares">9100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <cdxs:ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod contextRef="c-243" id="f-720">P24M</cdxs:ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent contextRef="c-243" decimals="2" id="f-721" unitRef="number">0.85</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent contextRef="c-243" decimals="2" id="f-722" unitRef="number">0.85</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount contextRef="c-243" decimals="INF" id="f-723" unitRef="usd">25000</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-244"
      decimals="INF"
      id="f-724"
      unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-245" decimals="-3" id="f-725" unitRef="usd">25000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent contextRef="c-246" decimals="2" id="f-726" unitRef="number">1</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent contextRef="c-247" decimals="2" id="f-727" unitRef="number">0.85</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent>
    <cdxs:PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice contextRef="c-248" decimals="2" id="f-728" unitRef="number">0.10</cdxs:PercentOfVotingInterestsThresholdToTriggerHigherExercisePrice>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent contextRef="c-248" decimals="2" id="f-729" unitRef="number">1.10</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="c-248" id="f-730">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-248" id="f-731">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-249" decimals="2" id="f-732" unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-249" id="f-733">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-250" decimals="2" id="f-734" unitRef="number">0.75</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-250" id="f-735">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService contextRef="c-248" id="f-736">P3M</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-251" id="f-737">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-251" decimals="2" id="f-738" unitRef="number">0.33</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-252" id="f-739">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-252" decimals="2" id="f-740" unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments
      contextRef="c-253"
      decimals="INF"
      id="f-741"
      unitRef="installment">2</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-254" decimals="2" id="f-742" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-255" decimals="2" id="f-743" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier
      contextRef="c-256"
      decimals="INF"
      id="f-744"
      unitRef="number">2</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier
      contextRef="c-257"
      decimals="INF"
      id="f-745"
      unitRef="number">0</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-258"
      decimals="INF"
      id="f-746"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-256"
      decimals="INF"
      id="f-747"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate contextRef="c-259" decimals="3" id="f-748" unitRef="number">0.850</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate contextRef="c-260" decimals="3" id="f-749" unitRef="number">0.425</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-261" decimals="2" id="f-750" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-262" decimals="2" id="f-751" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate contextRef="c-263" decimals="2" id="f-752" unitRef="number">1.46</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate contextRef="c-264" decimals="2" id="f-753" unitRef="number">0.73</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-265" decimals="2" id="f-754" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-266" decimals="2" id="f-755" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="c-1" id="f-756">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;354&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;224&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,663&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,986&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,706&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;RSUs and RSAs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,807&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,768&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PSUs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,333&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PBOs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,289&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,728&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;ESPP&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:ShareBasedCompensation contextRef="c-267" decimals="-3" id="f-757" unitRef="usd">354000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-268" decimals="-3" id="f-758" unitRef="usd">452000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-269" decimals="-3" id="f-759" unitRef="usd">224000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-270" decimals="-3" id="f-760" unitRef="usd">2631000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-271" decimals="-3" id="f-761" unitRef="usd">3907000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-272" decimals="-3" id="f-762" unitRef="usd">2663000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-273" decimals="-3" id="f-763" unitRef="usd">6986000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-274" decimals="-3" id="f-764" unitRef="usd">10172000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-275" decimals="-3" id="f-765" unitRef="usd">8706000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="-3" id="f-766" unitRef="usd">9971000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-20" decimals="-3" id="f-767" unitRef="usd">14531000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-21" decimals="-3" id="f-768" unitRef="usd">11593000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-248" decimals="-3" id="f-769" unitRef="usd">3962000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-276" decimals="-3" id="f-770" unitRef="usd">4167000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-277" decimals="-3" id="f-771" unitRef="usd">2764000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-278" decimals="-3" id="f-772" unitRef="usd">4447000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-279" decimals="-3" id="f-773" unitRef="usd">4807000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-280" decimals="-3" id="f-774" unitRef="usd">2768000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-281" decimals="-3" id="f-775" unitRef="usd">1649000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-282" decimals="-3" id="f-776" unitRef="usd">3268000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-283" decimals="-3" id="f-777" unitRef="usd">2333000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-258" decimals="-3" id="f-778" unitRef="usd">-112000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-284" decimals="-3" id="f-779" unitRef="usd">2289000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-285" decimals="-3" id="f-780" unitRef="usd">3728000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-245" decimals="-3" id="f-781" unitRef="usd">25000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-286" decimals="-3" id="f-782" unitRef="usd">0</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-287" decimals="-3" id="f-783" unitRef="usd">0</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="-3" id="f-784" unitRef="usd">9971000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-20" decimals="-3" id="f-785" unitRef="usd">14531000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-21" decimals="-3" id="f-786" unitRef="usd">11593000</us-gaap:ShareBasedCompensation>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-1" decimals="-5" id="f-787" unitRef="usd">1000000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="c-1" id="f-788">The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.7&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;66.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;62.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;52.5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following summarizes the weighted-average assumptions used to estimate the fair value of 50,000, nil, and 9,000 shares of stock options granted to non-employees for services valued at $0.1&#160;million, nil, and $0.1 million during the years ended December&#160;31, 2023, 2022, and 2021 respectively:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;51.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-248" id="f-789">P5Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-276" id="f-790">P5Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-277" id="f-791">P5Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-248" decimals="3" id="f-792" unitRef="number">0.662</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-276" decimals="3" id="f-793" unitRef="number">0.621</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-277" decimals="3" id="f-794" unitRef="number">0.525</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-248" decimals="3" id="f-795" unitRef="number">0.040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-276" decimals="3" id="f-796" unitRef="number">0.031</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-277" decimals="3" id="f-797" unitRef="number">0.008</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-248" decimals="3" id="f-798" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-276" decimals="3" id="f-799" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-277" decimals="3" id="f-800" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-55" decimals="-3" id="f-801" unitRef="shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-45" decimals="-3" id="f-802" unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-34" decimals="-3" id="f-803" unitRef="shares">9000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-55" decimals="-5" id="f-804" unitRef="usd">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-45" decimals="-5" id="f-805" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-34" decimals="-5" id="f-806" unitRef="usd">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-288" id="f-807">P5Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-289" id="f-808">P0Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-290" id="f-809">P5Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-288" decimals="3" id="f-810" unitRef="number">0.701</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-289" decimals="3" id="f-811" unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-290" decimals="3" id="f-812" unitRef="number">0.541</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-288" decimals="3" id="f-813" unitRef="number">0.047</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-289" decimals="3" id="f-814" unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-290" decimals="3" id="f-815" unitRef="number">0.009</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-288" decimals="3" id="f-816" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-289" decimals="3" id="f-817" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-290" decimals="3" id="f-818" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-55"
      decimals="2"
      id="f-819"
      unitRef="usdPerShare">1.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-45"
      decimals="2"
      id="f-820"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-34"
      decimals="2"
      id="f-821"
      unitRef="usdPerShare">11.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="c-1" id="f-822">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s stock option activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,385&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;286&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26.85&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(664)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(72)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.99&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(410)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(275)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,046&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(283)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average Remaining Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.7&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,231&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.61&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.6&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-28" decimals="-3" id="f-823" unitRef="shares">3385000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-28"
      decimals="2"
      id="f-824"
      unitRef="usdPerShare">7.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-21" decimals="-3" id="f-825" unitRef="shares">286000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-21"
      decimals="2"
      id="f-826"
      unitRef="usdPerShare">26.85</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-21" decimals="-3" id="f-827" unitRef="shares">664000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-21"
      decimals="2"
      id="f-828"
      unitRef="usdPerShare">6.96</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-21" decimals="-3" id="f-829" unitRef="shares">72000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-21"
      decimals="2"
      id="f-830"
      unitRef="usdPerShare">17.99</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-39" decimals="-3" id="f-831" unitRef="shares">2935000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-39"
      decimals="2"
      id="f-832"
      unitRef="usdPerShare">8.90</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-20" decimals="-3" id="f-833" unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-20"
      decimals="2"
      id="f-834"
      unitRef="usdPerShare">8.90</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-20" decimals="-3" id="f-835" unitRef="shares">410000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-20"
      decimals="2"
      id="f-836"
      unitRef="usdPerShare">2.33</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-20" decimals="-3" id="f-837" unitRef="shares">275000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-20"
      decimals="2"
      id="f-838"
      unitRef="usdPerShare">19.01</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-5" decimals="-3" id="f-839" unitRef="shares">4250000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-5"
      decimals="2"
      id="f-840"
      unitRef="usdPerShare">8.88</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-1" decimals="-3" id="f-841" unitRef="shares">2046000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-842"
      unitRef="usdPerShare">5.23</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-1" decimals="-3" id="f-843" unitRef="shares">283000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-844"
      unitRef="usdPerShare">1.97</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-1" decimals="-3" id="f-845" unitRef="shares">839000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-846"
      unitRef="usdPerShare">12.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-847" unitRef="shares">5174000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-848" unitRef="shares">5174000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-849" unitRef="shares">5174000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-850"
      unitRef="usdPerShare">7.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-851" unitRef="shares">5174000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-852"
      unitRef="usdPerShare">7.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="c-1" id="f-853">P6Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="c-4" decimals="-3" id="f-854" unitRef="usd">198000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="c-4" decimals="-3" id="f-855" unitRef="shares">2231000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-856"
      unitRef="usdPerShare">8.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-857">P3Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="c-4" decimals="-3" id="f-858" unitRef="usd">79000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="c-4" decimals="-3" id="f-859" unitRef="shares">4748000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-860"
      unitRef="usdPerShare">7.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-861">P6Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-4" decimals="-3" id="f-862" unitRef="usd">170000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-1"
      decimals="2"
      id="f-863"
      unitRef="usdPerShare">3.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-20"
      decimals="2"
      id="f-864"
      unitRef="usdPerShare">4.99</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-21"
      decimals="2"
      id="f-865"
      unitRef="usdPerShare">12.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-1" decimals="-5" id="f-866" unitRef="usd">700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-20" decimals="-5" id="f-867" unitRef="usd">3100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-21" decimals="-5" id="f-868" unitRef="usd">14900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions contextRef="c-4" decimals="-5" id="f-869" unitRef="usd">8200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-248" id="f-870">P2Y10M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock contextRef="c-1" id="f-871">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSA activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.91&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(62)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(133)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.04&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-291"
      decimals="-3"
      id="f-872"
      unitRef="shares">96000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-291"
      decimals="2"
      id="f-873"
      unitRef="usdPerShare">11.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-292"
      decimals="-3"
      id="f-874"
      unitRef="shares">46000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-292"
      decimals="2"
      id="f-875"
      unitRef="usdPerShare">21.91</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-292"
      decimals="-3"
      id="f-876"
      unitRef="shares">62000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-292"
      decimals="2"
      id="f-877"
      unitRef="usdPerShare">11.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-293"
      decimals="-3"
      id="f-878"
      unitRef="shares">80000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-293"
      decimals="2"
      id="f-879"
      unitRef="usdPerShare">17.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-294"
      decimals="-3"
      id="f-880"
      unitRef="shares">159000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-294"
      decimals="2"
      id="f-881"
      unitRef="usdPerShare">7.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-294"
      decimals="-3"
      id="f-882"
      unitRef="shares">58000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-294"
      decimals="2"
      id="f-883"
      unitRef="usdPerShare">18.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-295"
      decimals="-3"
      id="f-884"
      unitRef="shares">181000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-295"
      decimals="2"
      id="f-885"
      unitRef="usdPerShare">8.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-296"
      decimals="-3"
      id="f-886"
      unitRef="shares">277000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-296"
      decimals="2"
      id="f-887"
      unitRef="usdPerShare">2.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-296"
      decimals="-3"
      id="f-888"
      unitRef="shares">133000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-296"
      decimals="2"
      id="f-889"
      unitRef="usdPerShare">9.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-297"
      decimals="-3"
      id="f-890"
      unitRef="shares">325000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-297"
      decimals="2"
      id="f-891"
      unitRef="usdPerShare">3.48</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-296" decimals="-5" id="f-892" unitRef="usd">400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-294" decimals="-5" id="f-893" unitRef="usd">500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-292" decimals="-5" id="f-894" unitRef="usd">1300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-297" decimals="-5" id="f-895" unitRef="usd">600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-296" id="f-896">P0Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock contextRef="c-1" id="f-897">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(70)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13.57&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(106)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(204)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(343)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-298"
      decimals="-3"
      id="f-898"
      unitRef="shares">176000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-298"
      decimals="2"
      id="f-899"
      unitRef="usdPerShare">14.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-299"
      decimals="-3"
      id="f-900"
      unitRef="shares">163000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-299"
      decimals="2"
      id="f-901"
      unitRef="usdPerShare">26.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-299"
      decimals="-3"
      id="f-902"
      unitRef="shares">70000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-299"
      decimals="2"
      id="f-903"
      unitRef="usdPerShare">13.57</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-299"
      decimals="-3"
      id="f-904"
      unitRef="shares">37000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-299"
      decimals="2"
      id="f-905"
      unitRef="usdPerShare">21.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-300"
      decimals="-3"
      id="f-906"
      unitRef="shares">232000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-300"
      decimals="2"
      id="f-907"
      unitRef="usdPerShare">21.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-301"
      decimals="-3"
      id="f-908"
      unitRef="shares">518000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-301"
      decimals="2"
      id="f-909"
      unitRef="usdPerShare">17.46</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-301"
      decimals="-3"
      id="f-910"
      unitRef="shares">106000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-301"
      decimals="2"
      id="f-911"
      unitRef="usdPerShare">21.21</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-301"
      decimals="-3"
      id="f-912"
      unitRef="shares">126000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-301"
      decimals="2"
      id="f-913"
      unitRef="usdPerShare">19.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-302"
      decimals="-3"
      id="f-914"
      unitRef="shares">518000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-302"
      decimals="2"
      id="f-915"
      unitRef="usdPerShare">18.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-303"
      decimals="-3"
      id="f-916"
      unitRef="shares">1049000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-303"
      decimals="2"
      id="f-917"
      unitRef="usdPerShare">5.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-303"
      decimals="-3"
      id="f-918"
      unitRef="shares">204000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-303"
      decimals="2"
      id="f-919"
      unitRef="usdPerShare">18.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-303"
      decimals="-3"
      id="f-920"
      unitRef="shares">343000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-303"
      decimals="2"
      id="f-921"
      unitRef="usdPerShare">9.71</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-304"
      decimals="-3"
      id="f-922"
      unitRef="shares">1020000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-304"
      decimals="2"
      id="f-923"
      unitRef="usdPerShare">7.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-303" decimals="-5" id="f-924" unitRef="usd">1100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-301" decimals="-5" id="f-925" unitRef="usd">1800000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-299" decimals="-5" id="f-926" unitRef="usd">1800000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-304" decimals="-5" id="f-927" unitRef="usd">4100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-303" id="f-928">P2Y</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock contextRef="c-1" id="f-929">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes PSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;131&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15.34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26.16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(66)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16.14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(19)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.38&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(107)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(40)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;667&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.02&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;292&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarizes PBOs activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;br/&gt;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;433&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(35)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.02&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(118)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(747)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.70&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(178)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,627&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,646&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-305"
      decimals="-3"
      id="f-930"
      unitRef="shares">131000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-305"
      decimals="2"
      id="f-931"
      unitRef="usdPerShare">15.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-283"
      decimals="-3"
      id="f-932"
      unitRef="shares">82000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-283"
      decimals="2"
      id="f-933"
      unitRef="usdPerShare">26.16</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-283"
      decimals="-3"
      id="f-934"
      unitRef="shares">66000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-283"
      decimals="2"
      id="f-935"
      unitRef="usdPerShare">16.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-283"
      decimals="-3"
      id="f-936"
      unitRef="shares">19000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-283"
      decimals="2"
      id="f-937"
      unitRef="usdPerShare">19.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-306"
      decimals="-3"
      id="f-938"
      unitRef="shares">128000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-306"
      decimals="2"
      id="f-939"
      unitRef="usdPerShare">21.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-282"
      decimals="-3"
      id="f-940"
      unitRef="shares">686000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-282"
      decimals="2"
      id="f-941"
      unitRef="usdPerShare">9.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-282"
      decimals="-3"
      id="f-942"
      unitRef="shares">107000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-282"
      decimals="2"
      id="f-943"
      unitRef="usdPerShare">20.52</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-282"
      decimals="-3"
      id="f-944"
      unitRef="shares">40000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-282"
      decimals="2"
      id="f-945"
      unitRef="usdPerShare">19.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-307"
      decimals="-3"
      id="f-946"
      unitRef="shares">667000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-307"
      decimals="2"
      id="f-947"
      unitRef="usdPerShare">9.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-281"
      decimals="-3"
      id="f-948"
      unitRef="shares">315000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-281"
      decimals="2"
      id="f-949"
      unitRef="usdPerShare">11.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-281"
      decimals="-3"
      id="f-950"
      unitRef="shares">75000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-281"
      decimals="2"
      id="f-951"
      unitRef="usdPerShare">12.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod
      contextRef="c-281"
      decimals="-3"
      id="f-952"
      unitRef="shares">15000</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-281"
      decimals="2"
      id="f-953"
      unitRef="usdPerShare">25.05</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-308"
      decimals="-3"
      id="f-954"
      unitRef="shares">292000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-308"
      decimals="2"
      id="f-955"
      unitRef="usdPerShare">7.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-281" decimals="-5" id="f-956" unitRef="usd">1600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-282" decimals="-5" id="f-957" unitRef="usd">2100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-283" decimals="-5" id="f-958" unitRef="usd">1300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-308" decimals="-5" id="f-959" unitRef="usd">200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-281" id="f-960">P0Y2M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-258"
      decimals="INF"
      id="f-961"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-284" id="f-962">P5Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-285" id="f-963">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-284" decimals="3" id="f-964" unitRef="number">0.549</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-285" decimals="3" id="f-965" unitRef="number">0.519</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-284" decimals="4" id="f-966" unitRef="number">0.018</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-285" decimals="4" id="f-967" unitRef="number">0.007</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-284" decimals="3" id="f-968" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-285" decimals="3" id="f-969" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-309"
      decimals="-3"
      id="f-970"
      unitRef="shares">1560000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-309"
      decimals="2"
      id="f-971"
      unitRef="usdPerShare">5.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-285"
      decimals="-3"
      id="f-972"
      unitRef="shares">433000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-285"
      decimals="2"
      id="f-973"
      unitRef="usdPerShare">12.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
      contextRef="c-310"
      decimals="-3"
      id="f-974"
      unitRef="shares">35000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue
      contextRef="c-310"
      decimals="2"
      id="f-975"
      unitRef="usdPerShare">9.02</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNonOptionEquityInstrumentsExercisedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-285"
      decimals="-3"
      id="f-976"
      unitRef="shares">118000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-285"
      decimals="2"
      id="f-977"
      unitRef="usdPerShare">12.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-311"
      decimals="-3"
      id="f-978"
      unitRef="shares">1840000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-311"
      decimals="2"
      id="f-979"
      unitRef="usdPerShare">4.11</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-284"
      decimals="-3"
      id="f-980"
      unitRef="shares">733000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-284"
      decimals="2"
      id="f-981"
      unitRef="usdPerShare">9.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-284"
      decimals="-3"
      id="f-982"
      unitRef="shares">747000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-284"
      decimals="2"
      id="f-983"
      unitRef="usdPerShare">8.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-312"
      decimals="-3"
      id="f-984"
      unitRef="shares">1826000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-312"
      decimals="2"
      id="f-985"
      unitRef="usdPerShare">4.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-258"
      decimals="-3"
      id="f-986"
      unitRef="shares">178000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-258"
      decimals="2"
      id="f-987"
      unitRef="usdPerShare">9.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-313"
      decimals="-3"
      id="f-988"
      unitRef="shares">1648000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-313"
      decimals="2"
      id="f-989"
      unitRef="usdPerShare">5.64</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c-313"
      decimals="-3"
      id="f-990"
      unitRef="shares">1627000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-313"
      decimals="2"
      id="f-991"
      unitRef="usdPerShare">10.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="c-258" id="f-992">P4Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="c-313" decimals="-3" id="f-993" unitRef="usd">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c-313"
      decimals="-3"
      id="f-994"
      unitRef="shares">1646000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-313"
      decimals="2"
      id="f-995"
      unitRef="usdPerShare">11.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="c-258" id="f-996">P4Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-313" decimals="-3" id="f-997" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-258" decimals="-5" id="f-998" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-284" decimals="-5" id="f-999" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-285" decimals="-5" id="f-1000" unitRef="usd">300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-313" decimals="-2" id="f-1001" unitRef="usd">15900</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-258" id="f-1002">P0Y2M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock contextRef="c-1" id="f-1003">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.584%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.216%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;89.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-245" id="f-1004">P0Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-245"
      decimals="3"
      id="f-1005"
      unitRef="number">0.896</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-245"
      decimals="4"
      id="f-1006"
      unitRef="number">0.053</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-245"
      decimals="3"
      id="f-1007"
      unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="c-1" id="f-1008">Capital Stock&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Equity Distribution Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In May 2021, we filed a Registration Statement on Form S-3 with the SEC, that automatically became effective upon its filing, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to that Registration Statement on Form S-3. Pursuant to that post-effective amendment, we registered an aggregate $200.0&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement ("EDA&#x201d;) with Piper Sandler &amp;amp; Co (&#x201c;PSC&#x201d;), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0&#160;million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an "at the market offering" as defined in Rule 415 under the Securities Act of 1933, as amended. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are not required to sell any shares at any time during the term of the EDA. The EDA will terminate upon the earlier of: (i) the issuance and sale of all shares through PSC on the terms and conditions of the EDA, or (ii) the termination of the EDA in accordance with its terms. Either party may terminate the EDA at any time upon written notification to the other party in accordance with the EDA, and upon such notification, the offering will terminate. Under no circumstances shall any shares be sold pursuant to the EDA after the date which is three years after the registration statement is first declared effective by the SEC. We agreed to pay PSC a commission of 3% of the gross sales price of any shares sold pursuant to the EDA. With the exception of certain expenses, we will pay PSC up to 8% of the gross sales price of the shares sold pursuant to the EDA for a combined amount of commission and reimbursement of PSC's expenses and fees. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA. During the year ended December&#160;31, 2023, we received gross proceeds of $8.7&#160;million or $7.9&#160;million in net proceeds after PSC's commissions and direct offering expenses of $0.7&#160;million. As of December&#160;31, 2023, $41.3 million of shares remained available for sale under the EDA. During the year ended December 31, 2022, no shares of our common stock were sold pursuant to the EDA.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount contextRef="c-314" decimals="-5" id="f-1009" unitRef="usd">200000000</cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount>
    <cdxs:SaleOfStockPeriod contextRef="c-315" id="f-1010">P3Y</cdxs:SaleOfStockPeriod>
    <cdxs:SaleOfStockValueOfSharesForIssuance contextRef="c-316" decimals="-5" id="f-1011" unitRef="usd">50000000</cdxs:SaleOfStockValueOfSharesForIssuance>
    <cdxs:SaleOfStockCommissionsPercentageOfGrossSalesPrice
      contextRef="c-315"
      decimals="2"
      id="f-1012"
      unitRef="number">0.03</cdxs:SaleOfStockCommissionsPercentageOfGrossSalesPrice>
    <cdxs:SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice
      contextRef="c-317"
      decimals="2"
      id="f-1013"
      unitRef="number">0.08</cdxs:SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c-318"
      decimals="0"
      id="f-1014"
      unitRef="shares">3079421</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <cdxs:SaleOfStockConsiderationReceivedOnTransactionGross contextRef="c-1" decimals="-5" id="f-1015" unitRef="usd">8700000</cdxs:SaleOfStockConsiderationReceivedOnTransactionGross>
    <us-gaap:SaleOfStockConsiderationReceivedOnTransaction contextRef="c-1" decimals="-5" id="f-1016" unitRef="usd">7900000</us-gaap:SaleOfStockConsiderationReceivedOnTransaction>
    <us-gaap:PaymentsOfStockIssuanceCosts contextRef="c-1" decimals="-5" id="f-1017" unitRef="usd">700000</us-gaap:PaymentsOfStockIssuanceCosts>
    <cdxs:SaleOfStockValueOfSharesForIssuance contextRef="c-319" decimals="-5" id="f-1018" unitRef="usd">41300000</cdxs:SaleOfStockValueOfSharesForIssuance>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="c-1" id="f-1019">401(k) Plan&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2005, we implemented a 401(k) Plan covering certain employees. Currently, all of our United States based employees over the age of 18 are eligible to participate in the 401(k) Plan. Under the 401(k) Plan, eligible employees may elect to reduce their current compensation up to a certain annual limit and contribute these amounts to the 401(k) Plan. We may make matching or other contributions to the 401(k) Plan on behalf of eligible employees. We recorded employer matching contributions expense o&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;f $1.4 million,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $1.6 million, and $1.1 million in the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-1" decimals="-5" id="f-1020" unitRef="usd">1400000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-20" decimals="-5" id="f-1021" unitRef="usd">1600000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-21" decimals="-5" id="f-1022" unitRef="usd">1100000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c-1" id="f-1023">Income Taxes&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our loss before provision for income taxes were as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,169)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,269)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(21,037)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(53)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss before provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,316)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(21,090)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax provision for the years ended December&#160;31, 2023 and 2022 consists primarily of current year state and foreign income taxes. The tax provision for the year ended &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December 31,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 2021 consists primarily of taxes attributable to foreign operations. The components of the provision for income taxes are as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current provision:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total current provision &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred benefit:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;189&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax benefit at federal statutory rate&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,429)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,208)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(494)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(925)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,793)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,132)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign operations taxed at different rates&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,698)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other nondeductible items&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;438&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(238)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;711&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,640&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;189&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred income taxes reflect the net tax effects of (a)&#160;temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes, and (b)&#160;operating losses and tax credit carryforwards.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;72,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69,915&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,806&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reserves and accruals&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;866&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capital losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;R&amp;amp;D Capitalization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,821&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,502&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;130,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;120,790&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(127,835)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(111,183)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(8,624)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(736)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(263)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9,623)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:6pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASC 740 requires that the tax benefit of NOLs, temporary differences and credit carryforwards be recorded as an asset to the extent that management assesses that realization is "more likely than not." Realization of the future tax benefits is dependent on our ability to generate sufficient taxable income within the carryforward period. Because of our history of operating losses, management believes that recognition of the deferred tax assets arising from the above-mentioned future tax benefits is currently not more likely than not to be realized and, accordingly, has provided a valuation allowance against our deferred tax assets. Accordingly, the net deferred tax assets in all our jurisdictions have been fully reserved by a valuation allowance. The net valuation allowance increased by&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $16.7 million d&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;uring the year ended December&#160;31, 2023, increased by $9.4&#160;million during the year ended December&#160;31, 2022, and increased by $9.6&#160;million during the year ended December&#160;31, 2021. At such time as it is determined that it is more likely than not that the deferred tax assets are realizable, the valuation allowance will be reduced.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2023 (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Expiration&lt;br/&gt;Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;182,918&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026-2037&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;118,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;147,481&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028-2041&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2023-2041&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,223&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Current U.S. federal and California tax laws include substantial restrictions on the utilization of NOLs and tax credit carryforwards in the event of an ownership change of a corporation. Accordingly, the Company's ability to utilize NOLs and tax credit carryforwards may be limited as a result of such ownership changes&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. We performed an analysis in 2023 and determined that there was not a limitation that would result in the expiration of carryforwards before they are utilized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax expense or benefit from continuing operations is generally determined without regard to other categories of earnings, such as discontinued operations and other comprehensive income. An exception is provided in ASC 740 when there is aggregate income from categories other than continuing operations and a loss from continuing operations in the current year. In this case, the tax benefit allocated to continuing operations is the amount by which the loss from continuing operations reduces the tax expenses recorded with respect to the other categories of earnings, even when a valuation allowance has been established against the deferred tax assets. In instances where a valuation allowance is established against current year losses, income from other sources is considered when determining whether sufficient future taxable income exists to realize the deferred tax assets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2014, we determined that the undistributed earnings o&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;f our India subsidiary will be repatriated to the United States, and accordingly, we have provided a deferred tax liability totaling $16&#160;thousand as of December&#160;31, 2023 and 2022, for local taxes that would be incurred upon repatriation. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We apply the provisions of ASC 740 to account for uncertain income tax&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;es. A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,683&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions based on tax positions related to current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;372&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reductions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(531)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(243)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize interest and penalties as a co&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;mponent of our income tax expense. Total interest and penalties recognized in the consolidated statements of operations were $42 thousand, $42 thousand and $61 thousand in 2023, 2022 and 2021, respectively. Total penalties and interest recognized in the balance sheet was $0.6 million, $0.5 million and $0.5 million as of December&#160;31, 2023, 2022 and 2021, respectively. The total unrecognized tax benefits that, if recognized currently, would impact our company&#x2019;s effective tax rate were $0.3 million as of December&#160;31, 2023, 2022 and 2021. We do not expect any material changes to our uncertain tax positions within the next 12 months. We are not subject t&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;o examination by United States federal or state tax authorities for years prior to 2002 and foreign tax authorities for years prior to 2014.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock contextRef="c-1" id="f-1024">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our loss before provision for income taxes were as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,169)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,269)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(21,037)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(53)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss before provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,316)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(21,090)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-1" decimals="-3" id="f-1025" unitRef="usd">-76169000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-20" decimals="-3" id="f-1026" unitRef="usd">-33269000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-21" decimals="-3" id="f-1027" unitRef="usd">-21037000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-1" decimals="-3" id="f-1028" unitRef="usd">-2000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-20" decimals="-3" id="f-1029" unitRef="usd">-47000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-21" decimals="-3" id="f-1030" unitRef="usd">-53000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-1031" unitRef="usd">-76171000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-20" decimals="-3" id="f-1032" unitRef="usd">-33316000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-21" decimals="-3" id="f-1033" unitRef="usd">-21090000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="c-1" id="f-1034">The components of the provision for income taxes are as follows (in thousands):&#160;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current provision:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total current provision &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred benefit:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;189&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1035" unitRef="usd">27000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1036" unitRef="usd">141000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1037" unitRef="usd">0</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1038" unitRef="usd">42000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1039" unitRef="usd">142000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1040" unitRef="usd">198000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1041" unitRef="usd">69000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1042" unitRef="usd">283000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1043" unitRef="usd">198000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1044" unitRef="usd">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1045" unitRef="usd">-7000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1046" unitRef="usd">-9000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1047" unitRef="usd">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1048" unitRef="usd">-7000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1049" unitRef="usd">-9000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1050" unitRef="usd">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1051" unitRef="usd">276000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1052" unitRef="usd">189000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="c-1" id="f-1053">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax benefit at federal statutory rate&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,429)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,208)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(494)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(925)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,793)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,132)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign operations taxed at different rates&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,698)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other nondeductible items&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;438&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(238)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;711&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,640&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;189&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-1" decimals="-3" id="f-1054" unitRef="usd">-15995000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-20" decimals="-3" id="f-1055" unitRef="usd">-6996000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-21" decimals="-3" id="f-1056" unitRef="usd">-4429000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes contextRef="c-1" decimals="-3" id="f-1057" unitRef="usd">-2208000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes contextRef="c-20" decimals="-3" id="f-1058" unitRef="usd">-494000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes contextRef="c-21" decimals="-3" id="f-1059" unitRef="usd">-2235000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-1" decimals="-3" id="f-1060" unitRef="usd">925000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-20" decimals="-3" id="f-1061" unitRef="usd">1793000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-21" decimals="-3" id="f-1062" unitRef="usd">1132000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="c-1" decimals="-3" id="f-1063" unitRef="usd">0</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="c-20" decimals="-3" id="f-1064" unitRef="usd">78000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="c-21" decimals="-3" id="f-1065" unitRef="usd">80000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="c-1" decimals="-3" id="f-1066" unitRef="usd">1967000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="c-20" decimals="-3" id="f-1067" unitRef="usd">239000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="c-21" decimals="-3" id="f-1068" unitRef="usd">-2698000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-1" decimals="-3" id="f-1069" unitRef="usd">438000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-20" decimals="-3" id="f-1070" unitRef="usd">-238000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-21" decimals="-3" id="f-1071" unitRef="usd">711000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation contextRef="c-1" decimals="-3" id="f-1072" unitRef="usd">152000</cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation>
    <cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation contextRef="c-20" decimals="-3" id="f-1073" unitRef="usd">80000</cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation>
    <cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation contextRef="c-21" decimals="-3" id="f-1074" unitRef="usd">257000</cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-1" decimals="-3" id="f-1075" unitRef="usd">16640000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-20" decimals="-3" id="f-1076" unitRef="usd">9400000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-21" decimals="-3" id="f-1077" unitRef="usd">9635000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1078" unitRef="usd">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-20" decimals="-3" id="f-1079" unitRef="usd">276000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-21" decimals="-3" id="f-1080" unitRef="usd">189000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="c-1" id="f-1081">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;72,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69,915&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,806&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reserves and accruals&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;866&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capital losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;R&amp;amp;D Capitalization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,821&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,502&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;130,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;120,790&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(127,835)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(111,183)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(8,624)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(736)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(263)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9,623)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:6pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="c-4" decimals="-3" id="f-1082" unitRef="usd">72586000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="c-5" decimals="-3" id="f-1083" unitRef="usd">69915000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="c-4" decimals="-3" id="f-1084" unitRef="usd">16412000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="c-5" decimals="-3" id="f-1085" unitRef="usd">14806000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsDeferredIncome contextRef="c-4" decimals="-3" id="f-1086" unitRef="usd">176000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsDeferredIncome contextRef="c-5" decimals="-3" id="f-1087" unitRef="usd">1123000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-4" decimals="-3" id="f-1088" unitRef="usd">4445000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-5" decimals="-3" id="f-1089" unitRef="usd">4967000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals contextRef="c-4" decimals="-3" id="f-1090" unitRef="usd">2774000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals contextRef="c-5" decimals="-3" id="f-1091" unitRef="usd">2487000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-1092" unitRef="usd">457000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-1093" unitRef="usd">0</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="c-4" decimals="-3" id="f-1094" unitRef="usd">532000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="c-5" decimals="-3" id="f-1095" unitRef="usd">866000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsCapitalLossCarryforwards contextRef="c-4" decimals="-3" id="f-1096" unitRef="usd">424000</us-gaap:DeferredTaxAssetsCapitalLossCarryforwards>
    <us-gaap:DeferredTaxAssetsCapitalLossCarryforwards contextRef="c-5" decimals="-3" id="f-1097" unitRef="usd">413000</us-gaap:DeferredTaxAssetsCapitalLossCarryforwards>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment contextRef="c-4" decimals="-3" id="f-1098" unitRef="usd">26821000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment contextRef="c-5" decimals="-3" id="f-1099" unitRef="usd">16502000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <cdxs:DeferredTaxAssetsLeaseLiability contextRef="c-4" decimals="-3" id="f-1100" unitRef="usd">3608000</cdxs:DeferredTaxAssetsLeaseLiability>
    <cdxs:DeferredTaxAssetsLeaseLiability contextRef="c-5" decimals="-3" id="f-1101" unitRef="usd">9586000</cdxs:DeferredTaxAssetsLeaseLiability>
    <us-gaap:DeferredTaxAssetsOther contextRef="c-4" decimals="-3" id="f-1102" unitRef="usd">2542000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther contextRef="c-5" decimals="-3" id="f-1103" unitRef="usd">125000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross contextRef="c-4" decimals="-3" id="f-1104" unitRef="usd">130777000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross contextRef="c-5" decimals="-3" id="f-1105" unitRef="usd">120790000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-4" decimals="-3" id="f-1106" unitRef="usd">127835000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-5" decimals="-3" id="f-1107" unitRef="usd">111183000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <cdxs:DeferredTaxLiabilitiesRightOfUseAssets contextRef="c-4" decimals="-3" id="f-1108" unitRef="usd">2958000</cdxs:DeferredTaxLiabilitiesRightOfUseAssets>
    <cdxs:DeferredTaxLiabilitiesRightOfUseAssets contextRef="c-5" decimals="-3" id="f-1109" unitRef="usd">8624000</cdxs:DeferredTaxLiabilitiesRightOfUseAssets>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-1110" unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-1111" unitRef="usd">736000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesOther contextRef="c-4" decimals="-3" id="f-1112" unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther contextRef="c-5" decimals="-3" id="f-1113" unitRef="usd">263000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredIncomeTaxLiabilities contextRef="c-4" decimals="-3" id="f-1114" unitRef="usd">2958000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities contextRef="c-5" decimals="-3" id="f-1115" unitRef="usd">9623000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-4" decimals="-3" id="f-1116" unitRef="usd">16000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-5" decimals="-3" id="f-1117" unitRef="usd">16000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount contextRef="c-1" decimals="-5" id="f-1118" unitRef="usd">16700000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount contextRef="c-20" decimals="-5" id="f-1119" unitRef="usd">9400000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount contextRef="c-21" decimals="-5" id="f-1120" unitRef="usd">9600000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock contextRef="c-1" id="f-1121">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2023 (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Expiration&lt;br/&gt;Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;182,918&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026-2037&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;118,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;147,481&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028-2041&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2023-2041&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,223&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock>
    <us-gaap:OperatingLossCarryforwards contextRef="c-320" decimals="-3" id="f-1122" unitRef="usd">182918000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration contextRef="c-320" decimals="-3" id="f-1123" unitRef="usd">118569000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration>
    <us-gaap:OperatingLossCarryforwards contextRef="c-321" decimals="-3" id="f-1124" unitRef="usd">147481000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:TaxCreditCarryforwardAmount contextRef="c-320" decimals="-3" id="f-1125" unitRef="usd">17815000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:TaxCreditCarryforwardAmount contextRef="c-321" decimals="-3" id="f-1126" unitRef="usd">19223000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings contextRef="c-322" decimals="-3" id="f-1127" unitRef="usd">16000</us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings>
    <us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings contextRef="c-323" decimals="-3" id="f-1128" unitRef="usd">16000</us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock contextRef="c-1" id="f-1129">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,683&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions based on tax positions related to current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;372&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reductions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(531)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(243)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-5" decimals="-3" id="f-1130" unitRef="usd">18571000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-39" decimals="-3" id="f-1131" unitRef="usd">15261000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-28" decimals="-3" id="f-1132" unitRef="usd">12683000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1133" unitRef="usd">2164000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-20" decimals="-3" id="f-1134" unitRef="usd">3553000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-21" decimals="-3" id="f-1135" unitRef="usd">2206000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1136" unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-20" decimals="-3" id="f-1137" unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-21" decimals="-3" id="f-1138" unitRef="usd">372000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1139" unitRef="usd">531000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-20" decimals="-3" id="f-1140" unitRef="usd">243000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-21" decimals="-3" id="f-1141" unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-4" decimals="-3" id="f-1142" unitRef="usd">20204000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-5" decimals="-3" id="f-1143" unitRef="usd">18571000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-39" decimals="-3" id="f-1144" unitRef="usd">15261000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-1" decimals="-3" id="f-1145" unitRef="usd">42000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-20" decimals="-3" id="f-1146" unitRef="usd">42000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-21" decimals="-3" id="f-1147" unitRef="usd">61000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-4" decimals="-5" id="f-1148" unitRef="usd">600000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-5" decimals="-5" id="f-1149" unitRef="usd">500000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-39" decimals="-5" id="f-1150" unitRef="usd">500000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c-4" decimals="-5" id="f-1151" unitRef="usd">300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c-39" decimals="-5" id="f-1152" unitRef="usd">300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c-5" decimals="-5" id="f-1153" unitRef="usd">300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="c-1" id="f-1154">Commitments and Contingencies&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Operating Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park operated by Metropolitan Life Insurance Company (&#x201c;MetLife&#x201d;). Our lease agreement with MetLife (&#x201c;RWC Lease&#x201d;) includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#x201c;200/220 Penobscot Space&#x201d;) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#x201c;400 Penobscot Space&#x201d;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#x201c;Penobscot Space&#x201d;), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#x201c;501 Chesapeake Space&#x201d;).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In February 2019, we entered into an Eighth Amendment to the Lease (the &#x201c;Eighth Amendment&#x201d;) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (5) years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;of&#160;$1.1 million&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; as of&#160;December&#160;31, 2023 and 2022, and are recorded as non-current restricted cash on the consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (&#x201c;ARE&#x201d;) to lease a portion of a facility consisted of approximately 36,593 rentable square feet in San Carlos, California to serve as additional office and research and development laboratory space (the &#x201c;San Carlos Space&#x201d;). The lease had a 10-year term from the lease commencement date of November 30, 2021 with one option to extend the term for an additional period of 5 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#x201c;Assignment Agreement&#x201d;) with Vaxcyte, Inc. (&#x201c;Vaxcyte&#x201d;) to assign to Vaxcyte all of the Company&#x2019;s right, title and interest in, under and to the San Carlos Space and the Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE entered into a Consent to Assignment and First Amendment (the &#x201c;Consent&#x201d;) pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#x2019;s interest as tenant in the lease and agreed to release the Company from all of its obligations under the lease that accrue from and after the assignment. Under the Assignment Agreement, the Company prepaid to ARE (i) the base rent, as defined in the lease agreement, and (ii) certain amounts payable to ARE in connection with tenant improvements completed by ARE pursuant to the lease, which a&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;mounted to $3.1 million&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. We provided ARE with a $0.5 million security deposit in the form of a letter of credit, which was released in November 2023 following the effectiveness of the lease assignment on October 1, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a result of the Assignment Agreement, the Company remeasured the lease obligation for the San Carlos Space as $3.1 million, or the present value of the remaining lease payments, which consist of the remaining rent through the effectiveness of the lease assignment and certain amounts payable to ARE pursuant to the Assignment Agreement, and wrote off the remaining lease liability of $19.6 million and the corresponding right of use asset balance. Simultaneously, the Company determined that indicators of impairment existed because the lease assignment will impact the utilization of the related right of use assets and leasehold improvements in the San Carlos Space, and therefore performed a recoverability test by estimating future undiscounted net cash flows expected to be generated from the use of these assets. As there were no substantial future cash inflows associated with these assets, the carrying values of these assets were deemed unrecoverable. As a result, the Company recognized a non-cash impairment charge of $7.7 million, of which $4.7 million is related to leasehold improvements and $3.0 million for the right of use assets, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December&#160;31, 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2023 and the balance as of December&#160;31, 2023, including the changes during the period (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Right-of-use Assets - Operating Lease, net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at January 1, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,263&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,405)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Remeasurement due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(19,622)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,997)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at December&#160;31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,137&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Lease Obligations - Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at January 1, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9,897)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Interest accretion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Remeasurement due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(19,622)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at December&#160;31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are required to restore certain areas of the Redwood City facility that we are renting to its original form. We are expensing the asset retirement obligation over the term of the Redwood City lease. We review the estimated obligation each reporting period and make adjustments if our estimates change. As a result of the lease assignment for the San Carlos Space, discussed further above, we wrote off the related asset retirement obligation of $0.2 million in 2023. We recorded asset retirement obligations of $0.3&#160;million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and $0.5 million &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;as of December&#160;31, 2023 and 2022, respectively, which are included in other liabilities on the consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the years ended December&#160;31, 2023 and 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Lease and other information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease costs&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,396&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Short-term lease costs&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total lease cost&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="12" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Short-term lease costs on leases with terms of over one month and less than one year.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; The Company had no variable lease costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amounts included in measurement of lease obligations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Cash paid:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating cash flows from operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,897&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Non-cash activity:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating Lease - Right-of-use assets obtained in exchange for lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Lease&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Other information:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.8&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.379%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.421%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,220&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,196&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reconciliation of operating lease liabilities as shown within the audited consolidated balance sheets:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current portion of lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,781&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Other Commitments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:58.987%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Payments Due by Period&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2025 and Thereafter&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Facility maintenance agreement&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;701&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;701&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Credit Facility&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 30, 2017, we entered into a credit facility (the &#x201c;Credit Facility&#x201d;) with Western Alliance Bank consisting of term loans (&#x201c;Term Debt&#x201d;) up to $10.0 million, and advances (&#x201c;Advances&#x201d;) under a revolving line of credit (&#x201c;Revolving Line of Credit&#x201d;) up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2022. In March 2023, we terminated the Credit Facility with Western Alliance Bank. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 13, 2024, we entered into the Loan Agreement with Innovatus. See further discussion at Note 18, &#x201c;Subsequent Events.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Legal Proceedings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2022, we reached a settlement resolving a non-material dispute involving the Company's trademark. The terms of the settlement are not material to our business or the results of operations. We are currently not a party to any material pending litigation or other material proceedings.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Indemnifications&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-4" decimals="-2" id="f-1155" unitRef="sqft">77300</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-324" decimals="-2" id="f-1156" unitRef="sqft">28200</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-325" decimals="-2" id="f-1157" unitRef="sqft">37900</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-326" decimals="-2" id="f-1158" unitRef="sqft">11200</us-gaap:AreaOfRealEstateProperty>
    <cdxs:LesseeOperatingLeaseOptionToExtendNumber
      contextRef="c-324"
      decimals="INF"
      id="f-1159"
      unitRef="renewal_option">1</cdxs:LesseeOperatingLeaseOptionToExtendNumber>
    <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="c-324" id="f-1160">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <cdxs:LesseeOperatingLeaseOptionToExtendNumber
      contextRef="c-326"
      decimals="INF"
      id="f-1161"
      unitRef="renewal_option">1</cdxs:LesseeOperatingLeaseOptionToExtendNumber>
    <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="c-326" id="f-1162">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <us-gaap:RestrictedCashAndInvestmentsNoncurrent contextRef="c-327" decimals="-5" id="f-1163" unitRef="usd">1100000</us-gaap:RestrictedCashAndInvestmentsNoncurrent>
    <us-gaap:RestrictedCashAndInvestmentsNoncurrent contextRef="c-328" decimals="-5" id="f-1164" unitRef="usd">1100000</us-gaap:RestrictedCashAndInvestmentsNoncurrent>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-329" decimals="0" id="f-1165" unitRef="sqft">36593</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1 contextRef="c-329" id="f-1166">P10Y</us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1>
    <cdxs:LesseeOperatingLeaseOptionToExtendNumber
      contextRef="c-329"
      decimals="INF"
      id="f-1167"
      unitRef="option">1</cdxs:LesseeOperatingLeaseOptionToExtendNumber>
    <us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1 contextRef="c-329" id="f-1168">P5Y</us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1>
    <us-gaap:OperatingLeaseLiability contextRef="c-330" decimals="-5" id="f-1169" unitRef="usd">3100000</us-gaap:OperatingLeaseLiability>
    <us-gaap:SecurityDeposit contextRef="c-330" decimals="-5" id="f-1170" unitRef="usd">500000</us-gaap:SecurityDeposit>
    <us-gaap:OperatingLeaseLiability contextRef="c-330" decimals="-5" id="f-1171" unitRef="usd">3100000</us-gaap:OperatingLeaseLiability>
    <cdxs:OperatingLeaseWriteOffDueToLeaseModification contextRef="c-331" decimals="-5" id="f-1172" unitRef="usd">19600000</cdxs:OperatingLeaseWriteOffDueToLeaseModification>
    <us-gaap:AssetImpairmentCharges contextRef="c-236" decimals="-5" id="f-1173" unitRef="usd">7700000</us-gaap:AssetImpairmentCharges>
    <us-gaap:ImpairmentOfLeasehold contextRef="c-236" decimals="-5" id="f-1174" unitRef="usd">4700000</us-gaap:ImpairmentOfLeasehold>
    <us-gaap:OperatingLeaseImpairmentLoss contextRef="c-236" decimals="-5" id="f-1175" unitRef="usd">3000000</us-gaap:OperatingLeaseImpairmentLoss>
    <cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock contextRef="c-1" id="f-1176">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2023 and the balance as of December&#160;31, 2023, including the changes during the period (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Right-of-use Assets - Operating Lease, net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at January 1, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;39,263&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,405)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Remeasurement due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(19,622)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,997)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at December&#160;31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,137&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Lease Obligations - Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at January 1, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(9,897)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Interest accretion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Remeasurement due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(19,622)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at December&#160;31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-5" decimals="-3" id="f-1177" unitRef="usd">39263000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-1" decimals="-3" id="f-1178" unitRef="usd">4405000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <cdxs:IncreaseDecreaseInOperatingLeaseRightOfUseAsset contextRef="c-1" decimals="-3" id="f-1179" unitRef="usd">898000</cdxs:IncreaseDecreaseInOperatingLeaseRightOfUseAsset>
    <cdxs:OperatingLeaseWriteOffDueToLeaseModification contextRef="c-1" decimals="-3" id="f-1180" unitRef="usd">19622000</cdxs:OperatingLeaseWriteOffDueToLeaseModification>
    <us-gaap:OperatingLeaseImpairmentLoss contextRef="c-1" decimals="-3" id="f-1181" unitRef="usd">2997000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-4" decimals="-3" id="f-1182" unitRef="usd">13137000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiability contextRef="c-5" decimals="-3" id="f-1183" unitRef="usd">43638000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="-3" id="f-1184" unitRef="usd">9897000</us-gaap:OperatingLeasePayments>
    <cdxs:OperatingLeaseInterestAccretion contextRef="c-1" decimals="-3" id="f-1185" unitRef="usd">1905000</cdxs:OperatingLeaseInterestAccretion>
    <cdxs:OperatingLeaseWriteOffDueToLeaseModification contextRef="c-1" decimals="-3" id="f-1186" unitRef="usd">19622000</cdxs:OperatingLeaseWriteOffDueToLeaseModification>
    <us-gaap:OperatingLeaseLiability contextRef="c-4" decimals="-3" id="f-1187" unitRef="usd">16024000</us-gaap:OperatingLeaseLiability>
    <cdxs:AssetRetirementObligationWriteoff contextRef="c-1" decimals="-5" id="f-1188" unitRef="usd">200000</cdxs:AssetRetirementObligationWriteoff>
    <us-gaap:AssetRetirementObligation contextRef="c-4" decimals="-5" id="f-1189" unitRef="usd">300000</us-gaap:AssetRetirementObligation>
    <us-gaap:AssetRetirementObligation contextRef="c-5" decimals="-5" id="f-1190" unitRef="usd">500000</us-gaap:AssetRetirementObligation>
    <us-gaap:LeaseCostTableTextBlock contextRef="c-1" id="f-1191">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease costs&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,396&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Short-term lease costs&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total lease cost&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="12" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Short-term lease costs on leases with terms of over one month and less than one year.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; The Company had no variable lease costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amounts included in measurement of lease obligations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Cash paid:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating cash flows from operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,897&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Non-cash activity:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating Lease - Right-of-use assets obtained in exchange for lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Lease&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Other information:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.8&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <cdxs:FinanceLeaseCost contextRef="c-1" decimals="-3" id="f-1192" unitRef="usd">0</cdxs:FinanceLeaseCost>
    <cdxs:FinanceLeaseCost contextRef="c-20" decimals="-3" id="f-1193" unitRef="usd">18000</cdxs:FinanceLeaseCost>
    <cdxs:FinanceLeaseCost contextRef="c-21" decimals="-3" id="f-1194" unitRef="usd">106000</cdxs:FinanceLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-1" decimals="-3" id="f-1195" unitRef="usd">6310000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-20" decimals="-3" id="f-1196" unitRef="usd">7321000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-21" decimals="-3" id="f-1197" unitRef="usd">4396000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost contextRef="c-1" decimals="-3" id="f-1198" unitRef="usd">0</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost contextRef="c-20" decimals="-3" id="f-1199" unitRef="usd">40000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost contextRef="c-21" decimals="-3" id="f-1200" unitRef="usd">70000</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost contextRef="c-1" decimals="-3" id="f-1201" unitRef="usd">6310000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost contextRef="c-20" decimals="-3" id="f-1202" unitRef="usd">7379000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost contextRef="c-21" decimals="-3" id="f-1203" unitRef="usd">4572000</us-gaap:LeaseCost>
    <us-gaap:VariableLeaseCost contextRef="c-21" decimals="-3" id="f-1204" unitRef="usd">0</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost contextRef="c-1" decimals="-3" id="f-1205" unitRef="usd">0</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost contextRef="c-20" decimals="-3" id="f-1206" unitRef="usd">0</us-gaap:VariableLeaseCost>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="-3" id="f-1207" unitRef="usd">9897000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-20" decimals="-3" id="f-1208" unitRef="usd">6506000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-21" decimals="-3" id="f-1209" unitRef="usd">4197000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-1" decimals="-3" id="f-1210" unitRef="usd">0</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-20" decimals="-3" id="f-1211" unitRef="usd">0</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="c-21" decimals="-3" id="f-1212" unitRef="usd">25445000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-4" id="f-1213">P3Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-4" decimals="3" id="f-1214" unitRef="number">0.066</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="c-1" id="f-1215">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.379%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.421%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;760&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,220&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,196&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reconciliation of operating lease liabilities as shown within the audited consolidated balance sheets:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current portion of lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,781&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-4" decimals="-3" id="f-1216" unitRef="usd">4727000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="c-4" decimals="-3" id="f-1217" unitRef="usd">4868000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="c-4" decimals="-3" id="f-1218" unitRef="usd">5014000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="c-4" decimals="-3" id="f-1219" unitRef="usd">2533000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="c-4" decimals="-3" id="f-1220" unitRef="usd">760000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="c-4" decimals="-3" id="f-1221" unitRef="usd">318000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-4" decimals="-3" id="f-1222" unitRef="usd">18220000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="c-4" decimals="-3" id="f-1223" unitRef="usd">2196000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability contextRef="c-4" decimals="-3" id="f-1224" unitRef="usd">16024000</us-gaap:OperatingLeaseLiability>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-4" decimals="-3" id="f-1225" unitRef="usd">3781000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-4" decimals="-3" id="f-1226" unitRef="usd">12243000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability contextRef="c-4" decimals="-3" id="f-1227" unitRef="usd">16024000</us-gaap:OperatingLeaseLiability>
    <us-gaap:SupplyCommitmentTableTextBlock contextRef="c-1" id="f-1228">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:58.987%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Payments Due by Period&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2025 and Thereafter&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Facility maintenance agreement&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;701&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;701&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SupplyCommitmentTableTextBlock>
    <us-gaap:OtherCommitment contextRef="c-332" decimals="-3" id="f-1229" unitRef="usd">701000</us-gaap:OtherCommitment>
    <us-gaap:OtherCommitmentDueInNextTwelveMonths contextRef="c-332" decimals="-3" id="f-1230" unitRef="usd">701000</us-gaap:OtherCommitmentDueInNextTwelveMonths>
    <us-gaap:OtherCommitmentDueInSecondYear contextRef="c-332" decimals="-3" id="f-1231" unitRef="usd">0</us-gaap:OtherCommitmentDueInSecondYear>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity contextRef="c-333" decimals="-5" id="f-1232" unitRef="usd">10000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity contextRef="c-334" decimals="-5" id="f-1233" unitRef="usd">5000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <cdxs:LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage
      contextRef="c-335"
      decimals="2"
      id="f-1234"
      unitRef="number">0.80</cdxs:LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent contextRef="c-336" decimals="-5" id="f-1235" unitRef="usd">0</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent contextRef="c-337" decimals="-5" id="f-1236" unitRef="usd">0</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent contextRef="c-338" decimals="-5" id="f-1237" unitRef="usd">0</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock contextRef="c-1" id="f-1238">Related Party Transactions &lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Molecular Assemblies, Inc.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2020, we entered into a Stock Purchase Agreement with MAI, a privately held life sciences company, pursuant to which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. Mr. Nicols, our former President and CEO until August 2022, also joined MAI&#x2019;s board of directors in June 2020 and remained on MAI's board until September 2023. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the &#x201c;MAI Agreement&#x201d;), pursuant to which performed services utilizing our CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock which are valued based on the observed transaction price of similar securities that MAI issued to third parties. We completed the R&amp;amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In addition to our initial equity investment and the shares we have received under the MAI Agreement, in April 2021, we purchased an additional 1,000,000 shares of MAI's Series A preferred stock for $0.6&#160;million and &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;in September 2021, we purchased 9,198,423 shares of MAI's Series B preferred stock for $7.0&#160;million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase (TdT) enzyme in MAI&#x2019;s Fully Enzymatic Synthesis&#x2122; (or FES&#x2122;) technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenues recognized from transactions with MAI in the year ended December 31, 2023, and subsequent to the related party period which ended in August 2022, are included in the consolidated statement of operations. We recogniz&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ed &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.2 million and $2.0&#160;million in research and development revenue pursuant to the MAI Agreement in the years ended December&#160;31, 2022 and 2021, respectively. We recognized $0.5&#160;million in product revenue from transactions with MAI in the year ended December&#160;31, 2022 and during the related party period.&lt;/span&gt;&lt;/div&gt;</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <us-gaap:InvestmentOwnedBalanceShares
      contextRef="c-158"
      decimals="0"
      id="f-1239"
      unitRef="shares">1587050</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-159" decimals="-5" id="f-1240" unitRef="usd">1000000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:InvestmentOwnedBalanceShares
      contextRef="c-339"
      decimals="INF"
      id="f-1241"
      unitRef="shares">1000000</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-340" decimals="-5" id="f-1242" unitRef="usd">600000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:InvestmentOwnedBalanceShares
      contextRef="c-341"
      decimals="INF"
      id="f-1243"
      unitRef="shares">9198423</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-342" decimals="-5" id="f-1244" unitRef="usd">7000000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-166" decimals="-5" id="f-1245" unitRef="usd">1200000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-167" decimals="-5" id="f-1246" unitRef="usd">2000000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-171" decimals="-5" id="f-1247" unitRef="usd">500000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="c-1" id="f-1248">Segment, Geographical and Other Revenue Information&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocated resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Significant Customers&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of our total revenues were as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Percentage of Total Revenues&lt;br/&gt;For the Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer A&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer C&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:9pt;padding-left:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;As of December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer A&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer C&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer E&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer F&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Geographical Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Geographic revenues are identified by the location of the customer and consist of the following (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;23,481&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)(3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,086&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; United States revenue was $13.7 million, $17.0 million, and $23.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Ireland revenue was $0.5 million, $37.2 million, and $1.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(3)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Switzerland revenue was $11.1 million, $9.2 million, and $10.1 million, for the for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; China revenue was $20.3 million, $48.6 million, and $43.5 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Identifiable long-lived assets by location was as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Identifiable goodwill was as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at beginning of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(778)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at end of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock contextRef="c-1" id="f-1249">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocated resources based on the consolidated results of operations. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment as of December 31, 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <cdxs:NumberOfBusinessSegments
      contextRef="c-1"
      decimals="INF"
      id="f-1250"
      unitRef="segment">2</cdxs:NumberOfBusinessSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-1"
      decimals="INF"
      id="f-1251"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-343"
      decimals="INF"
      id="f-1252"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock contextRef="c-1" id="f-1253">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of our total revenues were as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Percentage of Total Revenues&lt;br/&gt;For the Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer A&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer C&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:9pt;padding-left:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;As of December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer A&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer C&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer E&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer F&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-344"
      decimals="2"
      id="f-1254"
      unitRef="number">0.22</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-345"
      decimals="2"
      id="f-1255"
      unitRef="number">0.56</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-346"
      decimals="2"
      id="f-1256"
      unitRef="number">0.33</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-347"
      decimals="2"
      id="f-1257"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-348"
      decimals="2"
      id="f-1258"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-349"
      decimals="2"
      id="f-1259"
      unitRef="number">0.53</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-350"
      decimals="2"
      id="f-1260"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-351"
      decimals="2"
      id="f-1261"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-352"
      decimals="2"
      id="f-1262"
      unitRef="number">0.21</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-353"
      decimals="2"
      id="f-1263"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-354"
      decimals="2"
      id="f-1264"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock contextRef="c-1" id="f-1265">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Geographic revenues are identified by the location of the customer and consist of the following (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;23,481&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)(3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,086&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;104,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; United States revenue was $13.7 million, $17.0 million, and $23.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Ireland revenue was $0.5 million, $37.2 million, and $1.4 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(3)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Switzerland revenue was $11.1 million, $9.2 million, and $10.1 million, for the for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; China revenue was $20.3 million, $48.6 million, and $43.5 million, for the years ended December&#160;31, 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-70" decimals="-3" id="f-1266" unitRef="usd">13733000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-71" decimals="-3" id="f-1267" unitRef="usd">17000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-72" decimals="-3" id="f-1268" unitRef="usd">23481000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-73" decimals="-3" id="f-1269" unitRef="usd">22907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-74" decimals="-3" id="f-1270" unitRef="usd">56540000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-75" decimals="-3" id="f-1271" unitRef="usd">20187000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-76" decimals="-3" id="f-1272" unitRef="usd">33503000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-77" decimals="-3" id="f-1273" unitRef="usd">65050000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-78" decimals="-3" id="f-1274" unitRef="usd">61086000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-1275" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-20" decimals="-3" id="f-1276" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-21" decimals="-3" id="f-1277" unitRef="usd">104754000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-355" decimals="-5" id="f-1278" unitRef="usd">13700000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-356" decimals="-5" id="f-1279" unitRef="usd">17000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-357" decimals="-5" id="f-1280" unitRef="usd">23400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-358" decimals="-5" id="f-1281" unitRef="usd">500000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-359" decimals="-5" id="f-1282" unitRef="usd">37200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-360" decimals="-5" id="f-1283" unitRef="usd">1400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-361" decimals="-5" id="f-1284" unitRef="usd">11100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-362" decimals="-5" id="f-1285" unitRef="usd">9200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-363" decimals="-5" id="f-1286" unitRef="usd">10100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-364" decimals="-5" id="f-1287" unitRef="usd">20300000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-365" decimals="-5" id="f-1288" unitRef="usd">48600000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-366" decimals="-5" id="f-1289" unitRef="usd">43500000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock contextRef="c-1" id="f-1290">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Identifiable long-lived assets by location was as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;61,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock>
    <us-gaap:NoncurrentAssets contextRef="c-367" decimals="-3" id="f-1291" unitRef="usd">28624000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-368" decimals="-3" id="f-1292" unitRef="usd">61877000</us-gaap:NoncurrentAssets>
    <us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock contextRef="c-1" id="f-1293">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Identifiable goodwill was as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at beginning of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(778)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at end of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-1294" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-39" decimals="-3" id="f-1295" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="-3" id="f-1296" unitRef="usd">778000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-20" decimals="-3" id="f-1297" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:Goodwill contextRef="c-4" decimals="-3" id="f-1298" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-1299" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:CreditLossFinancialInstrumentTextBlock contextRef="c-1" id="f-1300">Allowance for Credit Losses&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the financial assets allowance for credit losses (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Write-offs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(257)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Adjustment to existing allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(65)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(50)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize accounts receivable by aging category (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.487%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.719%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;31-60 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;61-90 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;91 Days and Over&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total over 31 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total Balance&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;31-60 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;61-90 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;91 Days and Over&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total over 31 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total Balance&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;469&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;792&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;31,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:CreditLossFinancialInstrumentTextBlock>
    <us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock contextRef="c-1" id="f-1301">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the financial assets allowance for credit losses (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Write-offs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(257)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Adjustment to existing allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(65)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(50)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of period&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-5" decimals="-3" id="f-1302" unitRef="usd">163000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-39" decimals="-3" id="f-1303" unitRef="usd">416000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-28" decimals="-3" id="f-1304" unitRef="usd">74000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:ProvisionForLoanLossesExpensed contextRef="c-1" decimals="-3" id="f-1305" unitRef="usd">0</us-gaap:ProvisionForLoanLossesExpensed>
    <us-gaap:ProvisionForLoanLossesExpensed contextRef="c-20" decimals="-3" id="f-1306" unitRef="usd">54000</us-gaap:ProvisionForLoanLossesExpensed>
    <us-gaap:ProvisionForLoanLossesExpensed contextRef="c-21" decimals="-3" id="f-1307" unitRef="usd">342000</us-gaap:ProvisionForLoanLossesExpensed>
    <cdxs:AllowanceForCreditLossWriteOff contextRef="c-1" decimals="-3" id="f-1308" unitRef="usd">33000</cdxs:AllowanceForCreditLossWriteOff>
    <cdxs:AllowanceForCreditLossWriteOff contextRef="c-20" decimals="-3" id="f-1309" unitRef="usd">257000</cdxs:AllowanceForCreditLossWriteOff>
    <cdxs:AllowanceForCreditLossWriteOff contextRef="c-21" decimals="-3" id="f-1310" unitRef="usd">0</cdxs:AllowanceForCreditLossWriteOff>
    <cdxs:AllowanceForCreditLossAdjustment contextRef="c-1" decimals="-3" id="f-1311" unitRef="usd">65000</cdxs:AllowanceForCreditLossAdjustment>
    <cdxs:AllowanceForCreditLossAdjustment contextRef="c-20" decimals="-3" id="f-1312" unitRef="usd">50000</cdxs:AllowanceForCreditLossAdjustment>
    <cdxs:AllowanceForCreditLossAdjustment contextRef="c-21" decimals="-3" id="f-1313" unitRef="usd">0</cdxs:AllowanceForCreditLossAdjustment>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-4" decimals="-3" id="f-1314" unitRef="usd">65000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-5" decimals="-3" id="f-1315" unitRef="usd">163000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-39" decimals="-3" id="f-1316" unitRef="usd">416000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:PastDueFinancingReceivablesTableTextBlock contextRef="c-1" id="f-1317">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize accounts receivable by aging category (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.487%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.719%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;31-60 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;61-90 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;91 Days and Over&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total over 31 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total Balance&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;77&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;31-60 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;61-90 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;91 Days and Over&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total over 31 Days&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total Balance&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;469&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;792&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;31,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PastDueFinancingReceivablesTableTextBlock>
    <us-gaap:AccountsReceivableGross contextRef="c-369" decimals="-3" id="f-1318" unitRef="usd">9583000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-370" decimals="-3" id="f-1319" unitRef="usd">209000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-371" decimals="-3" id="f-1320" unitRef="usd">77000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-372" decimals="-3" id="f-1321" unitRef="usd">167000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-373" decimals="-3" id="f-1322" unitRef="usd">453000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-4" decimals="-3" id="f-1323" unitRef="usd">10036000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-374" decimals="-3" id="f-1324" unitRef="usd">28896000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-375" decimals="-3" id="f-1325" unitRef="usd">1747000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-376" decimals="-3" id="f-1326" unitRef="usd">469000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-377" decimals="-3" id="f-1327" unitRef="usd">792000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-378" decimals="-3" id="f-1328" unitRef="usd">3008000</us-gaap:AccountsReceivableGross>
    <us-gaap:AccountsReceivableGross contextRef="c-5" decimals="-3" id="f-1329" unitRef="usd">31904000</us-gaap:AccountsReceivableGross>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock contextRef="c-1" id="f-1330">Restructuring Charges&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, in alignment with our enhanced strategic focus, we announced a restructuring of our business, including a plan for a workforce reduction of approximately 25%. During the year ended December&#160;31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, w&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e recorded a restructuring charge related to this workforce reduction of $3.1 million related to severance and related benefit costs. The plan was substantially completed in September 2023 and severance costs were paid through the fourth quarter of 2023. We do not expect to record any significant future charges related to the restructuring plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; In November 2022, we announced a plan for a workforce reduction of approximately 18% to realign and optimize our workforce requirements in alignment with our refined corporate strategy. The plan was substantially completed in December 2022 and severance costs were paid through the third quarter of 2023. During the years ended December&#160;31, 2023&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and 2022&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, we recorded restructuring charges of $0.2 million and $3.2 million, respectively, related to severance, bonus and other termination benefits in connection with the workforce reduction announced in November 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We do not expect to record any future charges related to the restructuring plans initiated in 2023 and 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent
      contextRef="c-379"
      decimals="2"
      id="f-1331"
      unitRef="number">0.25</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent>
    <us-gaap:RestructuringCharges contextRef="c-380" decimals="-5" id="f-1332" unitRef="usd">3100000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent
      contextRef="c-381"
      decimals="2"
      id="f-1333"
      unitRef="number">0.18</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent>
    <us-gaap:RestructuringCharges contextRef="c-382" decimals="-5" id="f-1334" unitRef="usd">200000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-383" decimals="-5" id="f-1335" unitRef="usd">3200000</us-gaap:RestructuringCharges>
    <us-gaap:SubsequentEventsTextBlock contextRef="c-1" id="f-1336">Subsequent Events&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February&#160;13, 2024, we entered into a 5-year loan and security agreement (the &#x201c;Loan Agreement&#x201d;) with Innovatus Life Sciences Lending Fund I, LP (&#x201c;Innovatus&#x201d;), an affiliate of Innovatus Capital Partners, LLC, for an aggregate principal amount of up to $40.0 million (the &#x201c;Term Loans&#x201d;). The Term Loans consist of two tranches, of which the first tranche of $30.0 million was completed on February&#160;13, 2024. We will be eligible to draw on the second tranche of $10.0 million upon achievement of certain milestones including certain pre-specified revenue thresholds. The &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Term Loan carries an interest-only period of 36 months and will bear an interest at a floating rate of the sum of (a) the greater of (i) prime rate and (ii) 7.50%, plus (b) 3.25%. In connection with the Term Loans, we are required to issue to Innovatus a warrant to purchase an aggregate of 424,028 shares of the Company&#x2019;s common stock at an exercise price of $2.83 per share. The Loan Agreement contains customary representations and warranties and covenants, subject to customary carve outs, and includes financial covenants related to liquidity and net product revenue, with the latter beginning with the period ending September 30, 2024.&lt;/span&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:DebtInstrumentTerm contextRef="c-384" id="f-1337">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-385" decimals="-5" id="f-1338" unitRef="usd">40000000</us-gaap:DebtInstrumentFaceAmount>
    <cdxs:DebtInstrumentNumberOfTranches
      contextRef="c-386"
      decimals="INF"
      id="f-1339"
      unitRef="tranche">2</cdxs:DebtInstrumentNumberOfTranches>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-387" decimals="-5" id="f-1340" unitRef="usd">30000000</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-388" decimals="-5" id="f-1341" unitRef="usd">10000000</us-gaap:DebtInstrumentFaceAmount>
    <cdxs:DebtInstrumentInterestPeriod contextRef="c-389" id="f-1342">P36M</cdxs:DebtInstrumentInterestPeriod>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c-390"
      decimals="4"
      id="f-1343"
      unitRef="number">0.0750</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="c-391"
      decimals="4"
      id="f-1344"
      unitRef="number">0.0325</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights
      contextRef="c-392"
      decimals="0"
      id="f-1345"
      unitRef="shares">424028</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="c-392"
      decimals="2"
      id="f-1346"
      unitRef="usdPerShare">2.83</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="c-84" id="f-1347">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="c-84" id="f-1348">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="c-84" id="f-1349">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="c-84" id="f-1350">false</ecd:NonRule10b51ArrTrmntdFlag>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
